-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathhw8.py
More file actions
executable file
·41 lines (35 loc) · 1.75 KB
/
hw8.py
File metadata and controls
executable file
·41 lines (35 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Savin Ilya Python Homework N8
# ----------
# Встроенная функция input позволяет ожидать и возвращать данные из стандартного
# ввода в виде строки (весь введенный пользователем текст до нажатия им enter).
# Используя данную функцию, напишите программу, которая:
# 1. После запуска предлагает пользователю ввести текст.
# 2. Проверяет и, если возможно, преобразовывает полученный текст в число,
# используя рекурсивную функцию.
# Если число четное - делит его на 2 и выводит результат.
# Если число нечетное - умножает на 3 и прибавляет 1.
# После чего ждет следующего ввода.
# 3.При получении в качестве вводных данных 'cancel' завершает свою работу.
# -------------
def recursive_func(input_str, order, number):
try:
number = number + int(input_str[-1:])*(10**order)
order = order + 1
if len(input_str) == 1:
return number
else:
return recursive_func(input_str[:len(input_str)-1],order,number)
except ValueError:
print("Cant convert to stirng")
while True:
input_str = input("Enter number: ")
if input_str == "cancel":
print("Bye!")
break
number = recursive_func(input_str,0,0)
if number % 2 == 0:
print(int(number / 2))
else:
print(number*3 - 1)