所以我是python的新手,刚刚开始创建一个基本程序,我将添加一个菜单系统,以帮助在一个文件中显示我在python上的进度和知识,并帮助我更熟悉多个功能,函数调用函数等....
我的程序在输入使if语句正确的sting后重复else语句。
看看:
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)
我不得不为我添加一些不必要的缩进来发布这个问题,很遗憾
请给出一个简单的答案,因为我的节目“行话”不是满负荷
希望很快收到你的回复, 约翰弗莱彻
答案 0 :(得分:1)
returnAns.lower
返回以较低函数<built-in method lower of str object at 0x*>
构建的字符串,而不是调用它的结果。这就是else
似乎重复的原因,if
条件正确失败。你想调用较低的函数:
returnAns.lower() # returns the lowercase returnAns
答案 1 :(得分:0)
@TheoretiCAL是对的。您希望对字符串变量的函数调用为returnAns.lower()而不是returnAns.lower
区别在于str.lower()返回一个包含全部小写字符的字符串,而str.lower根据python字符串dosumentation不是有效的运算符:https://docs.python.org/2/library/string.html