Python——第二章:range()的用法:
在Python中,range()
是一个内置函数,用于生成一个整数序列,通常用于循环遍历。以下是range()
函数的一些常见用法:
range(n)
: 从0数到n. 不包含nrange(m, n)
: 从m数到n, 不包含nrange(m, n, s)
: 从m数到n, 不包含n, 每次的间隔是s
下面举例:
1. 默认情况
当你调用range()
函数时,它会生成一个从0开始到给定数字(不包括该数字)的整数序列。
for i in range(5):
print(i)
# 输出: 0, 1, 2, 3, 4
2. 指定开始和结束
range()
函数可以接受三个参数,分别表示起始点、终止点和步长。起始点默认为0,终止点是生成的数字的最大值(不包括该值),步长是每次递增的间隔。
for i in range(2, 5):
print(i)
# 输出: 2, 3, 4
3. 指定步长
还可以通过设置步长参数来改变生成的数字的间隔。例如,步长为2将使序列中的每个数字之间的间隔为2。
for i in range(0, 10, 2):
print(i)
# 输出: 0, 2, 4, 6, 8
4. 与列表结合使用
还可以将range()
函数与list()
函数结合使用来创建一个列表。例如,下面的代码将创建一个包含1到10(包括10)的整数的列表。
my_list = list(range(10)) # ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
print(my_list)
5. 与其他内置函数结合使用
range()
函数还可以与其他内置函数结合使用,例如map()
和filter()
。例如,下面的代码将使用range()
函数和map()
函数将列表中的每个元素乘以2。
my_list = [1, 2, 3, 4, 5]
new_list = list(map(lambda x: x * 2, my_list)) # [2, 4, 6, 8, 10]
print(new_list)
小练习:把列表内所有的姓张的人修改成姓王,其余不变
思考第1步:把列表内的所有元素取出来
lst = ['赵敏', '张绍刚', '张无忌', '武则天', '嬴政', '马超']
for item in lst:#用for循环取出所有的元素内容
print (item) #顺序打印所有lst[]里的内容
#输出结果为:
赵敏
张绍刚
张无忌
武则天
嬴政
马超
思考第2步:把所有以“张”开头的元素,替换为以“王”开头的元素
for item in lst:#用for循环取出所有的元素内容
if item.startswith("张"):#判断是否以"张"开头
new_name ="王"+item[1:]#元素的组合方法用+号,配合从第1号位到最后。
print(new_name)
#输出结果为:
王绍刚
王无忌
*此时,我们看不到元素的索引位置
思考第3步:如何把新得到的名字丟回列表
for循环想要计数. 必须借助于range()
之前for循环的写法for item in lst:
, 我们看不到元素的索引位置,因此我们需要如下写法for i in range(len(lst))
=for i in range(0,len(lst))
两种写法都是从0到列表长度的最后一位
两种打印列表的操作方法对比
lst = ['赵敏', '张绍刚', '张无忌', '武则天', '嬴政', '马超']
# 使用for item in lst
for item in lst:#循环的是元素
print(item)
# 使用for i in range(len(lst))
for i in range(len(lst)):#循环的是索引
print(lst[i])
其实他们的输出结果是一样的,但是一个循环的是元素本身,一个循环的是索引位置,把该位置的元素打印出来。print(lst[0])
、print(lst[1])
、print(lst[2])
一直到print(lst[i])
思考第4步:安装位置替换原列表
lst = ['赵敏', '张绍刚', '张无忌', '武则天', '嬴政', '马超']
for i in range(len(lst)): # len(lst)列表的长度 -> 可以直接拿到列表索引的for循环
item = lst[i] # item依然是列表中的每一项
if item.startswith("张"):
# 例如:张绍刚
new_name = "王"+item[1:]
# 例如:王绍刚
# 把符合判定的新名字丢回原先列表位置
lst[i] = new_name # 修改列表
print(lst)
这里再讲解一下思路:for i in range(len(lst))
这个由range(0,6)
演变而来的
在列表lst = ['赵敏', '张绍刚', '张无忌', '武则天', '嬴政', '马超']
中,一共存在6个列表元素(0号、1号、2号、3号、4号、5号),需要表示为range(0,6)
=range(6)
,为了方便操作,列表最好要用len(lst)
自动数出来。