对于新手Python开发人员来说这是一个简单的问题,但据我所知Python代码可以优化很多...我想知道是否有一种方法可以优化以下内容,所以我不需要2个while循环,但是如果用户已经正确地输入了第一个数字,我也不想重新要求他输入:
def sum(a, b):
return (a + b)
while True:
try:
# TODO: write code...
a = int(input('Enter 1st number: '))
break
except:
print("Only integers allowed for input!")
continue
while True:
try:
# TODO: write code...
b = int(input('Enter 2nd number: '))
break
except:
print("Only integers allowed for input!")
continue
print(f'Sum of {a} and {b} is {sum(a, b)}')
您可以使用函数(带有简化的循环)。 您可能想要重命名
sum
函数,因为已经有一个同名的内置函数。
def my_sum(a, b):
return a + b
def get_int_from_user():
while True:
try:
# TODO: write code...
return int(input('Enter a number: '))
except:
print("Only integers allowed for input!")
a = get_int_from_user()
b = get_int_from_user()
print(f'Sum of {a} and {b} is {my_sum(a, b)}')
您可以将 input() 放入第一个循环中并尝试:
while True:
try:
# TODO: write code...
a = int(input('Enter 1st number: '))
b = int(input('Enter 2nd number: '))
break
except:
print("Only integers allowed for input!")
continue