2017-05-16 9 views
-1

2番目の関数がFalseを返しておらず、問題があるように見える場合は、このコードを繰り返すようにしています。if文が戻るときにループするPythonスクリプト!= True

さらに、2番目の関数のifステートメントは、必要なときに渡す整数を受け入れていません(つまり、1から8を渡すとき)。多分range()はここでは適切ではないでしょうか?

def askanything(): 
    choice = (int(input("Which battery? (1-8):"))) 
    batchoice(choice) 

def batchoice(bat): 
    if bat in range(1-9): 
     return True 
    else: 
     print("sorry, selection must be between 1-8") 
     askanything() 
+1

は '範囲でなければなりません(1,9)' – marmeladze

+0

*私は第二の機能がない場合繰り返すように、このコードを取得しようとしています* EDIT戻り値False --- Trueでなければなりません – Josmolio

答えて

0

条件が満たされるまで質問を続けるには、whileループが必要です。関数呼び出し内で関数を呼び出すことは望ましくありません。これを単純化する一つの方法は、ただ1つの関数にそれをすべて置くことです:

def askanything(): 
    done = False 
    while not done: 
     choice = (int(input("Which battery? (1-8):"))) 
     if(choice in range(1,9)): 
      done = True 
     else: 
      print('Sorry, selection must be between 1-8') 
+0

それはそうしました。ありがとうKewl – Josmolio