如何在此函数中定义数字变量?

时间:2019-04-23 20:32:27

标签: python

我对用户定义函数一无所知,我想知道如何在此函数中定义数字变量?

def getNumber(str,input,number):
    number= str(input("Give me a number!:"))
if (number.isdigit())==True:
    print("Thats a great number I love "+str(number))
while (number.isdigit())==False:
    number=str(input("You lied to me thats not a number! Give me a number!"))
getNumber(number)

3 个答案:

答案 0 :(得分:3)

为什么您甚至需要函数的参数。尝试下面的代码。

您正在函数中明确定义数字。 您正在从用户那里获得输入。 我认为这就是您真正想要的。 另外,您的函数具有3个参数,并且您仅传递了一个作为数字的参数,而该参数甚至没有定义,这就是为什么您会收到错误消息。即使定义了变量号,也仍然会出现错误,因为那里还有两个参数,因为不需要它们是没有意义的!

def getNumber():
    number= str(input("Give me a number!:"))
    if (number.isdigit())==True:
        print("Thats a great number I love "+str(number))
    while (number.isdigit())==False:
        number=str(input("You lied to me thats not a number! Give me a number!"))
getNumber()

答案 1 :(得分:1)

在Python中,此

def getNumber(str,input,number):
    number= str(input("Give me a number!:"))
if (number.isdigit())==True:
    print("Thats a great number I love "+str(number))
while (number.isdigit())==False:
    number=str(input("You lied to me thats not a number! Give me a number!"))
getNumber(number)

与此非常不同

def getNumber(str,input,number):
    number= str(input("Give me a number!:"))
    if (number.isdigit())==True:
        print("Thats a great number I love "+str(number))
    while (number.isdigit())==False:
        number=str(input("You lied to me thats not a number! Give me a number!"))
getNumber(number)

运行第一个版本时,包含if (number.isdigit()的第三行不是您的函数的一部分-它没有缩进,因此实际上是在函数之外并且在模块的根目录。

这意味着在您运行模块时,您正在使用的变量(number变量)尚未声明且不存在。

答案 2 :(得分:0)

您可以通过var_name = value,即num = 4string = 'A string为变量定义任何值。

您要扫描用户输入并确认字符串(\D)中没有任何非数字字符:

import re

def getNumber():
    number= str(input("Give me a number!:"))

    # re (regex module), check for characters in the alphabet
    if re.search('\D',number) != None:
        return False # or use re module to remove unwanted characters by using re.replace().
    else:
        if '.' in number:
            return float(number)
        else:
            return int(number)

注意的编写方式,当调用该函数时,它将要求用户输入。如果要检查输入是否为数字,而无需在函数内部调用用户输入,请为函数提供将要检查的参数。即

import re

def getNumber(input):

    # re (regex module), check for characters in the alphabet
    if re.search('\D',number) != None:
        return False # or use re module to remove unwanted characters by using re.replace().
    else:
        if '.' in input:
            return float(input)
        else:
            return int(input)

>>> getNumber('a3')
False
>>> getNumber('3')
3

希望这会有所帮助。请务必查看re模块文档以获取更多信息。

干杯!