一、range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打 印列表。
print(range(10)) 输出结果: range(0, 10)
如果想把range对象变成列表,可以使用list()函数对range进行处理
print(list(range(5))) 输出结果: [0, 1, 2, 3, 4]
二、 range函数的基本语法
range(stop) range(start, stop[, step])
start: 计数从 start 开始。默认是从 0 开始。
例如range(5)等价于range(0, 5);
stop: 计数到 stop 结束,但不包括 stop。
例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
三、可变与不可变对象
这里的可变与不可变是相对于内存里的那块地方是否可以改变,通俗点讲,就是内存中对应的地址在值 发生变动的时候会不会变。地址不变时,为可变对象,变动时,为不可变对象。
如果各位之前有自己编写并运行过,会发现这段代码运行时正确的,列表第一个元素的值确实被修改。
这是为什么呢?
我们回到list的存储方式,list的地址里存的都是实际内容的指针,此时元组的内容指向list地址,而无论 list的内容如何变更,list的地址也不会变,所以并不违背set里存储的元素不能变这样一个原则。
注意:
可变类型:列表、字典
不可变类型:数字、字符串、元组