gpt4 book ai didi

Python if 和 else 打印条件

转载 作者:行者123 更新时间:2023-12-01 13:38:51 25 4
gpt4 key购买 nike

如果一个整数能被3整除,打印“Hi”

如果能被7整除,打印“Bye”

如果能同时被3和7整除,打印"HiBye"

到目前为止,我已经尝试过:

for i in range(1,100):
if i % 3 == 0:
print "Hi"
if i % 7 == 0:
print "Bye"
if i % 3 == 0 and i % 7 == 0:
print "HiBye"
else:
print i

但是我的数字重复了。即这是我得到的输出。

1
2
Hi
3
4
5
Hi
6
Bye
7
8
Hi
9
10
11
Hi
12
13
Bye
14
Hi
15
16
17
Hi
18
19
20
Hi
Bye
HiBye

如您所见,3 再次重复。我认为错误在于

else:
print i

声明

最佳答案

您需要使用 elif 而不是 if,并首先测试3 和 7 情况:

if i % 3 == 0 and i % 7 == 0:
print "HiBye"
elif i % 3 == 0:
print "Hi"
elif i % 7 == 0:
print "Bye"
else:
print i

您使用了独立 if 语句。每个 if 语句都会被测试并执行它们的 block ,而不管您的代码可能在之前或之后执行的其他 if 语句。然而,elif block 附加到它们的 if 语句,Python 只会执行一个 block ,即第一个条件为真的 block .

所以在上面的if..elif..elif..else系列测试中,if i % 3 == 0 and i % 7 == 0是没错,不会执行任何其他分支,包括 else 分支。

现在输出如下:

>>> for i in range(1, 22):
... if i % 3 == 0 and i % 7 == 0:
... print "HiBye"
... elif i % 3 == 0:
... print "Hi"
... elif i % 7 == 0:
... print "Bye"
... else:
... print i
...
1
2
Hi
4
5
Hi
Bye
8
Hi
10
11
Hi
13
Bye
Hi
16
17
Hi
19
20
HiBye

关于Python if 和 else 打印条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41288099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com