Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions homeworks/les03/task01.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
"""
1. Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление.
Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль.
"""


def input_float():
""" Запрашивает число у пользователя """
buf = input('Введите число : ')
try:
return float(buf)
except ValueError:
print('Ошибка ввода. ')


def ai_divide(a, b):
""" Принимает два числа, возвращает результат деления """
# todo описание функции
try:
return a / b
except ZeroDivisionError:
return float('inf')


a = input_float()
b = input_float()
print('Результат : ', ai_divide(a, b))
16 changes: 16 additions & 0 deletions homeworks/les03/task02.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
"""
2. Реализовать функцию, принимающую несколько параметров,
описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон.
Функция должна принимать параметры как именованные аргументы.
Реализовать вывод данных о пользователе одной строкой.

"""


def client_to_string(name, last_name, year_of_birth, email, phone):
""" Принимает данные клиента, печатает в строку"""
print(f'{name} {last_name}, {year_of_birth} года рождения, контакты: {email}, {phone}')


client_to_string(name='Николай', last_name='Иронов', year_of_birth=2019, email='ironov@artlebedev.ru',
phone='+7 495 926-18-00')
19 changes: 19 additions & 0 deletions homeworks/les03/task03.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
3. Реализовать функцию my_func(),
которая принимает три позиционных аргумента, и возвращает сумму наибольших двух аргументов.
"""


def my_func(a, b, c):
""" Принимает три числа, возвращает сумму наибольших двух аргументов """
if a > c and b > c:
return a + b
elif b > a and c > a:
return b + c
else:
return a + c


print(my_func(1, 2, 3))
print(my_func(1, 2, 3))
print(my_func(1, 3, 2))
45 changes: 45 additions & 0 deletions homeworks/les03/task04.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
"""
4. Программа принимает действительное положительное число x и целое отрицательное число y.
Необходимо выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y).
При решении задания необходимо обойтись без встроенной функции возведения числа в степень.

Подсказка: попробуйте решить задачу двумя способами.
Первый — возведение в степень с помощью оператора **.
Второй — более сложная реализация без оператора **, предусматривающая использование цикла.
"""


def input_float(invite='Введите число : '):
buf = input(invite)
try:
return float(buf)
except ValueError:
print('Ошибка ввода. ')


def input_int(invite='Введите число : '):
buf = input(invite)
try:
return int(buf)
except ValueError:
print('Ошибка ввода. ')


def reverse_expo(x, neg_exp):
""" Вычисляет отцательную степень числа """
multi = x
for _ in my_range(1, abs(neg_exp) - 1):
multi *= x
return 1 / multi


def my_range(start, end):
""" Реализация простого варианта функции range"""
while start <= end:
yield start
start += 1


x = input_float('Введите действительное положительное число : ')
neg_exp = input_int('Введите целое отрицательное число : ')
print('Результат', reverse_expo(x, neg_exp))
24 changes: 24 additions & 0 deletions homeworks/les03/task05.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""
5. Программа запрашивает у пользователя строку чисел, разделенных пробелом.
При нажатии Enter должна выводиться сумма чисел.
Пользователь может продолжить ввод чисел, разделенных пробелом и снова нажать Enter.
Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме.
Но если вместо числа вводится специальный символ, выполнение программы завершается.
Если специальный символ введен после нескольких чисел,
то вначале нужно добавить сумму этих чисел к полученной ранее сумме и после этого завершить программу.

"""
sym_stop = 'q' # символ остановки
is_doing = True # флаг продолжения расчетов
summa = 0 # сумма
while is_doing:
buf = input("Введите числа через пробел: ")
if buf[0] == sym_stop: # первый символ стоп
break
tokens = buf.split()
for word in tokens:
if word == sym_stop: # проверяется наличие символа вместо числа
is_doing = False
break
summa += float(word)
print('Сумма : ', summa)
25 changes: 25 additions & 0 deletions homeworks/les03/task06.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""
6. Реализовать функцию int_func(),
принимающую слово из маленьких латинских букв и возвращающую его же, но с прописной первой буквой.
Например, print(int_func(‘text’)) -> Text.
Продолжить работу над заданием.
В программу должна попадать строка из слов, разделенных пробелом.
Каждое слово состоит из латинских букв в нижнем регистре.
Сделать вывод исходной строки, но каждое слово должно начинаться с заглавной буквы.
Необходимо использовать написанную ранее функцию int_func().
"""


def int_func(text):
""" Делаеет первую букву прописной """
return text[0].upper() + text[1:]


buf = input("Введите слова через пробел: ")
tokens = buf.split() # преобразование в список
idx = 0
buf = ''
while idx < len(tokens):
buf += int_func(tokens[idx]) + ' ' # преобразование в строку
idx += 1
print(buf)