Python:重复try/except语句直到满足条件
Python: Repeat try/except statement until condition met
我正在学习 python,并且被困在一个项目中。该项目的主要部分是编写 collatz 序列的代码,这不是问题。下一部分是使用 try 和 except 验证用户输入,以确保只给出一个整数值。
到目前为止,我有以下代码:
def collatz(number):
if number % 2 == 0:
return number // 2
elif number % 2 == 1:
return (3*number) + 1
print('Please enter a number:')
number = ''
try:
number = int(input())
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
while number is not int:
try:
number = int(input())
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
output = number
while output != 1:
output = collatz(output)
print(output)
我的问题是我不确定如何重复 try/except 语句,直到我从用户那里得到一个整数。现在,如果我输入一个字符串而不是一个整数,程序就会进入一个循环,随后输入一个整数也无济于事。我阅读了很多关于该主题的主题,但它们没有阐明上述问题。
真的很想知道我错在哪里。
您可以使用:
valid=False
while not valid:
try:
number=int(input())
valid=True
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
只需使用 isinstance(x, int)
,其中输入 x。
它 returns 如果 x 是一个整数,则为真。只是另一个解决方案,以防您正在寻找不同的方式!
我正在学习 python,并且被困在一个项目中。该项目的主要部分是编写 collatz 序列的代码,这不是问题。下一部分是使用 try 和 except 验证用户输入,以确保只给出一个整数值。 到目前为止,我有以下代码:
def collatz(number):
if number % 2 == 0:
return number // 2
elif number % 2 == 1:
return (3*number) + 1
print('Please enter a number:')
number = ''
try:
number = int(input())
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
while number is not int:
try:
number = int(input())
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
output = number
while output != 1:
output = collatz(output)
print(output)
我的问题是我不确定如何重复 try/except 语句,直到我从用户那里得到一个整数。现在,如果我输入一个字符串而不是一个整数,程序就会进入一个循环,随后输入一个整数也无济于事。我阅读了很多关于该主题的主题,但它们没有阐明上述问题。
真的很想知道我错在哪里。
您可以使用:
valid=False
while not valid:
try:
number=int(input())
valid=True
except ValueError:
print('Incorrect type of data entered.\nPlease enter an integer!')
只需使用 isinstance(x, int)
,其中输入 x。
它 returns 如果 x 是一个整数,则为真。只是另一个解决方案,以防您正在寻找不同的方式!