2016-06-24 14 views
-3

この関数は2つの整数をとります。xは時間、yは分です。この関数は、テキスト内の時刻を最も近い時間に印刷する必要があります。 これは私が書いたコードです。2つの値をとるPython関数

def approxTime(x, y): 
    if int(y) <= 24: 
     print("the time is about quarter past" + int(y)) 
    elif 25 >= int(y) <=40: 
     print("the time is about half past" + int(y)) 
    elif 41 >= int(y) <= 54: 
     print("the time is about quarter past" + int(y+1)) 
    else: 
     print("the time is about" + int(y+1) +"o'clock") 
approxTime(3, 18) 

ただし、このエラーメッセージが表示されています。

Traceback (most recent call last): File 
    "C:/Users/Jafar/Documents/approxTime.py", line 14, in <module> 
     approxTime(3, 18) File "C:/Users/Jafar/Documents/approxTime.py", line 5, in approxTime 
     print("the time is about quarter past" + int(y)) TypeError: Can't convert 'int' object to str implicitly 
+2

ない、 '(1 INT(Y))strの' 'を呼び出すか、より良い再びところで' str.format' –

+0

を使用し、それは 'X'でなければなりません 'int型(Y + 1)を呼び出さないでください'print'ステートメントの' y' - 変数名を 'hours'や' minutes'などに変更してください。 –

+1

次回は、エラーメッセージのグーグルを試してみてください。 – TigerhawkT3

答えて

3

文字列オブジェクトと整数オブジェクトを連結しようとしています。オブジェクトy(またはy+1)を文字列に変換してから追加します。 Like:

print("the time is about quarter past" + str(y)) #similarly str(int(y)+1) 
+0

'y'は文字列ですので、1を追加するには' str(int(y)+ 1) 'が必要です。 –

+0

正解です。 – SuperSaiyan

+0

@SuperSaiyanもし 'y'が文字列ならstr(int(y + 1))以上のstr(int(y)+1)でなければなりません。 – mgc

1

文字列にキャストする必要があります。あなたはintと文字列を一緒に連結しようとしていますが、これは互換性がありません。

def approxTime(x, y): 
    if int(y) <= 24: 
     print("the time is about quarter past" + str(y)) 
    elif 25 >= int(y) <=40: 
     print("the time is about half past" + str(y)) 
    elif 41 >= int(y) <= 54: 
     print("the time is about quarter past" + str(y+1)) 
    else: 
     print("the time is about" + str(y+1) +"o'clock") 
approxTime(3, 18) 
関連する問題