学Python3️⃣8️⃣ for ... in (2) range(...)
学Python3️⃣8️⃣ for ... in (2) range(...)前面提到:for ... in 后面,经常是一个 list 。除了list,经常出现在 for … in 后面的,还可以是,range(…) 。这样写的意思是,从start开始计数,到stop结束,每1步(step)跨多长。其中,start 可以省略,默认是 0 ;step 也可以省略,默认是 1 。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,如:例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代码例4:马拉松长跑,准备在最后(含终点)一段区间每一百米设置一志愿者服务站,为运动员加油。例5:朝圣者准备在到达终点前磕100个长头,每5步一个,最后一个磕完正好抵达终点。例6:古老的《棋盘麦粒》故事:国王奖励棋圣,棋盘上第一格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子 ...#Python#学Python#大白话#小号#大白小号学Python#原创