优化Python while循环并带有try异常

问题描述 投票:0回答:2

对于新手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)}')
python loops optimization while-loop try-catch
2个回答
0
投票

您可以使用函数(带有简化的循环)。 您可能想要重命名

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)}')

-1
投票

您可以将 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
© www.soinside.com 2019 - 2024. All rights reserved.