2016-08-26 15 views
1

異なる星印のリストを持つプログラムを作成し、ユーザーにスターの記号を入力させてから、プログラムが移動前にリストに含まれているかどうかを確認するに。whileループが繰り返されないwhileループ情報が入力されていない

問題はリストにあることを確認することですが、繰り返さないことです。

play = True 

while play: 
    print("Welcome to my Pseudo_Sammy program, please enter your name, star sign and then your question by typing it in and pressing the enter key, and I will give you the answer to your question") 
    name = input("What do they call you? ") 
    starsigns = ("leo", "virgo", "libra", "scorpio", "sagittarius", "capricorn", "aquarius", "pisces", "aries", "taurus", "gemini", "cancer") 
    starsign = str(input("What star do you come from? ")).lower() 
    while True: 
     try:    
      if starsign in starsigns: 
       break 
      else: 
       raise 
     except: 
      print("Please enter a valid star sign") 
      question = input("What bothers you dear? ") 
+1

starsignがある場合は休憩がありますが、これはwhileループから抜け出し、休憩を取り除いてください。そのようなエラーを投げかけてはいけませんが、私の友人を運ぶ。 –

+0

コードが間違ってインデントされています。ここで質問をするには、あなたが持っているくぼみを正確に見る必要があります。コードを[編集]ボックスにコピー/ペーストし、それを選択してctrl-Kを押すと、Markdownコードの書式設定のためにインデントされます。 – tripleee

答えて

0

あなたがinputを繰り返したい場合は、有効な回答を得た後、次の質問をするまで、あなたはこのように、whileループとループの外側第二入力内の第一の入力を配置する必要があります。

starsigns = ("leo", "virgo", ...) 
starsign = None 
while starsign not in starsigns: 
    if starsign: 
     print("Please enter a valid star sign: {}.".format(", ".join(starsigns))) 
    starsign = input("What start do you come from? ").lower().strip() 
question = input("What bothers you dear? ") 
関連する問題