diff --git a/task-1.py b/task-1.py new file mode 100644 index 0000000..bcc24ad --- /dev/null +++ b/task-1.py @@ -0,0 +1,21 @@ +""" +Задание: +Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление. +Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль. +""" + + +# Определяем фун-цию нахождения частного +def div(a, b): + try: + return a / b + except ZeroDivisionError: + print("На ноль делить нельзя!") + return "" + + + +dividend = float(input("Делимое ")) +divider = float(input("Делитель ")) + +print("Частное {}".format(div(dividend, divider))) diff --git a/task-2.py b/task-2.py new file mode 100644 index 0000000..3fba790 --- /dev/null +++ b/task-2.py @@ -0,0 +1,13 @@ +""" +Задание: +Реализовать функцию, принимающую несколько параметров, +описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон. +Функция должна принимать параметры как именованные аргументы. Реализовать вывод данных о пользователе одной строкой. +""" + + +def my_join(fname, lname, byear, cyear, email, phone): + return "{}, {}, {}, {}, {}, {}".format(fname, lname, byear, cyear, email, phone) + + +print(my_join(fname="Иван", lname="Иванов", byear=1989, cyear=2020, email="a@a.ru", phone="89000000000")) diff --git a/task-3.py b/task-3.py new file mode 100644 index 0000000..dde8eab --- /dev/null +++ b/task-3.py @@ -0,0 +1,12 @@ +""" +Задание: +Реализовать функцию my_func(), которая принимает три позиционных аргумента, +и возвращает сумму наибольших двух аргументов. +""" + + +def my_func(a, b, c): + return max(max(a,b),c) + + +print(my_func(2, 7, 1)) diff --git a/task-4.py b/task-4.py new file mode 100644 index 0000000..4615ef9 --- /dev/null +++ b/task-4.py @@ -0,0 +1,24 @@ +""" +Задание: +Программа принимает действительное положительное число x и целое отрицательное число y. +Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y). +При решении задания необходимо обойтись без встроенной функции возведения числа в степень. +Подсказка: попробуйте решить задачу двумя способами. Первый — возведение в степень с помощью оператора **. +Второй — более сложная реализация без оператора **, предусматривающая использование цикла. +""" + +import math + +def my_func(x, y): + res = 1 + for i in range(abs(y)): + res *= x + return round(1 / res, 4) + + +x, y = float(input("Введите число x ")), int(input("Введите число y ")) + +if x >= 0 and y < 0: + print("Результат возведение числа x в степень y {}".format(my_func(x, y))) +else: + print("Нарушены вводные данные") diff --git a/task-5.py b/task-5.py new file mode 100644 index 0000000..815ca94 --- /dev/null +++ b/task-5.py @@ -0,0 +1,22 @@ +""" +Задание: +Программа запрашивает у пользователя строку чисел, разделенных пробелом. +При нажатии Enter должна выводиться сумма чисел. Пользователь может продолжить ввод чисел, +разделенных пробелом и снова нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. +Но если вместо числа вводится специальный символ, выполнение программы завершается. +Если специальный символ введен после нескольких чисел, +то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу. +""" + +sum = int(0) + +while True: + input_string = input("Введите строку чисел ") + list1 = input_string.split() + try: + for element in list1: + sum += float(element) + except ValueError: + break + print("Общая сумма равна {}".format(sum)) +print("Общая сумма равна {}".format(sum)) diff --git a/task-6.py b/task-6.py new file mode 100644 index 0000000..e706db5 --- /dev/null +++ b/task-6.py @@ -0,0 +1,27 @@ +""" +Задание: +Реализовать функцию int_func(), принимающую слово из маленьких латинских букв и возвращающую его же, +но с прописной первой буквой. Например, print(int_func(‘text’)) -> Text. +Продолжить работу над заданием. В программу должна попадать строка из слов, разделенных пробелом. +Каждое слово состоит из латинских букв в нижнем регистре. Сделать вывод исходной строки, +но каждое слово должно начинаться с заглавной буквы. Необходимо использовать написанную ранее функцию int_func(). +""" + +# Рекурсивная ф-ция проверки строки +# True если все символы в диапазоне от 96 до 123 +def filter(word): + if not len(word): + return True + if 96 < ord(word[0]) < 123 and filter(word[1:]): + return True + else: + return False + +def int_func(input_string): + output = [] + for word in input_string.split(): + if filter(word): + output.append(word.title()) + return " ".join(output) + +print(int_func("text Text teXt text Text 47sa3 same")) \ No newline at end of file