课后习题
请你根据以下需求,选择一个合适的数据类型。
欢迎加入课程交流群:https://jinshuju.net/f/C8csQq
课程代码、课件及其他相关资料地址
https://gitee.com/wilsonyin/zero-basics-python
作者回复: Python是支持哈希(hash)的。在Python中,可以使用内置的哈希函数或通过实现自定义的哈希函数来进行哈希操作。 对于内置的哈希函数,你可以使用`hash()`来对大多数Python的内置数据类型进行哈希操作。例如,你可以对字符串、整数、浮点数等类型进行哈希: print(hash("hello")) print(hash(42)) print(hash(3.14)) User Avatar 是的,Python是支持哈希(hash)的。在Python中,可以使用内置的哈希函数或通过实现自定义的哈希函数来进行哈希操作。 对于内置的哈希函数,你可以使用`hash()`来对大多数Python的内置数据类型进行哈希操作。例如,你可以对字符串、整数、浮点数等类型进行哈希: print(hash("hello")) print(hash(42)) print(hash(3.14)) 这些内置函数会返回对象的哈希值,通常是一个整数。需要注意的是,哈希值是对应于对象的一种表示,具有唯一性和不可逆性。同一对象每次哈希的结果应该是一样的。 此外,Python还提供了一些可哈希的内置类型,如字典(dict)和集合(set)的变种,即字典的键和集合的元素必须是可哈希的。 如果需要自定义哈希函数,你可以通过实现`__hash__()`方法来定义自己的哈希算法。该方法应该返回一个整数作为对象的哈希值。 class MyClass: def __init__(self, value): self.value = value def __hash__(self): return hash(self.value) obj = MyClass(42) print(hash(obj)) 上述示例中,我们在自定义的类`MyClass`中实现了`__hash__()`方法,使其返回对象`value`的哈希值。这样就可以通过调用`hash(obj)`来获取对象的哈希值。 需要注意的是,对象的哈希值与其内容密切相关。如果是可变对象,即内容可变的对象,在对象被修改后,它的哈希值可能会改变。为了避免将可变对象用作哈希键或元素,可以考虑使用不可变的数据类型,如字符串或元组。
作者回复: 数据类型的划分,其实是多个数据类型有相似的特征,才将它们划分成一组,比如列表和元组、字符串它们三个都能索引,所以作者将索引作为序列的特性,将列表、元组、字符串归属到序列这一组。实际上每个数据类型都有其特有的能力。 算法的话,语言也只做底层的支持,即判断、循环、递归,更高层次的还是得看具体实现的数据类型用了哪些算法。这个没有在语言层面具体划分过
作者回复: 首先, range 是具体的数据类型,也就是说,可以使用 range() 函数直接产生一个数值范围,而序列和映射是指的有相同特性的一组数据类型, 比如字符串 元组 都可以通过下标访问, 那么 字符串和元组都有下标访问特性, 序列就是包含了下标、切片、包含特性的三个具体数据类型组成的,序列中包含了列表、元组和range。 range()独特的特性,应该就是它总是占用比较小的内存,不管定义的范围有多大,每次只根据定义的数值范围产生一个数值(访问一次,产生一个数值)。这是我们一般使用range() 关注的最重要的特性。 关于range() 其他特性,可以参考官方文档 https://docs.python.org/zh-cn/3/library/stdtypes.html#range
作者回复: 3 当然可以