如果文本不是数字,则更正文本

Correcting a text if it is not a number

我正在使用 python 构建一个基本计算器,我有一个功能可以检测输入的文本是否为数字。为此我定义了一个函数 ie

def check_num(num):
    while not num.isnumeric():
        print("Invalid number! Please enter a valid number.") 
        num = input()

当我输入数字时,它只接受第一个输入。

num1 = input()
check_num(num1)

如何让它接受最后输入的正确输入?

这是命令提示符中代码 运行 的图像:

您需要更改函数定义,以便函数 returns num:

def check_num(num):
    while not num.isnumeric():
        print("Invalid number! Please enter a valid number.") 
        num = input()
    return num

然后这样称呼它:

num1 = check_num(input())

您可以创建一个递归函数来请求数字而不是简单地检查它:

def ask_num():
    num = input()
    if num.is_numeric():
        return num
    print("Invalid number! Please enter a valid number.") 
    return ask_num()