AOZ32 发表于 2020-11-14 14:35:05

大佬们救救孩子

x=[]
n=int(input())
for i in range(2,n+1):
    for j in range(2,i):
      if i%j==0:
            break
    else:
            x.append(i)
print(x)
能不能帮我解释一下子,为啥这里if else没有对齐却是对的而且答案也是对的

kogawananari 发表于 2020-11-14 14:47:40

for循环不以break结束就会进入else语句

风过无痕1989 发表于 2020-11-14 14:59:31

if ... else 对齐,是编译软件的要求,不是必须的!

有些编译软件要求缩进,而大多编译软件并没有这个要求;

另外,漂亮整齐的代码,是给程序阅读者看的,包括你自己。若干年以后,你再来看你初学时写的代码,也不至于骂自己初学时太不堪了

Twilight6 发表于 2020-11-14 15:00:13



这应该是你还没学习到的语句 for - else 语句

只要 for 循环正常结束,即会执行 else代码块,而遇到 break 就不会执行 else 的代码块

所以你这里放 if 下面 和 for 循环下面 都是一样的效果了

while - else 语句也是,只要是正常循环结束,就会执行 else 代码块

15909574023 发表于 2020-11-15 08:06:59

因为有break
页: [1]
查看完整版本: 大佬们救救孩子