简单的python代码重复else语句,我不知道为什么

2024-10-03 06:22:53 发布

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

所以我是python新手,刚刚开始创建一个带有菜单系统的基本程序,我将添加到其中,以帮助在一个文件中显示我在python方面的进展和知识,并帮助我更熟悉多个函数、函数调用函数等。。。。你知道吗

我的程序在输入sting后重复else语句,这将使if语句正确。你知道吗

看一看:

def menuReturn():
returnAns = input("Would you like to return to the menu? [y/n] ")

if returnAns.lower == "y":
    print("Returning you to the menu")
    print("")
    print("")
    print("")
    menu()

elif returnAns.lower == "n":
    print("Exiting...")

else:
    print("Please repeat the answer")
    menuReturn()

def askName():
    name = input("What is your name? ")
    print(name + "? Thats a beautiful name!")
    menuReturn()

def menu(menuAnswer):
    if menuAnswer.lower == "askname":
        print("Good Choice!")
        askName()

    else:
        print("Please try again")
        menu(menuAnswer)

print("Welcome to the menu!")
print("")
print("Please enter a keyword from the following")
print("")                                                                       
#Add items here!
print("-askName")
menuAnswer = input("")
menu(menuAnswer)

我不得不添加一些不必要的缩进我张贴这个问题,所以对此感到抱歉

请给一个简单的答案,因为我的编程'行话'是不是在满负荷

希望很快收到你的来信, 约翰弗莱彻


Tags: thetonameinputifdeflowerelse
2条回答

@理论上是对的。您希望对字符串变量的函数调用返回者。下()而不是返回者。下你知道吗

不同的是str.下()返回包含所有小写字符的字符串,而str.下根据python字符串dosumentation,不是有效的运算符:https://docs.python.org/2/library/string.html

returnAns.lower返回字符串的内置低级函数<built-in method lower of str object at 0x*>,而不是调用它的结果。这就是为什么else出现重复,if条件正确地失败了。您想调用下面的函数:

returnAns.lower() # returns the lowercase returnAns

相关问题 更多 >