range()函数和可变对象详解

range()

range()是一个函数,可以用来生成一个自然数的序列

r = range(5) # 生成一个这样的序列[0,1,2,3,4]
r = range(0,10,2)      #隔一个输出一个 [0,2,4,6,8]
r = range(10,0,-1)
print(list(r))

该函数需要三个参数
1.起始位置(可以省略,默认是0)
2.结束位置
3.步长(可以省略,默认是1)

通过range()可以创建一个执行指定次数的for循环
for()循环除了创建方式以外,其余的都和while一样,
包括else、包括break continue都可以在for循环中使用
并且for循环使用也更加简单

# 将之前使用while循环做的练习,再使用for循环完成一次!
for i in range(30):
    print(i)

# for s in 'hello':
#     print(s)

可变对象

- 每个对象中都保存了三个数据:
    id(标识)
    type(类型)
    value(值)    

- 列表就是一个可变对象
    a = [1,2,3]

- a[0] = 10 (改对象)
    - 这个操作是在通过变量去修改对象的值
    - 这种操作不会改变变量所指向的对象    
    - 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他的变量中体现

- a = [4,5,6] (改变量)
    - 这个操作是在给变量重新赋值
    - 这种操作会改变变量所指向的对象
    - 为一个变量重新赋值时,不会影响其他的变量

- 一般只有在为变量赋值时才是修改变量,其余的都是修改对象
# # 可变对象
# a = [1,2,3]
# print('修改前:', a , id(a))

通过索引修改列表

a[0] = 10
print('修改后:', a , id(a))

为变量重新赋值

a = [4,5,6]
print('修改后:', a , id(a))
a = [1,2,3]
b = a
# b[0] = 10
b = [10,2,3]
# print("a",a,id(a))
# print("b",b,id(b))

== 、 != 、 is 、 is not
== 和 != 比较的是对象的值是否相等
is 和 is not 比较的是对象的id是否相等(比较两个对象是否是同一个对象)

a = [1,2,3]
b = [1,2,3]
print(a,b)
print(id(a),id(b))
print(a == b) # a和b的值相等,使用==会返回True
print(a is b) # a和b不是同一个对象,内存地址不同,使用is会返回False

猜你喜欢

转载自blog.csdn.net/weixin_51313763/article/details/124517735