#python
#python
Вопрос:
minutes = input("Enter number of minutes you want to convert to seconds: ")
print (minutes " minutes is " float(minutes) * 60 " seconds.")
Я получаю эту ошибку can only concatenate str (not "float") to str
.
Но если я использую str
(вместо float
), он просто выводит количество минут, введенных 10 раз
, например 10101010....
Комментарии:
1.
float(minutes) * 60
это число, вам нужно превратить его в строку,str()
чтобы отформатировать его таким образом.
Ответ №1:
float(minutes) * 60 не является строкой и поэтому не может быть объединен с остальной частью вашей строки
рассмотрите возможность преобразования float(минут) * 60 в строку
minutes = input("Enter number of minutes you want to convert to seconds: ")
print (minutes " minutes is " str(float(minutes) * 60) " seconds.")
Ответ №2:
Хотя было добавлено много ответов, но есть еще один способ, отличный от этих, и такой же простой, как и все остальные, может быть, даже проще. Просто разделите свое different data-types
с помощью a ,
🙂
print (minutes , "minutes is" , float(minutes) * 60 , "seconds.")
Комментарии:
1. Обратите внимание, что пробелы не нужны, так
print(minutes , "minutes is" , float(minutes) * 60 , "seconds.")
2. Да, это правда, я действительно скопировал это из вопроса и просто заменил
знаки. Хотя это не будет иметь значения, поскольку это всего лишь оператор печати 🙂
Ответ №3:
Причина, по которой это не работает, заключается в том, что float(minutes) * 60
возвращает значение с плавающей запятой, которое нельзя объединить со строкой. Однако str(minutes) * 60
СТРОКА минут будет умножена на 60, что также не то, что вы хотите.
Решение состоит в том, чтобы преобразовать в float для выполнения вычисления, а затем преобразовать обратно в строку. Смотрите код ниже:
minutes = input("Enter number of minutes you want to convert to seconds: ")
print (minutes " minutes is " str(float(minutes) * 60) " seconds.")
Если вы введете 3
, этот код напечатает 3 minutes is 180.0 seconds.
Другие способы сделать то же самое включают:
Форматировать строки:
print("%s is %0.1f seconds." % (minutes, float(minutes) * 60))
Если вы используете Python 3, f-strings:
print(f"{minutes} is {float(minutes) * 60} seconds.")
Комментарии:
1. Ты да бомба <3 ты
2. @OMGGItsRob Нет проблем! Я также отредактировал несколько методов для этого, так что взгляните. Кроме того, если этот ответ вам помог, пожалуйста, подумайте о его принятии.
Ответ №4:
Вы не можете объединить строку с плавающей точкой Вместо этого используйте строку формата:
print("%s minutes is %f seconds" % (minutes, float(minutes) * 60))
10 minutes is 60.000000 seconds
Комментарии:
1. Это меняет то, как должен работать код. 10 минут должны составлять 600 секунд, а не 10.
2. Да, по ошибке пропустил * 60