Collatz от автоматизации скучных вещейPython

Программы на Python
Anonymous
Collatz от автоматизации скучных вещей

Сообщение Anonymous »

Я знаю, что по этому вопросу есть несколько сообщений. Но я не мог опубликовать свой код иначе, как задав вопрос. Может кто-нибудь, пожалуйста, помогите мне понять, как я могу запретить ввод n в функцию Collatz каждый раз, когда выполняется глобальная область видимости.


Напишите функцию названный Collatz(), который имеет один параметр с именем Number.
Если число четное, то функция Collatz() должна вывести число // 2 и вернуть это значение.
Если число нечетное, то функция Collatz() должна напечатать и вернуть 3 * число + 1.

Затем напишите программу, которая позволяет пользователю вводить целое число. и это продолжает вызывать функцию Collatz() для этого числа
до тех пор, пока функция не вернет значение 1.
(Как ни удивительно, эта последовательность на самом деле работает для любого целого числа — рано или поздно, используя эту последовательность,
вы получите 1! Даже математики не могут понять, почему
Ваша программа исследует так называемую последовательность Коллатца, которую иногда называют «простейшей невозможной математической задачей».)#
Не забудьте преобразовать результат. значение из input() в целое число с помощью функции int(); в противном случае это будет строковое значение.
желаемый результат

3
10
5
16
8
4
2
1

Проверка входных данных
Добавьте в предыдущий проект операторы try и кроме, чтобы определить, пользователь вводит нецелую строку.
Обычно функция int() выдает ошибку ValueError, если ей передается нецелая строка, как в int('puppy').
В предложении кроме выведите пользователю сообщение о том, что он должен ввести целое число.


def collatz(number):

if number%2==0:
number=number//2
print(number)
elif number%2==1:
number=3*number+1
print(number)

print('Enter number: ')
n=int(input())
while n!=1:
collatz(n)


Подробнее здесь: https://stackoverflow.com/questions/599 ... ring-stuff

Вернуться в «Python»