蟒蛇尝试,除了不给出预期值

这是我的蟒蛇程序


def try_ec(argument):

    try:

        int(argument)

    except:

        argument = input("Please enter a valid value: ")

a = []

score = 0

first = input("First Number: ")

try_ec(first)

first = int(first)

second = input("Second Number: ")

try_ec(second)

second = int(second)

错误

我试图从用户那里获取一个整数,我正在使用try,除非用户错误地输入了一个字符串。但是,我的代码给出了此错误。如何使代码正确?


米琪卡哇伊
浏览 103回答 3
3回答

饮歌长啸

这是因为您改变了区域设置变量。第一的价值永远不会改变。请考虑以下示例a = 5def mut(arg):  arg = 6mut(a)print(a) // 5这是因为 arg 是传入的参数的本地副本,它只存在于该函数作用域中。这就是我们如何做到这一点,a = 5def mut(arg):  arg = 6  return arga = mut(a)print(a) // 6通过返回新的计算值并将其分配给我们的初始变量。

慕尼黑5688855

您可以使用递归调用方法将其转换为 。Int   def try_ec(argument):        try:            return int(argument)        except:            inpt = input("Please enter a valid value: ")            try_ec(inpt)    a = []    score = 0    first = input("First Number: ")    first = try_ec(first)    second = input("Second Number: ")    second = try_ec(second)

翻阅古今

您必须使用 while 循环来检查该过程,直到它正确为止。例如:def take_int_input(text):    while True:        argument = input(text)        try:            return int(argument)        except:            print("Please enter a valid value!")first = take_int_input("First Number: ")second = take_int_input("Second Number: ")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python