为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

米琪卡哇伊 2022-09-20 17:44:47
这是我的蟒蛇程序def try_ec(argument):    try:        int(argument)    except:        argument = input("Please enter a valid value: ")a = []score = 0first = input("First Number: ")try_ec(first)first = int(first)second = input("Second Number: ")try_ec(second)second = int(second)错误我试图从用户那里获取一个整数,我正在使用try,除非用户错误地输入了一个字符串。但是,我的代码给出了此错误。如何使代码正确?
查看完整描述

3 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

这是因为您改变了区域设置变量。第一的价值永远不会改变。


请考虑以下示例


a = 5


def mut(arg):

  arg = 6


mut(a)

print(a) // 5

这是因为 arg 是传入的参数的本地副本,它只存在于该函数作用域中。


这就是我们如何做到这一点,


a = 5


def mut(arg):

  arg = 6

  return arg



a = mut(a)

print(a) // 6

通过返回新的计算值并将其分配给我们的初始变量。


查看完整回答
反对 回复 2022-09-20
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

您可以使用递归调用方法将其转换为 。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)


查看完整回答
反对 回复 2022-09-20
?
翻阅古今

TA贡献1780条经验 获得超5个赞

您必须使用 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: ")


查看完整回答
反对 回复 2022-09-20
  • 3 回答
  • 0 关注
  • 102 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信