下面的python代码的输出是什么
有人能解释一下下面的代码吗下面的python代码的输出是什么,python,Python,有人能解释一下下面的代码吗 x=0 while x<7: if x==5: continue print(f'value of x is:{x}') x+=1 因为一旦你达到5你就可以继续,因此你可以在不增加x值的情况下重新开始循环 恭喜,你写了一个无限循环;-) 为了解决这个问题,您应该增加x。它没有跳过值5;它的值在5以下 continue语句重新启动循环,但由于在执行此操作之前从未更改x的值,因此在随后通过循环时,x==5条件继续得到满足,
x=0
while x<7:
if x==5:
continue
print(f'value of x is:{x}')
x+=1
因为一旦你达到
5
你就可以继续
,因此你可以在不增加x
值的情况下重新开始循环
恭喜,你写了一个无限循环;-)
为了解决这个问题,您应该增加x
。它没有跳过值5
;它的值在5以下
continue
语句重新启动循环,但由于在执行此操作之前从未更改x
的值,因此在随后通过循环时,x==5
条件继续得到满足,并且相同的行为会无限重复
您看不到这一点,因为您正在Jupyter中运行,程序没有返回的情况并不明显。如果在pythonshell上运行,或者编写脚本并使用Python解释器执行,它将永远旋转,将CPU固定在100%,并且永远不会返回以接受进一步的输入
决议 有多种方法可以解决这个问题 (建议)使用
for
循环
for
循环遍历一组值(可能是一个iterable或由生成器函数生成的值yield
),直到没有剩余值为止。相反,while
循环会一直运行,直到其条件为false为止
如果要迭代的项目数量已知且有限,则通常更习惯于使用这样的循环,如示例所示range(x,y)
是一种获取区间[x,y)
中整数的简单机制
范围(0,7)内x的:
如果x==5:
持续
打印(f'值{x}')
使用
while
循环的替代解决方案
在每次循环过程中增加x
每次通过循环时,增加x
的值
x=-1
当x<7时:
x+=1
如果x==5:
持续
打印(f'值{x}')
重构逻辑,在print
调用周围使用条件
x=0
当x<7时:
如果x!=5:
打印(f'值{x}')
x+=1
自第五次迭代以来,循环变为不定循环。为了防止这种行为,必须将“x+=1”行移动到迭代中的第一个操作:
x = 0
while x <= 7:
x += 1
if x == 5:
continue
print(x)
请在这里发布实际代码,而不是使用外部图像。它将所有内容保存在一个地方。
x = 0
while x <= 7:
x += 1
if x == 5:
continue
print(x)
for x in range(8):
if x == 5: continue
print(x)