2016-06-24 6 views
-3

Эта функция принимает два целых числа x - это час, а y - минута. Функция должна печатать время в тексте до ближайшего часа. Это код, который я написал.Функция 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

Не называйте 'Int (у + 1)' 'называть ул (интермедиат (у) +1)' или лучше снова использовать 'str.format' –

+0

BTW, он должен быть' x' нет, 'y' в операторах' print' - пожалуйста, измените имена переменных на 'hours' и' minutes' или подобное, чтобы сделать вещи более очевидными. –

+1

В следующий раз попробуйте отправить сообщение об ошибке в Google. – TigerhawkT3

ответ

3

Вы пытаетесь объединить строковые и целочисленные объекты! Преобразуйте объект y (или y+1) в строку, а затем добавьте. Нравится:

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) 
Смежные вопросы