2017-06-15 22 views
0

この単純なPythonスクリプトは機能しません。この単純なスクリプトは機能しません

import time 
    import random 

    callingcard = ('BootsOnTheGround', 'TitanBaseCamp', 'TitanFacility', 
    'TitanicStorm', 'TitanicCanyon', 'TitanSandstorm', 'ToTheShip', 
    'AsteroidMines', 'TheSteelDragon', 'C6Assembly', 'C12Patrol') 

    weapons = ('Rack-9', 'Karma-45', 'NV-4', 'R3K', 'KBAR- 32', 'Trencher', 'Type-2', 'Volk', 'ERAD', 'FHR40', 'RPR Evo', 'KBS Longbow', 'DMR-1', 'Widowmaker', 'Banshee', 'DCM-8', 'Reaver', 'RAW', 'Mauler', 'Titan', 'EMC', 'Oni', 'Kendall 44', 'Hailstorm', 'OSA', 'MacTav-45', 'TF-141', 'S-Ravage', 'M1', 'Hornet', 'Spartan SA3', 'P-LAW', 'Howitzer') 

    while True: 
     print("Open Supply Drop?.") 
     answer = input().lower() 
     if answer == "yes": 
      print("Weapons or Calling Card?") 
      answer1 = input().lower() 
      if answer1 == "Calling Card": 
       print("Please wait 3 seconds...") 
       time.sleep(3) 
       print(random.choice(callingcard)) 
      elif answer1 == "Weapons": 
       print ("Please wait 3 seconds...") 
       time.sleep(3) 
       print(random.choice(weapons)) 
      else: 
       print("Please wait 3 seconds...") 
      time.sleep(3) 
      break 
     else: 
      print("Please wait 3 seconds...") 
     time.sleep(3) 
+0

それはまで働くの武器または呼び出しカード?」その後、3秒間待ってから '>>>'と表示されます。 –

+0

あなたの識別情報を調べることをお勧めします。 – ArthurTheLearner

+0

私はコードに –

答えて

3

あなたはanswer1 = input().lowerとして入力を取り、それを小文字に変更するので、任意の条件に合致されなかったました。それをanswer1 = input()に変更します。

私はあなたのコードを編集しました。

import time 
import random 

callingcard = ('BootsOnTheGround', 'TitanBaseCamp', 'TitanFacility', 
    'TitanicStorm', 'TitanicCanyon', 'TitanSandstorm', 'ToTheShip', 
    'AsteroidMines', 'TheSteelDragon', 'C6Assembly', 'C12Patrol') 

weapons = ('Rack-9', 'Karma-45', 'NV-4', 'R3K', 'KBAR- 32', 'Trencher', 'Type-2', 'Volk', 'ERAD', 'FHR40', 'RPR Evo', 'KBS Longbow', 'DMR-1', 'Widowmaker', 'Banshee', 'DCM-8', 'Reaver', 'RAW', 'Mauler', 'Titan', 'EMC', 'Oni', 'Kendall 44', 'Hailstorm', 'OSA', 'MacTav-45', 'TF-141', 'S-Ravage', 'M1', 'Hornet', 'Spartan SA3', 'P-LAW', 'Howitzer') 

while True: 
    print("Open Supply Drop?.") 
    answer = input().lower() 
    if answer == "yes": 
     print("Weapons or Calling Card?") 
     answer1 = input() 
     if answer1 == "Calling Card": 
      print("Please wait 3 seconds...") 
      time.sleep(3) 
      print(random.choice(callingcard)) 
     elif answer1 == "Weapons": 
      print ("Please wait 3 seconds...") 
      time.sleep(3) 
      print(random.choice(weapons)) 
     else: 
      print("Please wait 3 seconds...") 
     time.sleep(3) 
     break 
    else: 
     print("Please wait 3 seconds...") 
    time.sleep(3) 
+1

'input.lower()'を使用する方がより堅牢ですが、小文字の用語と比較してください。例えば。 "Calling Card"を "Call Card"に変更します。これは "CaLliNG CarD"のような入力を受け入れるためです。 – Plasma

+1

あなたの答えは正しいですが、 'input.lower()'を保持し、文字列を完全に小文字にする方が良いかもしれません。ちょっとした考え。 – ArthurTheLearner

0

あなたはanswer1 == "Weapon1"をチェックしていますが、その前に小文字にしています。そう

、どちらかanswer1.lower()を削除するか、それが動作するanswer1 == "weapon1" を確認...

[email protected]:~$ python3 ~/Desktop/s.py 
Open Supply Drop?. 
yes 
Weapons or Calling Card? 
weapons 
Please wait 3 seconds... 
Spartan SA3 
[email protected]:~$ 
関連する問題