Я пишу температурный преобразователь для удовольствия, и все, кажется, работает, но я получаю сообщение 'TypeError: Can not convert' float 'to str implicitly'. Из того, что я могу сказать, я преобразовываю его в строку после факта, может ли кто-нибудь сказать мне, что я делаю неправильно?Python Float to String TypeError
Я смотрел этот этот вопрос ранее "Can't convert 'float' object to str implicitly"
def tempconverter(startType,Temp):
#conversion types: c -> f c-> K , f -> c, f -> k, k -> c, k -> f
# maybe have them select only their beginning type then show
# all temp types by that temperature
if startType[0].lower() == 'c':
return ('Your temperature ' + Temp +'\n'
+ 'Farenheight: ' + ((int(Temp)*9)/5)+32 + '\n'
+ 'Kelvin: ' + str((Temp+ 273.15)) ## I get the error here ##
)
elif startType[0].lower() == 'f':
#commented out until first is fixed
#return ((int(Temp)-32)*5)/9
return Temp
elif startType[0].lower() == 'k':
return Temp
print('Welcome to our temperature converter program.')
print('''Please enter your temperature type:
C = Celsius
F = Farenheight
K = Kelvin''')
sType = input('> ')
print('Please enter the temperature you wish to convert.')
sTemp = input('> ')
print(tempconverter(sType,sTemp))
Для форматирования вы должны использовать% s и% i escapes. Выглядит чище, и я готов поспорить, что ваша проблема будет легче справиться с проблемой, если не исправить ее. – Angus
@Angus: Я бы не рекомендовал этого; автоматическое округление '% i', как правило, вызывает больше путаницы, чем того стоит. Я бы рекомендовал придерживаться метода 'format', или'% s' для всего. – user2357112
Я буду изучать использование форматирования строк, вероятно, я должен был использовать это, но этот способ казался менее сложным? У меня действительно нет оправдания, чтобы этого не сделать. –