Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数不返回任何值-Python_Python - Fatal编程技术网

函数不返回任何值-Python

函数不返回任何值-Python,python,Python,我编写了一个菜单函数,它循环直到用户按3退出。但是当用户通过按1或2请求其他选项时,我希望它打印一些内容。这是我的密码: def Menu(): return("\n" + "Menu:\n-------------" + "\n1 - Does This" + "\n2 - Does That" + "\n3 - Quit" + "\n") if option == 1:

我编写了一个菜单函数,它循环直到用户按3退出。但是当用户通过按1或2请求其他选项时,我希望它打印一些内容。这是我的密码:

def Menu():
    return("\n"
          + "Menu:\n-------------"
          + "\n1 - Does This"
          + "\n2 - Does That"
          + "\n3 - Quit"
          + "\n")
    if option == 1:
        return "\nThis"
    if option == 2:
        return "\nThat"

option = None
while True:
    print(Menu())
    option = int(input("Please choose an option: "))
    if option == 3:
        print("\nBye!")
        break
    if option < 1 or option > 3:
        print("\nIncorrect input!")

我想要的结果是它打印“This”或“That”,然后再次循环菜单,直到我退出。

此时,当您选择
1
2
时,您的while循环再次执行。您需要实现用户输入有效值的代码

只是想澄清一下,因为您正在返回
菜单()
函数,所以这些行永远不会被击中

if option == 1:
    return "\nThis"
if option == 2:
    return "\nThat"
编辑

这是一个改进的工作版本

input_string = """Menu:-------------
1 - Does This"
2 - Does That"
3 - Quit
Please choose an option:"""

def Menu(option):
    if option == "1":
        return "\nThis"
    if option == "2":
        return "\nThat"

while True:
    option = input(input_string)
    if option in {"1","2"}:
        print(Menu(option))

    elif option == "3":
        print("\nBye!")
        break
    else:
        print("\nIncorrect input!")

您忘记实际编写打印文本的调用代码。试一试:

def Menu():
return("\n"
      + "Menu:\n-------------"
      + "\n1 - Does This"
      + "\n2 - Does That"
      + "\n3 - Quit"
      + "\n")


option = None
while True:
    print(Menu())
    option = int(input("Please choose an option: "))
    if option == 3:
        print("\nBye!")
        break
    elif option == 1:
        print ("\nThis")
    elif option == 2:
        print ("\nThat")
    elif option < 1 or option > 3:
        print("\nIncorrect input!")
def菜单():
返回(“\n”
+“菜单:\n----------------”
+“\n1-这是否正确”
+“\n2-是吗?”
+“\n3-退出”
+“\n”)
选项=无
尽管如此:
打印(菜单())
option=int(输入(“请选择一个选项:”)
如果选项==3:
打印(“\n字节!”)
打破
elif选项==1:
打印(“\n此”)
elif选项==2:
打印(“\n地址”)
elif选项<1或选项>3:
打印(“\n输入不正确!”)

您需要重新调整一下位置

def Menu():
return("\n"
      + "Menu:\n-------------"
      + "\n1 - Does This"
      + "\n2 - Does That"
      + "\n3 - Quit"
      + "\n")


while True:
print(Menu())
option = int(input("Please choose an option: "))
if option == 1:
    print("\n Does This")
    continue
if option == 2:
    print("\n Does That ")
    continue
if option < 1 or option > 3:
    print("\nIncorrect input!")
    continue
if option == 3:
    print("\nBye!")
    break
def菜单():
返回(“\n”
+“菜单:\n----------------”
+“\n1-这是否正确”
+“\n2-是吗?”
+“\n3-退出”
+“\n”)
尽管如此:
打印(菜单())
option=int(输入(“请选择一个选项:”)
如果选项==1:
打印(“\n这样做”)
持续
如果选项==2:
打印(“\n这样做”)
持续
如果选项<1或选项>3:
打印(“\n输入不正确!”)
持续
如果选项==3:
打印(“\n字节!”)
打破

您从未将其编程到函数中,只是按照您编写退出部分的方式编写而已。您不是昨天问了这个问题并被标记和删除了吗?请解释此
返回(“\n”…
以及您希望以后如何执行任何操作。函数中的第一行是
return
语句。之后的任何一行都不会被读取,因此在
return
之后编写的任何代码都会被忽略。“您需要在用户输入有效值的地方实现代码”…我认为这对初学者没有多大帮助
def Menu():
return("\n"
      + "Menu:\n-------------"
      + "\n1 - Does This"
      + "\n2 - Does That"
      + "\n3 - Quit"
      + "\n")


while True:
print(Menu())
option = int(input("Please choose an option: "))
if option == 1:
    print("\n Does This")
    continue
if option == 2:
    print("\n Does That ")
    continue
if option < 1 or option > 3:
    print("\nIncorrect input!")
    continue
if option == 3:
    print("\nBye!")
    break