Что не так с моим условным кодом If-Else, который получает пользовательский ввод и классифицирует данные как «горячие» или «холодные» - PullRequest
2 голосов
/ 16 февраля 2020
HighTemp1= input()
print(‘Temperature 1:’ +  HighTemp1)
LowTemp2= input()
print(‘Temperature 2:’ + LowTemp2)
if (HighTemp1>80):
   print( ‘The high temperature was Hot’)
elif(HighTemp1> 40 and <80):
   print(‘The high temperature was Average’)
else:
   print(‘The high temperature was Cold’)

if (LowTemp2>80):
   print( ‘The low temperature was Hot’)
elif(LowTemp2> 40 and <80):
   print(‘The low temperature was Average’)
else:
   print(‘The low temperature was Cold’)

Итак, я предполагаю определить категорию двух введенных пользователем температур за день и вывести ее следующим образом:

Temp        Category
>80         Hot
40 to 80    Average
<40         Cold

Пример # 1: Температура 1: 81 Температура 2: 37 Высокая температура была горячей Низкая температура была холодной

Я получил так много ошибок в этом коде, и я не уверен, что не так. Код не будет работать в IDLE, потому что, когда я запускаю его построчно (так как я получаю многократную ошибку в выражении), возникает либо ошибка типа «оператор не может использовать> с int и string», либо синтаксическая ошибка. Что я не понимаю, что мешает запуску моего кода?

Ответы [ 2 ]

0 голосов
/ 16 февраля 2020

Сначала input() возвращает строку . Вам нужно привести его в int для ваших сравнений.

Во-вторых, следите за своими "цитатами". Символы, которые вы используете в своих строках как кавычки, не являются простыми ASCII. Я заменил их все.

В-третьих, ваши сравнения были ошибочными. Я переделал "высокие" и просто исправил "низкие". Вы можете увидеть разницу.

Кроме того, метод input() принимает строку в качестве входного аргумента для вывода пользователю, поэтому он / она знает что-то ввести. Вероятно, это хорошая вещь.

Удачного кодирования!

HighTemp1 = int(input('High: ').strip())
print('Temperature 1: %d' %  HighTemp1)
LowTemp2= int(input('Low: ').strip())
print('Temperature 2: %d' % LowTemp2)
if HighTemp1 > 80:
   print('The high temperature was Hot')
elif 40 < HighTemp1 <= 80:
   print('The high temperature was Average')
else:
   print('The high temperature was Cold')

if (LowTemp2>80):
   print('The low temperature was Hot')
elif(LowTemp2> 40 and LowTemp2<=80):
   print('The low temperature was Average')
else:
   print('The low temperature was Cold')

Кроме того, следите за граничными условиями ... Если у вас есть > 80 в вашем if и < 80 в вашем elif вы пропустите 80. Он провалится через трещины, и ваш код скажет, что он холодный.

0 голосов
/ 16 февраля 2020

Я полагаю, вы используете Python3. У вас есть несколько ошибок в вашем коде

HighTemp1= int(input())  #to take int input, you need to parse it to int. as input() directly reads a string
print("Temperature 1:" +  str(HighTemp1)) #print in python3 assumes string in "" 
LowTemp2= int(input())
print("Temperature 2:" + str(LowTemp2)) #int can't be directly concatenated to string. You need to parse it to string using str() to concat it with string
if (HighTemp1>80):
    print( "The high temperature was Hot")
elif(HighTemp1> 40 and  <80):
    print("The high temperature was Average")
else:
    print("The high temperature was Cold")

if (LowTemp2>80):
    print( "The low temperature was Hot")
elif(LowTemp2> 40 and <80):
    print("The low temperature was Average")
else:
    print("The low temperature was Cold")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...