2017-11-03 4 views
0

年齢を使用して年会費などの要因を決定し、モジュラス演算子(%)を使用している年会費をカウントするプログラムを作成しています。なんらかの理由で、%1の整数が0を作成していません。 なぜこれを実行していて、どうすれば修正できますか? 私の予想される出力は、12回の繰り返しごとに "年"という単語が印刷されています。モジュラス%が機能しないのはなぜですか?

age=int(input("Age")) 
quit="" 
while quit!="quit": 
    print(age%1) 
    if age%1==0 or age%1==1: 
     print("Year.") 
    quit=input("Type quit to quit") 
    age+=1/12 
+0

if文の下のブロックを見て、それはインデントされる必要があります。 – Abend

+0

インデントを最初に修正できますか? –

+0

申し訳ありませんが、固定インデント –

答えて

0

主な問題は、あなたが浮かぶように計算され、0.08333333333333333に等しいされ1/12上増分ということです。私はあなたの年の代わりに月に作業することをお勧めします

years = int(input("Age (years): ")) 
months = years * 12 

# Don't use built-in quit 
quit_message = "" 
while quit_message != "quit": 
    if months % 12 == 0: 
     print("Year.") 
    quit_message = input("Type quit to quit: ") 
    months += 1 

# I suppose you need an age in the end 
print('{} year(s) {} month(s).'.format(*divmod(months, 12))) 
関連する問題