大大大大力无限 发表于 2023-4-8 11:41:56

python while循环

求助大神,这样写while循环为啥不对?
n=1

while n < 10:
    x=1
    while x < n:
      if n % x == 0:
            print(n,'=','*',n//x)
            break
else:
    print(n,'是一个素数')

结果是这样的:
1 是一个素数
1 是一个素数
1 是一个素数
1 是一个素数
1 是一个素数
1 是一个素数
1 是一个素数
Traceback (most recent call last):
File "D:/BaiduNetdiskDownload/python/分支和循环-for循环5.4.py", line 9, in <module>

isdkz 发表于 2023-4-8 11:44:36

你的代码中有一个缩进错误,else部分应该与内层的while对齐。此外,你需要在外层循环中更新n的值,否则它会一直保持为1,导致无限循环。以下是修复后的代码:

n = 1

while n < 10:
    x = 1
    while x < n:
      if n % x == 0:
            print(n, '=', '*', n // x)
            break
      x += 1
    else:
      print(n, '是一个素数')
    n += 1

这将输出正确的结果:

1 是一个素数
2 是一个素数
3 是一个素数
4 = * 2
5 是一个素数
6 = * 2
7 是一个素数
8 = * 2
9 = * 3

cmu052115 发表于 2023-4-8 12:05:51

{:10_254:}{:10_254:}{:10_254:}
页: [1]
查看完整版本: python while循环