2017-07-09 15 views
1

私は、ユーザが誕生月と日を入力した後に来る星座をコードしようとしています。変数が定義されていないエラーとifステートメントが実行されません

print("To figure out your horoscope, enter the following questions") 
month = int(input("what month were you born(january,december,august: ")) 
days = int(input("what day were you born(2,4,12: ")) 
if month == 'december': 

    astro_sign = 'Sagittarius are nice people' if (day < 22) else 'Capricon are adventurous' 
print(astro_sign) 

しかし、私はコードを実行するたびに、それは私にエラーを与える:

print(astro_sign) 
NameError: name 'astro_sign' is not defined 

現在、私はわずか12日である1月は入れ後の一枚に、22を下回っていますこのコードの動作、私はより多くの月を追加するつもりです。誰でも助けてくれますか?

+1

'月の場合== 12(私はしてくださいそれがすべて間違って得た場合を教えてください)を参照してください:'月12 –

+0

'month'は文字列ではなく整数として宣言されます。これは、OPの質問に見られるのと同じ論理エラーです。 – Araymer

答えて

3

astro_sign変数を導入/作成しているためです。したがって、実際には「12」でないものを入力するたびに、このエラーが発生します。単に

、それはあなたがあなたの条件を入力しない場合には、少なくとも利用可能であるので、条件の前にあなたのastro_signを作成します。

astro_sign = '' 
if month == '12': 
    # rest of code here 

さらに、あなたが実際にあなたの現在のコードとその条件を入力することはありませんあなたがここにintとして月のあなたの入力をキャストしているので、:

month = int(input("month: ")) 

しかし、あなたの状態は、明示的に単一引用符ごとの文字列をチェックしている:'12'

if month == '12': 

あなたが実際に実行する必要があります:代わりにそう

if month == 12: 

あなたはintにint型を比較しているので、単一引用符を削除します。

-1
print("Please enter your birthday") 

month = int(input("month: ")) 

day = int(input("day: ")) 

if month == '12': 

     print('Sagittarius are nice people') 

if day < 22: 

     print('Capricon are adventurous') 

これは実際にあなたのために働く場合

+0

ある場合にのみastro_signを定義している –

関連する問題