当前位置:首页>python>学Python3️⃣8️⃣ for ... in (2) range(...)

学Python3️⃣8️⃣ for ... in (2) range(...)

  • 2026-09-02 19:56:46
学Python3️⃣8️⃣ for ... in (2) range(...)
学Python3️⃣8️⃣ for ... in (2) range(...)
作者:小号🎺
前面提到:for ... in 后面,经常是一个 list 。
那么问题来了,除了list,还可以是别的什么?
除了list,经常出现在 for … in 后面的,还可以是,range(…) 。
如果按语法惯例,range的用法是:
  range(start, stop, step)
这样写的意思是,从start开始计数,到stop结束,每1步(step)跨多长。
其中,start 可以省略,默认是 0 ;step 也可以省略,默认是 1 。
所以我们经常会看到:
range(x)   # x 可以是任何正整数
range(a, b)   # a < b ,都是正整数
range(a, b, s)  # s < a < b , 均正整数
有了range(),可以很方便的用for…loop制作 list 。
numbers = []for i in range(100):    numbers.append(i)print(numbers)
...
powers = []for i in range(10):    powers.append(i*i)print(powers)
简言之,range(...) 就是计算出一个“范围”。for ...loop就在这个“范围”里进行,循环一遍后结束。
所以,for 引入的循环从一开始就是被严格“计划”好的。
如果是 range(0) ,这个范围就是 0 ,“循环”也就不会发生。
这里要强调一下,range() 计算“范围”时,是“不掐头、去尾”。
比如 range(1, 10) ,从1数到10。从1开始数,“1”被包含在“范围”之内(不掐头)。“10”不在“范围”之内(去尾)。那么,从1到10 实际上只有9个数,以此为基础的“循环”有9步。
再比如 range(10) , 从0数到10。从0开始数,“0”也是包含在“范围”之内,数到10结束,“10”不在“范围”之内。这样,从0到10就正好是10个。循环内也正好10步。
计算机编程中,计数都默认是从0开始。理解这一点,是正确理解range(...)函数的关键。
此外,我们平时计数时,还经常有“跳着数”的情况,这时我们可以使用 range() 函数的第三个数(参数) step,如:
  range(10, 20, 2)
举几个例子:
例1:Miss张背单词,每次从单词本的100个单词里每5个选1个。
例2:某小吃街,李好吃先生决定每7家选1家,闭着眼睛下单。(7, 谐音吃)
例3:王大爷健身,倒着走,每3米转过头看一下方向。健身步道上印着数字100(米),尝试计算出王大爷每次转头时步道上的数字。
生活中有很多这样的案例,大家可以多找找,并尝试总结出其中的规律。
按定义,第三个参数 step,也可以是负数。比如:
range(100, 1, -3)  # 这时 start > stop
也就是说,start,stop,step 三个参数都既可以是正整数,也可以是负整数。另外,step 永远不能为 0 。
作业:
找一些生活中常见的例子,看看能不能用写成Python代码
例1:三日一小酌,五日一大宴
例2:逢三、六、九赶大集
例3:闰年的计算
附录:
生活中常见的例子
例4:马拉松长跑,准备在最后(含终点)一段区间每一百米设置一志愿者服务站,为运动员加油。
例5:朝圣者准备在到达终点前磕100个长头,每5步一个,最后一个磕完正好抵达终点。
例6:古老的《棋盘麦粒》故事:国王奖励棋圣,棋盘上第一格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子 ...
补遗:
range()括号中全是负数的情况
步长不能是浮点数,必须是整数。

#Python#学Python#大白话#小号#大白小号学Python#原创

最新文章

随机文章