我正在尝试创建一个程序,该程序将持续接受用户输入并确定用户输入是偶数还是奇数。程序只会在输入零时停止。
但是,当我输入零时,remote: Searching for wit>=3.4.0
remote: Reading http://mirror1.ops.rhcloud.com/mirror/python/web/simple/wit/
remote: No local packages or download links found for wit>=3.4.0
remote: error: Could not find suitable distribution for Requirement.parse('wit>=3.4.0')
s print
后跟0 is an even number
。预期的输出只是All done!
。这是我的代码:
All done!
答案 0 :(得分:0)
这里的问题是当Python读取你的代码时,它会自上而下地读取它。当它首先到达if entry % 2 == 0:
并将输出那里的任何内容。然后它继续if entry == 0
并输出那里的任何内容。
你想要的是它应该只去一个代码块并执行它。您还希望它优先entry == 0
,因此您可以将其移至顶部。在这种情况下,elif
是您寻找的命令。
def main():
total = 0
count = 0
while True:
entry=int(input('Enter a number or 0 to quit:'))
if entry == 0:
print ('All done!')
break
elif entry % 2 == 0:
print (format (entry), 'is an even number.')
else:
print (format (entry),'is an odd number.')
main()
答案 1 :(得分:0)
如果要在执行任何其他操作之前检查输入是否为零,请执行此操作。如果要在某些条件下停止循环,请将break
置于条件内。请注意,count
和total
未使用。此外,没有格式化的format()
也是多余的。
def main():
while True:
entry = int(input('Enter a number or 0 to quit:'))
if entry == 0:
print('All done!')
break
if entry % 2 == 0:
print(entry, 'is an even number.')
else:
print(entry, 'is an odd number.')
main()
答案 2 :(得分:0)
你应该在entry%2==0
条件之前检查0,ince 0%2 == 0它没有打破循环。
其次使用raw_input
代替输入。
def main():
total = 0
count = 0
while True:
entry=int(raw_input('Enter a number or 0 to quit:'))
if entry == 0:
print ('All done!')
break
if entry % 2 == 0:
print (format (entry), 'is an even number.')
else:
print (format (entry),'is an odd number.')
main()
答案 3 :(得分:0)
为什么不尝试这样的事情
if entry == 0:
print ('All done!')
break
else if entry % 2 == 0:
print (format (entry), 'is an even number.')
else:
print (format (entry),'is an odd number.')
抱歉错误的缩进。我对python并不熟悉。如果在遇到0时需要做的就是结束
,为什么还要做额外的工作呢?