【问题标题】:Unable to get the value from user input inside a function无法从函数内的用户输入中获取值
【发布时间】:2017-01-27 11:17:36
【问题描述】:

我认为这是一个非常简单的问题。 我正在调用一个函数,该函数也要求用户输入一些错误处理。输出应该是整数(但我认为这个问题通常是所有函数都要求任何输入)。 你能看看我做错了什么吗? 谢谢

def askShift():
    while True:
        try:
            cypShift = int(input('Enter number: '))
            return cypShift
            break
        except ValueError:
            print('\n', 'ERROR : Enter a whole number', '\n')

askShift()
print(askShift())

【问题讨论】:

  • 你为什么在return之后break
  • 你的函数应该可以工作,但是你调用了两次askShift()
  • 此功能有效。只需删除break 和第一个askShift()
  • @s3icc0: 不,break 并不是真正的问题:但它是 死代码:无法执行的代码,因为 return 会阻止它。
  • @s3icc0:那是因为您删除了对askShift() 的第一次调用。

标签: python function python-3.x input return


【解决方案1】:

所以return 之后的break 已作为无法访问的代码被删除 问题是对askShift() 函数的额外调用......

def askShift():
    while True:
        try:
            cypShift = int(input('Enter number: '))
            return cypShift
        except ValueError:
            print('\n', 'ERROR : Enter a whole number', '\n')

print(askShift())

【讨论】:

  • 这不是真的:如果你删除break,代码仍然可以工作。然而,写break 是没有意义的。顺便说一句,没有 dv。
  • 这不是真的,中断不是问题
猜你喜欢
  • 2022-12-14
  • 2020-10-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 1970-01-01
  • 2020-12-26
相关资源
最近更新 更多