解决!
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中为我提供了一些很好的函数表达式
答案 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()
或者您可以尝试使用if
和elif
来完成provera()
if komanda == "1" or komanda == "2"
unosNam()
else:
print("\nUneli ste pogrešnu komandu.\n")