Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 以字符串形式显示除整数检查外的重试结果_String_Exception_Python 3.x - Fatal编程技术网

String 以字符串形式显示除整数检查外的重试结果

String 以字符串形式显示除整数检查外的重试结果,string,exception,python-3.x,String,Exception,Python 3.x,我需要一个函数来检查不同的用户输入变量是整数。 最终应向用户确认结果。 检查的工作原理是它一直循环,直到输入整数, 但无法获得要显示的结果 def chkint(msg): while True: try: n = input(msg) return(int(n)) except ValueError: print("Please enter an actual integer.")

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

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

没有回答,所以我只是在玩这个,嘿,普雷斯托,它很有效

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))
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)
什么都不做,只根据字符串是否为数字返回true或false,如下所示

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

你想要什么样的显示器?“我已经接受了:”后面跟两个数字,或者按照你的问题建议跟踪异常文本?对不起,是的,我希望它显示两个插补的数字。老实说,我不是100%确定函数的逻辑。