Это утверждение:
num = raw_input("Choose a number: ")
делает num
строку , а не число, несмотря на его вводящее в заблуждение имя.Бывает, что Python 2 позволяет сравнивать строки с числами, и в вашей версии все строки считаются большими, чем все числа ( содержимое строки не играют роли).
Использование num = int(num)
сделать целое число (и обязательно использовать попытку /, кроме как для отлова возможных ошибок, когда пользователь набрал что-то отличное от числа!) перед началом сравнения.
(В Python 3 имя функцииизменяется с raw_input
на input
и по-прежнему возвращает строки, однако в Python 3 сравнение строки с числом считается ошибкой, поэтому вы получите исключение, а не True
или False
в каждом из вашихпопытки сравнения).