2016-09-29 10 views
0

この質問には、「今すぐ登録できますか?」シニア、火曜日はジュニア、水曜日はソフォモア、木曜日は登録できますもし新入生なら。Python-ブール型のクロスチェック

if/elseステートメントを使用せずに、それぞれの日時とステータスをTrueまたはFalseにするかどうかを簡単にチェックする方法はありますか?もしそうなら、コードはどのように見えますか?

+2

私たちにあなたのコードを表示してみましたか? –

+0

私はAND/OR(Pythonの短絡評価を使用して)あなたのために働くかもしれないと思います –

答えて

0

おそらく、このような何か?

from datetime import datetime 

def options(): 
    print """ 
Are you a? [Enter 0-4] 
0) Senior 
1) Junior 
2) Sophomore 
3) Freshman 
4) quit 
""" 


print "Can I register today?" 
while True: 
    options() 
    selection = raw_input("Enter status: ") 
    try: 
    selection = int(selection) 
    except ValueError: 
    print "Invalid entry please try again" 
    continue 
    # if you can't use any if statements 
    # replace the if statement with a print statement saying to exit using control c 
    # or above the while loop, create the variable selection = None 
    # change the while loop from a while True to while selection != 4: 
    # I leave it up to you :-) 
    if selection == 4: 
    break 
    # 0 is monday 
    weekday = datetime.today().weekday() 
    print 
    print "reply: {0}".format(selection == weekday) 
+0

私はOPが文を使用したくないと信じています –

+0

私は上記のコメントでOPオプションを与えました – reticentroot

+0

ありがとう、 – Normality

1

ここでは、Python辞書とブール比較を使用したソリューションがあります。

私たちはの学生ステータスからの関連を作成する辞書を使用しています。 次に、ユーザー入力を取得し、ブール式を使用して比較します。

from datetime import date 
import calendar 

my_dict = {'Senior' : 'Monday', 
      'Junior' : 'Tuesday', 
      'Sophomore' : 'Wednesday', 
      'Freshman' : 'Thursday' 
      } 


my_date = date.today() 

my_status = (raw_input("Enter your enrollment status: ")) #Student current status 

today = calendar.day_name[my_date.weekday()] #Day or week 

reg_status = today == my_dict[my_status] 

#who can register today 
who_can_register = my_dict.keys()[my_dict.values().index(today)] 

print "Can you register=", reg_status 
print "Today is ", today , " Only ", who_can_register, "can register" 

出力:

Python 2.7.9 (default, Dec 10 2014, 12:24:55) [MSC v.1500 32 bit (Intel)] on win32 
Type "copyright", "credits" or "license()" for more information. 
>>> ================================ RESTART ================================ 
>>> 
Enter your enrollment status: Senior 
Can you register= False 
Today is Thursday Only Freshman can register 
>>> ================================ RESTART ================================ 
>>> 
Enter your enrollment status: Junior 
Can you register= False 
Today is Thursday Only Freshman can register 
>>> ================================ RESTART ================================ 
>>> 
Enter your enrollment status: Sophomore 
Can you register= False 
Today is Thursday Only Freshman can register 
>>> ================================ RESTART ================================ 
>>> 
Enter your enrollment status: Freshman 
Can you register= True 
Today is Thursday Only Freshman can register 
>>>