Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
下面的python代码的输出是什么_Python - Fatal编程技术网

下面的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)