diff --git a/task_1.py b/task_1.py new file mode 100644 index 0000000..4c51349 --- /dev/null +++ b/task_1.py @@ -0,0 +1,38 @@ +# 1. Написать программу, которая будет складывать, вычитать, умножать или делить два числа. +# Числа и знак операции вводятся пользователем. После выполнения вычисления программа не должна завершаться, +# а должна запрашивать новые данные для вычислений. +# Завершение программы должно выполняться при вводе символа '0' в качестве знака операции. +# Если пользователь вводит неверный знак (не '0', '+', '-', '*', '/'), +# то программа должна сообщать ему об ошибке и снова запрашивать знак операции. +# Также сообщать пользователю о невозможности деления на ноль, если он ввел 0 в качестве делителя. + +sign = "" + +while sign != "0": + print('Введите два числа') + num1 = float(input('Введите первое число: ')) + num2 = float(input('Введите второе число: ')) + sign = "" + + while sign == "": + sign = input('Введите знак операции или 0 для завершения работы: ') + if sign != "0" and sign != "+" and sign != "-" and sign != "*" and sign != "/": + print('Знак операции не распознан') + sign = "" + + result = "" + + if sign == "+": + result = num1 + num2 + elif sign == "-": + result = num1 - num2 + elif sign == "*": + result = num1 * num2 + elif sign == '/': + if num2 != 0: + result = num1 / num2 + else: + print('Ошибка! Деление на ноль невозможно') + + if result != "": + print(f'Результат: {result}') diff --git a/task_2.py b/task_2.py new file mode 100644 index 0000000..303f83b --- /dev/null +++ b/task_2.py @@ -0,0 +1,20 @@ +# 2. Посчитать четные и нечетные цифры введенного натурального числа. +# Например, если введено число 34560, то у него 3 четные цифры (4, 6 и 0) и 2 нечетные (3 и 5). + +num = int(input('Введите натуральное число: ')) +odd = 0 +even = 0 +num_on_work = num + +while num_on_work != 0: + digit = num_on_work % 10 + + if digit % 2 > 0: + odd += 1 + else: + even += 1 + + num_on_work = num_on_work // 10 + + +print(f'В числе {odd} нечетных и {even} четных цифр') diff --git a/task_3.py b/task_3.py new file mode 100644 index 0000000..cc6a26f --- /dev/null +++ b/task_3.py @@ -0,0 +1,23 @@ +# 3. Сформировать из введенного числа обратное по порядку входящих в него цифр и вывести на экран. +# Например, если введено число 3486, то надо вывести число 6843. + +num = int(input('Введите целое положительное число: ')) + +num_on_work = num +num_result = "" + +while num_on_work != "": + digit = num_on_work % 10 + + if num_result == "": + num_result = digit + else: + num_result = num_result * 10 + digit + + if num_on_work < 10: + num_on_work = "" + else: + num_on_work = num_on_work // 10 + +print(f'Результат - {num_result}') + diff --git a/task_6.py b/task_6.py new file mode 100644 index 0000000..5a0194e --- /dev/null +++ b/task_6.py @@ -0,0 +1,28 @@ +# 6. В программе генерируется случайное целое число от 0 до 100. +# Пользователь должен его отгадать не более чем за 10 попыток. +# После каждой неудачной попытки должно сообщаться больше или меньше введенное пользователем число, чем то, что загадано. +# Если за 10 попыток число не отгадано, то вывести загаданное число. + +import random + +num_rand = random.randrange(0, 100) +num_try = 10 + +print('Отгадайте целое число от 0 до 100 за 10 попыток') + +while num_try > 0: + num_input = int(input('Введите целое число: ')) + num_try -= 1 + + if num_input == num_rand: + print('Вы угадали') + break + else: + if num_input > num_rand: + print('Ваше число больше загаданного') + else: + print('Ваше число меньше загаданного') + +if num_try == 0: + print(f'Количество попыток исчерпано. Было загадано число {num_rand}') + diff --git a/task_8.py b/task_8.py new file mode 100644 index 0000000..5247f10 --- /dev/null +++ b/task_8.py @@ -0,0 +1,27 @@ +# 8. Посчитать, сколько раз встречается определенная цифра в введенной последовательности чисел. +# Количество вводимых чисел и цифра, которую необходимо посчитать, задаются вводом с клавиатуры. + +def count_digit(num, digit): + now_digit = num % 10 + if now_digit == digit: + r = 1 + else: + r = 0 + + if num < 10: + return r + + return r + count_digit(num // 10, digit) + + +cnt = int(input('Введите количество чисел: ')) +digit = int(input('Введите отслеживаемую цифру: ')) + +digit_count = 0 + +while cnt > 0: + num = int(input('Введите число: ')) + digit_count += count_digit(num, digit) + cnt -= 1 + +print(f'Цифра встретилась {digit_count} раз') diff --git a/task_9.py b/task_9.py new file mode 100644 index 0000000..cfc43a7 --- /dev/null +++ b/task_9.py @@ -0,0 +1,25 @@ +# 9. Среди натуральных чисел, которые были введены, найти наибольшее по сумме цифр. +# Вывести на экран это число и сумму его цифр. + + +def get_num_sum(num): + if num < 10: + return num + return num % 10 + get_num_sum(num // 10) + + +biggest = 0 +summ = 0 + +while True: + num = int(input('Введите натуральное число или 0 для завершения ввода чисел: ')) + + if num == 0: + break + + num_sum = get_num_sum(num) + if num_sum >= summ: + biggest = num + summ = num_sum + +print(f'Число с самой большой суммой цифр - {biggest}, его сумма - {summ}')