【问题标题】:showing result of try except integer check as a string将除整数检查之外的尝试结果显示为字符串
【发布时间】:2013-07-31 14:57:38
【问题描述】:

我需要一个函数来检查不同的用户输入变量是否为整数。 结果应在最后向用户确认。 检查的工作原理是它一直循环直到输入整数, 但无法显示结果...

def chkint(msg):
    while True:
        try:
            n = input(msg)
            return(int(n))
        except ValueError:
            print("Please enter an actual integer.")


number1 = input (chkint("Please enter first value:"))

number2 = input (chkint("Please enter second value:"))

results = (number1, number2)

print ("I have accepted: " + str (results))

【问题讨论】:

  • 你想要什么显示器? “我已接受:” 后跟 2 个数字,还是按照您的问题建议跟踪异常文本?
  • 对不起,是的,我希望它显示两个估算的数字。老实说,我不能 100% 确定函数的逻辑。

标签: string exception python-3.x


【解决方案1】:

没有答案,所以我只是在玩这个,嘿,它的工作原理......

def chkint(msg):
    while 1:
        try:
            n = input(msg)
            return(int(n))
        except ValueError:
            print("Please enter an integer.")

number1 = chkint("Please enter first value:")

number2 = chkint("Please enter second value:")

results = [number1, number2]

print ("I have accepted: " + str (results))

【讨论】:

    【解决方案2】:

    try: 块中将其转换为int() 是检查数字的好方法。在您最初的尝试中,您要求输入其消息依赖于进一步的输入。

    错误的简化版:

    def getMessage():
        return input()   # this asks the user what to ask the user for
    
    input(getMessage())  # this waits for getmessage to finish before asking the user
    

    删除 input() 语句是最简单的解决方法,就像您所做的那样。
    但更易读的解决方法是让chkint(msg) 什么都不做,只根据字符串是否为数字返回真或假,就像这样

    def chkint(msg):   # returns true if the string can be converted, false otherwise
        try:
            int(msg)
        except ValueError:
            return False
        return True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-02
      • 2018-05-11
      • 2020-03-17
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2017-02-25
      • 1970-01-01
      相关资源
      最近更新 更多