Python While循环用户输入问题
我有一个学校练习,当用户输入一个整数时,我必须编写一个输出“奇数”或“偶数”的程序。继续循环,直到用户按Q停止程序。到目前为止,我有这个Python While循环用户输入问题,python,python-3.x,Python,Python 3.x,我有一个学校练习,当用户输入一个整数时,我必须编写一个输出“奇数”或“偶数”的程序。继续循环,直到用户按Q停止程序。到目前为止,我有这个 while(True): num= int(input("Enter a number")) mod= num % 2 if (mod > 0): print("This is an odd number") elif (mod == 0): print("This is a
while(True):
num= int(input("Enter a number"))
mod= num % 2
if (mod > 0):
print("This is an odd number")
elif (mod == 0):
print("This is an even number")
else:
print("Bye")
exit()
然而,由于Q不是整数,它给了我一个ValueError。我应该怎样做这个练习?谢谢是
int
函数引发了ValueError
,我们可以通过try
-捕获它,除了
子句:
while(True):
inp = input("Enter a number"))
if inp == 'Q':
print("Bye")
else:
try:
num = int(inp)
except ValueError:
print('Invalid input')
continue;
mod= num % 2
if (mod > 0):
print("This is an odd number")
elif (mod == 0):
print("This is an even number")
正是
int
函数引发了ValueError
,我们可以通过try
-捕获它,除了
子句:
while(True):
inp = input("Enter a number"))
if inp == 'Q':
print("Bye")
else:
try:
num = int(inp)
except ValueError:
print('Invalid input')
continue;
mod= num % 2
if (mod > 0):
print("This is an odd number")
elif (mod == 0):
print("This is an even number")
我通常先使用
user\u input=input()
,然后再使用它
以下是固定版本:
while True:
user_input = input("Enter a number")
if user_input == "Q":
print("Bye")
exit()
num = int(user_input)
mod = num % 2
if (mod > 0):
print("This is an odd number")
elif (mod == 0):
print("This is an even number")
我通常先使用
user\u input=input()
,然后再使用它
以下是固定版本:
while True:
user_input = input("Enter a number")
if user_input == "Q":
print("Bye")
exit()
num = int(user_input)
mod = num % 2
if (mod > 0):
print("This is an odd number")
elif (mod == 0):
print("This is an even number")
不要将其强制转换为int。首先检查值是否为
'Q'
。不要将其强制转换为int。首先检查值是否为'Q'
。这不会仅针对Q
,它将针对任何非int退出。我想:您经常在代码中使用粗体,我从未见过其他人这样做(至少不经常),人们喜欢这样吗?是否值得一篇元帖子?一个else
子句而不是exit()
更具可读性。@Chris\u Rands:人们是否喜欢它完全无关。在写这样的文章时,它会将太多的腺嘌呤三聚体转化为腺嘌呤二聚体。我知道Prolog程序员经常使用它,而且因为Prolog是我所知道的最简单的语言,我认为这就足够了。谢谢,我还没有熟悉例外情况,但我现在将进一步研究它们:)这不会只针对Q
,它将退出任何非整数。想:你经常在你的代码中使用粗体,我从来没有见过其他人这样做(至少不经常),人们喜欢这样吗?是否值得一篇元帖子?一个else
子句而不是exit()
更具可读性。@Chris\u Rands:人们是否喜欢它完全无关。在写这样的文章时,它会将太多的腺嘌呤三聚体转化为腺嘌呤二聚体。我知道Prolog程序员经常使用它,而且由于Prolog是我所知道的最简单的语言,我认为这就足够了。谢谢,我还没有熟悉例外情况,但我现在将进一步研究它们:)好的,非常感谢。我倾向于不使用input=input(),所以我真的应该开始这样做:)好的,非常感谢。我倾向于不使用input=input(),所以我真的应该开始这样做:)