Итак, у меня возникла проблема при попытке преобразовать переменную t в float, и она дает мне ошибку, говоря: «невозможно преобразовать строку в float:» с пробелом как ложным.Python ValueError: не удалось преобразовать строку в float:
def FtoC(a):
a=(t-32)*1.8
return a
def FtoK(a):
a=(a-32)*1.8+273
return ta
def CtoF(a):
a=a*1.8+32
return a
def CtoK(a):
a=a+273
return t
def KtoC(a):
a=a-273
return a
def KtoF(a):
a=(a+459.67)*5/9
return a
########################################################
import re
t=input()
while True:
if t=='end':
break
tl=list(t)
t=re.findall('\d+', t)
t=''.join(t)
t=float(t)
if tl[-1]!='C' or tl[-1]!='K' or tl[-1]!='F' or t>200 or t<-100:
print("Wrong")
else:
if tl[-1]=='C':
print("%.2f" % t,'C',CtoF(t),'F',CtoK(t),'K')
if tl[-1]=='K':
print("%.2f" % t,'K',KtoC(t),'C',KtoF(t),'F')
if tl[-1]=='F':
print("%.2f" % t,'F',FtoC(t),'C',FtoK(t),'K')
t=input()
Я тестировал с печатью команд и между ними он печатает значение с плавающей точкой только в порядке, но в если команды он показывает ошибку, так что он просто печатает «Wrong» каждый раз. Когда я извлекаю:
if tl[-1]!='C' or tl[-1]!='K' or tl[-1]!='F' or t>200 or t<-100:
print("Wrong")
Код работает ЮС штраф. Где проблема?
Я запуск программы на частный университет платформу, и это то, что она возвращает:
Non-zero exitcode 1
*** Program stderr output following ***
Traceback (most recent call last):
File "my_code.py3", line 28, in
t=float(t)
ValueError: could not convert string to float:
При использовании Python он просто печатает «Wrong», без каких-либо ошибок.
Опубликовать полное сообщение с обратной связью пожалуйста. – Selcuk
вы никогда не будете сопоставлять любые отрицательные числа с вашим методом ... –
Как в стороне, почему вы обнаруживаете 't> 200' как условие ошибки без учета единиц? 15 ° C ≈ 59 ° F ≈ 288 Кельвин. – Chris