pymysql-Как добавить дела в мой код
Поэтому я пытаюсь заставить некоторые случаи работать с моим кодом, но я все время получаю одну и ту же ошибку TypeError("'>=' не поддерживается между экземплярами 'str' и 'int'",). Кто-нибудь может мне помочь? Код такой:
try:
float(rank1)
except ValueError:
return [("status",),("error",),]
try:
float(rank2)
except ValueError:
return [("status",),("error",),]
if (rank1>=0 and rank1<=10 and rank2>=0 and rank2<=10):
sql_query='''update movie set rank=(%s + %s)/2
where movie.title=%s'''
cur.execute(sql_query,(rank1,rank2,movieTitle))
con.commit()
return [("ok",)]
else :
return [("status",),("error",),]
2 ответа
Решение
Я думаю, что вы, вероятно, хотите, это:
try:
rank1 = float(rank1)
except ValueError:
return [("status",),("error",),]
try:
rank2 = float(rank2)
except ValueError:
return [("status",),("error",),]
if (rank1>=0 and rank1<=10 and rank2>=0 and rank2<=10):
sql_query='''update movie set rank=(%s + %s)/2 where movie.title=%s'''
cur.execute(sql_query,(rank1,rank2,movieTitle))
con.commit()
return [("ok",)]
else:
return [("status",),("error",),]
Ошибка именно то, что он говорит.
rank1
это строка
Этот фрагмент кода не делает то, что вы думаете:
try:
float(rank1)
except ValueError:
return [("status",),("error",),]
Это на самом деле не меняет значение rank1
на поплавок. Вы должны установить это равным переменной, чтобы сохранить новую переменную с плавающей точкой rank1
,
Вы можете просто сделать rank1 = float(rank1)
чтобы сделать это.