如何通过Python中的函数传递varibles

时间:2016-10-03 12:40:57

标签: python variables

我正在尝试从键盘读取数字并验证它

这就是我所拥有的,但它不起作用。

没有错误,但它没有记住我引入的数字

def IsInteger(a):
    try:
        a=int(a)
        return True
    except ValueError:
        return False 

def read():
    a=input("Nr: ")
    while (IsInteger(a)!=True):
        a=input("Give a number: ")

a=0
read()
print(a)

3 个答案:

答案 0 :(得分:1)

a是两个函数的局部变量,并且对代码的其余部分不可见。修复代码的最佳方法是从a函数返回read()。此外,IsInteger()功能中的间距已关闭。

def IsInteger(b):
    try:
        b=int(b)
        return True
    except ValueError:
        return False 

def read():
    a=input("Nr: ")
    while not IsInteger(a):
        a=input("Give a number: ")
    return a

c = read()
print(c)

答案 1 :(得分:1)

我认为这是你想要实现的目标。

def IsInteger(a):
    try:
        a=int(a)
        return True
    except ValueError:
        return False 

def read():
    global a
    a=input("Nr: ")
    while (IsInteger(a)!=True):
        a=input("Give a number: ")

a=0
read()
print(a)

您需要使用global表达式来覆盖全局变量,而无需在函数内创建return并键入a = read()

但我高度建议您使用 return并重新分配'a'的值,如下所述。

答案 2 :(得分:0)

好像你没有返回read()函数的结果。

您的阅读功能的最后一行应该是"返回"

然后当你调用read函数时,你会说" a = read()"