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

2024-09-29 02:16:59 发布

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

解决了!

def provera():

    komanda = input("\n>> ")
    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()

如果有人能给我一些用python很好地解释函数的tut的话,我对函数返回有很坏的问题


Tags: 函数ininputifdefnotnuprint
3条回答

我不太擅长这个,但在我看来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")

首先,解释清楚你在问什么。 很难理解。你知道吗

其次,代码将进入无限循环。 在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)调用函数。 这些都不起作用,尽管如此,你必须重写你的程序。你知道吗

你不应该用圆圈来调用函数。只需将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

相关问题 更多 >