如何在另一个函数中返回变量

时间:2015-12-09 20:04:41

标签: python function return

解决!

def provera():

    komanda = input("\n>> ")
    while komanda not in ("1", "2"):
        print("\nUneli ste pogrešnu komandu.\n")
        unos()

我如何将komanda归还下一个功能?

def unos():

    provera()

    while komanda in ("1", "2"):
        if komanda == "1":
            unosNam()
        if komanda == "2":
            unosKat()

我的函数返回有一个非常糟糕的问题,如果有人可能在python中为我提供了一些很好的函数表达式

3 个答案:

答案 0 :(得分:1)

首先,清楚地解释你在问什么。 这很难理解。

其次,您的代码将进入无限循环。 在provera()您正在调用unos()函数,而unos()正在调用provera() ...您将永远不会结束。

你必须解释你想要的东西。

无论如何,我猜你想要一个函数unos()的参数:

def unos(komanda):

# provera()  --> Remove this?

while komanda in ("1", "2"):
    if komanda == "1":
        unosNam()
    if komanda == "2":
        unosKat()

然后使用参数unos(komanda)调用您的函数。 这些都不会起作用,但是你必须重写你的程序。

答案 1 :(得分:1)

您不应该在圈子中调用该功能。只需将komanda返回给unos中的来电者:

def provera():
    while True:
        komanda = input("\n>> ")
        if komanda in ("1", "2"):
            break
        print("\nUneli ste pogrešnu komandu.\n")
    return komanda

def unos():
    while True:
        komanda = provera()
        if komanda == "1":
            unosNam()
        elif komanda == "2":
            unosKat()
        else:
            break

答案 2 :(得分:0)

我对此并不是很了解,但在我看来komanda是一个局部变量。

你可以尝试将komanda变成一个全局变量,就像这样

komanda = input("\n>> ")

def provera(x):
    while komanda not in ("1", "2"):
        print("\nUneli ste pogrešnu komandu.\n")
        unos()

def unos():

    provera()

    while komanda in ("1", "2"):
        if komanda == "1":
            unosNam()
        if komanda == "2":
            unosKat()

或者您可以尝试使用ifelif来完成provera()

中的所有操作
if komanda == "1" or komanda == "2"
unosNam()
else:
print("\nUneli ste pogrešnu komandu.\n")