函数返回上一个值

2024-06-16 10:27:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想让用户输入一个数字,检查它的有效性并返回它。如果数字无效,我想重复输入过程。但是,如果我键入:

  1. "5b"
  2. "50.4"

函数不返回50.4。相反,当执行第一个函数调用的余数时,它返回5.0。如何解决上述问题,只获得50.4?你知道吗

def inputGoal ():
    goalFiltered = ""
    print ('1: ' + str(goalFiltered))
    goal = input("Input number: ")

    for char in goal:
        matched = False
        for sign in comparator:
            if (sign == char):
                matched = True
                if (char != ','):
                    goalFiltered += sign
                elif (char == ','):
                    goalFiltered += '.'
        if (matched == False):
            print ("Please repeat input, valid characters are: 0 1 2 3 4 5 6 7 8 9 , .")
            inputGoal()
            #return
    goalFiltered = float(goalFiltered)
    return (goalFiltered)

比较器变量为:

comparator = ['0','1','2','3','4','5','6','7','8','9',',','.']

Tags: infalseforinputreturnif数字print
1条回答
网友
1楼 · 发布于 2024-06-16 10:27:24

如果我正确理解你的问题,我想你可以这样做:

while True:
    ask = input("Input the number:\t") #The \t just puts a tab so it looks nice
    if ask == float(ask):
        break
    else:
        print("The number is incorrect. Try again.")
        continue

相关问题 更多 >