dz less03

This commit is contained in:
denis-on 2022-02-26 12:19:47 +03:00
parent d7cbcbfb2c
commit 3e515756ea
6 changed files with 149 additions and 0 deletions

26
less-03/task-01.py Normal file
View File

@ -0,0 +1,26 @@
# Реализовать функцию, принимающую два числа (позиционные аргументы) и выполняющую их деление.
# Числа запрашивать у пользователя, предусмотреть обработку ситуации деления на ноль.
def inputIntNum(message):
n=0
while True:
try:
n = float(input(message + ' '))
except ValueError:
print('Это не число или используйте "." для разделения разрядов, попробуйте снова.')
continue
else:
break
return n
def my_div(a,b):
c=None
try:
c = a/b
except ZeroDivisionError:
print('Деление на ноль')
return c
print('Введите 2 числа, опробуем диление a/b')
print(f"Результат деление a/b = { my_div(inputIntNum('Число а?'), inputIntNum('Число b?')) }")

9
less-03/task-02.py Normal file
View File

@ -0,0 +1,9 @@
# Выполнить функцию, которая принимает несколько параметров, описывающих данные
# пользователя: имя, фамилия, год рождения, город проживания, email, телефон.
# Функция должна принимать параметры как именованные аргументы.
# Осуществить вывод данных о пользователе одной строкой.
def my_f(first_n, last_n, year, city, email, tel):
print(f'Резудьтат поиска: {last_n} {first_n}, {year}г.р., проживает в {city}, телефон: {tel}, е-маил: {email}')
my_f(first_n='Иван', last_n='Иванов', year='2000', city='Городище', email='ii@company.com', tel='+17612345654')

9
less-03/task-03.py Normal file
View File

@ -0,0 +1,9 @@
# Реализовать функцию my_func(), которая принимает три позиционных
# аргумента и возвращает сумму наибольших двух аргументов.
def my_func(first, second, third):
r = [first, second, third]
r.remove(min(r))
return sum(r)
print('сумма =',my_func(2, 2, 33))

46
less-03/task-04.py Normal file
View File

@ -0,0 +1,46 @@
# Программа принимает действительное положительное число x и целое отрицательное число y.
# Выполните возведение числа x в степень y. Задание реализуйте в виде функции my_func(x, y).
# При решении задания нужно обойтись без встроенной функции возведения числа в степень.
def my_func_v1(x,y):
if y == 0 : return 1
elif y > 0:
return x**y
else:
y = -y
return 1/x**y
def my_func_v2(x,y):
degr=1
if y == 0:
return degr
elif y > 0:
while y>=1:
degr *= x
y = y-1
return degr
else:
y = -y
while y>=1:
degr *= x
y = y-1
return 1/degr
def inputIntNum(message):
n=0
while True:
try:
n = int(input(message + ' '))
except ValueError:
print('Это не число, попробуйте снова.')
continue
else:
break
return n
print('Решение задачи X в степени Y')
x = inputIntNum('X=')
y = inputIntNum('Y=')
print('Возведение в степень с помощью оператора **', my_func_v1(x,y))
print('без оператора **, с использованием цикла', my_func_v2(x,y))

33
less-03/task-05.py Normal file
View File

@ -0,0 +1,33 @@
# 5. Программа запрашивает у пользователя строку чисел, разделённых пробелом.
# При нажатии Enter должна выводиться сумма чисел.
# Пользователь может продолжить ввод чисел, разделённых пробелом и снова нажать Enter.
# Сумма вновь введённых чисел будет добавляться к уже подсчитанной сумме.
# Но если вместо числа вводится специальный символ, выполнение программы завершается.
# Если специальный символ введён после нескольких чисел, то вначале нужно добавить сумму
# этих чисел к полученной ранее сумме и после этого завершить программу.
def my_func():
summ = 0
cont_flag = True
while cont_flag:
res = 0
str = input("Ведите несколько чисел через пробел, для завершения используйте 'q'")
list_num = str.split()
for el in list_num:
try:
n = int(el)
except ValueError:
if el.lower() == 'q':
summ += res
print(f'Сумма введенных чисел {res}, общая сумма {summ}')
return summ
print(f'{el} - не число')
continue
else:
res += n
continue
summ += res
print(f'Сумма введенных чисел {res}, общая сумма {summ}')
my_func()
print('END')

26
less-03/task-06-07.py Normal file
View File

@ -0,0 +1,26 @@
# Реализовать функцию int_func(), принимающую слова из маленьких латинских букв и возвращающую
# их же, но с прописной первой буквой. Например, print(int_func(text)) -> Text.
# Каждое слово состоит из латинских букв в нижнем регистре
def my_title(word):
return word[0].upper()+word[1:]
def isANSi_lower_alpha(word):
if not word.isascii() or not word.isalpha() or not word.islower():
return 0
return 1
def int_func(str):
word_list = str.split()
for i, word in enumerate(word_list):
if isANSi_lower_alpha(word):
word_list[i] = my_title(word)
else:
word_list[i] = 'error_word'
return ' '.join(word_list)
test_str = 'The quick brown fox jumps over the lazy dog. кот'
print(test_str)
print(int_func(test_str))