2016-07-09 5 views
1

2月のために私はそれを作るようにしようとしているそれは月の日数の3つの正解を持っている28,29 29 28しかし、私は私は入力に整数を使用するに問題があることを認識クイズを与える2つの正解

user = int(input("")) 

if month == "January": 
    answer = 31 
elif month == "Feburary": 
    answer = 28 

user = int(input("")) 

if month == "January": 
    answer = 31 
elif month == "Feburary (use comma to seperate two numbers)": 
    answer = 28,29 or 28 or 29 

に変更しようとしたが、私はコンマでこれを修正するかどうかはわからないし、それは私をさせません28と29の間にスペースを入れてください。

これは、コードの残りの部分である:

import random 
import shelve 
from tkinter import * 
result = [] 
highscore = [] 

root = Tk() 

highscore = 0 
correct = 0 
d = shelve.open('highscore.txt') 
d['highscore'] = highscore   
d.close() 

name = input("What is your name: ") 
print ("Hello there",name,"!") 
for count in range(12): 
    month = random.choice(["January", "February", "March", "April", "May",  "June", "July", "August", "September", "October", "November", "December"]) 
while month in result: 
    month = random.choice(["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"]) 
result.append(month) 
print ("How many Days in?", month) 
user = int(input("")) 

if month == "January": 
    answer = 31 
elif month == "February": 
    answer = 28,29 or 29 or 28 
elif month == "March": 
    answer = 31 
elif month == "April": 
    answer = 30 
elif month == "May": 
    answer = 31 
elif month == "June": 
    answer = 30 
elif month == "July": 
    answer = 31 
elif month == "August": 
    answer = 31 
elif month == "September": 
    answer = 30 
elif month == "October": 
    answer = 31 
elif month == "November": 
    answer = 30 
elif month == "December": 
    answer = 31 

if user == answer: 
    print("Correct!") 
    correct = correct + 1 
else: 
    print ("Wrong, the correct answer was", answer) 

if correct > highscore: 
    highscore = correct 
    print (name,", You Beat The Highscore and got",highscore,"Out Of 12") 
    photo = PhotoImage(file='/Users/HoneyCentaur/Desktop/Approval.gif') 
    photo_label = Label(image=photo) 
    photo_label.grid()    
    photo_label.image = photo  

text = Label(text=" ") 
text.grid()  

root.deiconify() 
root.mainloop() 
else: 
    print (name, ", You Got", correct, "Out Of 12") 

d = shelve.open('highscore.txt') 
d['highscore'] = highscore   
d.close() 

答えて

0

あなたはおそらくuser答えは月の日数のための可能な回答のリストにあったかどうかをチェックするためにlistを使用したいと思うでしょう。可能であれば回答リストにuserがあるかどうかを調べるには、inキーワードをpythonで使用することができます。

コードは、ビット以下のようになります。

if month == "Janurary": 
    answer=[31] 
elif month == "Feburary": 
    answer=[28,29] 

if user in answer: 
    print("Correct!") 
    correct = correct + 1 

EDIT#1

この時に行くための他の多くのオプションがあります覚えておいてください。一種のリストの中に一つの要素を持たせることは、その目的を破り、わかりやすさを妨げる。

if month == "Janurary": 
    answer=31 
elif month == "Feburary": 
    if(user == 28): 
    user = 29 
    answer=29 

if user in answer: 
    print("Correct!") 
    correct = correct + 1 
:あなただけのポイントをカウントし、それを使用している場合

より良いオプションは、単にユーザーが28から29または副-その逆に答えるキャストするかもしれません

0

私は信じている「または」のみブールまたは比較操作に使用されます。クイズは、月の可能性「最後の日」を探している場合 すなわち

if month == "Janurary" or month == "Feburary": do_something

、私はオプションのリストを望む機能を想定しています。

if month == "Janurary": answer=[31] elif month == "Feburary": answer=[28,29]

関連する問題