2017-09-14 5 views
-2

私はPythonの初心者で、進歩と知識の表示に役立つメニューシステムを備えた基本プログラムを作成し始めました。 Pythonを1つのファイル内に配置し、複数の関数、関数呼び出し関数などをより快適にするのに役立ちます。単純なpythonコードがelseステートメントを繰り返しているのですが、なぜわからないのですか?

私のプログラムは、if文を正しく入力するようにスティングを入力した後、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) 

私は私のプログラミングの「専門用語」であるとして、単純な答えを与えてください、私はこの質問を投稿するために、その

についてとても残念にいくつかの不要なくぼみを追加する必要がありましたSTを返しreturnAns.lowerないフル稼働で

希望あなたからすぐに聞いて、 ジョン・フレッチャー

答えて

1

リングの下位機能は<built-in method lower of str object at 0x*>であり、それを呼び出した結果ではありません。このため、elseが繰り返されているように見えるため、ifの状態は正しく失敗します。

returnAns.lower() # returns the lowercase returnAns 
0

@TheoretiCALが正しいとします。文字列変数への関数呼び出しをreturnAns.lowerの代わりにreturnAns.lower()にしたい場合

違いは、str.lowerはすべて小文字の文字列を返しますが、str.lowerは有効な演算子ではありませんPython文字列のdosumentationに従ってここに:https://docs.python.org/2/library/string.html

関連する問題