В настоящее время я пытаюсь изучить Python из книги, и у меня возникает проблема. В принципе, я должен написать программу, чтобы сделать что-то, называемое последовательностью Collatz. Код выглядит следующим образом:Преобразование str в int в Python
print("Please enter a number")
number = input()
int(number)
while number > 1:
collatz()
def collatz(number):
if number % 2 == 0:
number = number // 2
print(number)
return number
else:
number = 3 * number + 1
print(number)
return number
Так что, когда я пытаюсь выполнить код, приведенный выше, я получаю следующий результат:
RESTART: C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collatz.py
Please enter a number
12
Traceback (most recent call last): File "C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collatz.py", line 6, in
while number > 1:
TypeError: unorderable types: str() > int() Blockquote
Очевидно, что моя переменная время считывается как строка, когда она должна быть целое число. Мой вопрос: почему? Я думал, что часть в строке 4, где я меняю тип данных числа на int, должна исправить это, но это не так.
Инструкции, которые я пытаюсь выполнить, если это имеет значение для моего вопроса, являются here в нижней части страницы.
Вы не присваиваете результат 'int (number)' ни к чему. Рассмотрим 'number = int (number)'. – larsks
Удивительный, спасибо. –