You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python中range函数与for循环的用法及range(1,4,-1)无输出原因

嘿,这个问题问到点子上了,我来给你掰扯清楚:

Python中range函数与for循环的配合逻辑

首先,range()是Python里用来生成整数序列的内置函数,而for循环的作用就是逐个遍历这个序列里的每一个元素,把每个元素赋值给循环变量(比如你代码里的i),然后执行一次循环体的代码。

range()的用法主要有三种:

  • range(stop):从0开始生成到stop-1的整数,步长默认是1,比如range(3)生成[0,1,2]
  • range(start, stop):从start开始生成到stop-1的整数,步长默认1,比如range(1,4)生成[1,2,3]
  • range(start, stop, step):从start开始,每次增减step的值,直到接近但不越过stop为止

当for循环和range配合时,其实就是把range生成的序列里的每个数依次拿出来,丢给循环变量,然后跑一遍循环体的代码——比如print(i)就是把当前的i打印出来。

为什么for i in range(1,4,-1): print(i)没有输出?

这得搞懂range()在步长为负数时的生成规则:当step是负数时,range会从start开始,每次减少step的绝对值,但只有当前数值严格大于stop的时候,才会被加入序列

咱们看你的代码:range(1,4,-1),这里start=1,stop=4,step=-1。一开始判断初始值1是否大于stop=4?1>4显然不成立,所以这个range直接生成了一个空序列。for循环遍历空序列的时候,根本不会进入循环体,自然也就没有任何输出了。

如果想实现从某个数倒着数到另一个数,比如从4倒到1,你应该写成range(4,0,-1)——这时候start=4,stop=0,step=-1,生成的序列是[4,3,2,1],for循环遍历这个序列就会输出对应的数啦。

内容的提问来源于stack exchange,提问作者Sarthak Gupta

火山引擎 最新活动