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
14 changes: 14 additions & 0 deletions lesson_1/task_1_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"""
Задание 1.
Поработайте с переменными, создайте
несколько, выведите на экран.
Запросите у пользователя некоторые числа и
строки и сохраните в переменные,
затем выведитена экран.
"""


name = input('Напиши как тебя зовут?: ')
print(f'Привет {name}')
n = int(input('А сколько тебе лет: '))
print(f'Тебя зовут {name} и тебе {n} лет')
14 changes: 14 additions & 0 deletions lesson_1/task_1_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"""
Задание 2.
Пользователь вводит время в секундах.
Переведите время в часы, минуты,
секунды и выведите в формате чч:мм:сс.
Используйте форматирование строк.
"""


time = int(input("Введите время в секундах: "))
hours = time // 3600
minutes = (time - hours * 3600) // 60
seconds = time - (hours * 3600 + minutes * 60)
print(f"Время в формате чч:мм:сс {hours}:{minutes}:{seconds}")
12 changes: 12 additions & 0 deletions lesson_1/task_1_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
Задание 3.
Узнайте у пользователя число n.
Найдите сумму чисел n + nn + nnn.
Например, пользователь ввёл число 3.
Считаем 3 + 33 + 333 = 369.
"""


n = int(input("Введите число n: "))
summ = (n + int(str(n) + str(n)) + int(str(n) + str(n) + str(n)))
print(f"Сумма чисел n + nn + nnn = {summ}")
19 changes: 19 additions & 0 deletions lesson_1/task_1_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Задание 4.
Пользователь вводит целое положительное
число. Найдите самую большую цифру в числе.
Для решения используйте цикл while и
арифметические операции.
"""


num = int(input('Введите целое число: '))
maxx = 0
list_of_num = [int(i) for i in str(num)]

while list_of_num:
n = list_of_num.pop()
maxx = n if n > maxx else maxx
if maxx == 9:
break
print(f'Максимальная цифра: {maxx}')
19 changes: 19 additions & 0 deletions lesson_1/task_1_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
"""
Задание 5.
Запросите у пользователя значения выручки и издержек фирмы.
Определите, с каким финансовым результатом
работает фирма. Например, прибыль — выручка
больше издержек, или убыток — издержки больше выручки.
Выведите соответствующее сообщение.
"""


v = int(input('Введите выручку компании: '))
cost = int(input('Введите зе издержек компании: '))
profit = v - cost
if profit > 0:
print('Компания прибыльная')
elif profit < 0:
print('Компания убыточная')
else:
print('Компания работает в ноль')
22 changes: 22 additions & 0 deletions lesson_1/task_1_6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
"""
Задание 6.
Если фирма отработала с прибылью, вычислите
рентабельность выручки. Это отношение прибыли
к выручке. Далее запросите численность сотрудников
фирмы и определите прибыль фирмы в
расчёте на одного сотрудника.
"""


v = int(input('Введите выручку компании: '))
cost = int(input('Введите зе издержек компании: '))
profit = v - cost
if profit > 0:
print(f'Компания прибыльная, рентабельность: {profit / v}')
workers = int(input('Введите кол-во сотрудников: '))
print('Прибыль компании в пересчете на '
f'одного сотрудника составляет {profit / workers}')
elif profit < 0:
print(f'Убыток компании: {profit}')
else:
print('Компания работает в ноль')
24 changes: 24 additions & 0 deletions lesson_1/task_1_7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
"""
Задание 7.
Спортсмен занимается ежедневными пробежками.
В первый день его результат составил a километров.
Каждый день спортсмен увеличивал результат на 10%
относительно предыдущего. Требуется определить
номер дня, на который результат спортсмена составит
не менее b километров. Программа должна принимать
значения параметров a и b и выводить одно
натуральное число — номер дня.
"""


a = int(input('Введите зачение а киллометров: '))
b = int(input('Введите зачение b киллометров: '))
distance = a
day = 1
while True:
if distance >= b:
break
else:
distance += distance * 0.1
day += 1
print(f'На {day} день спортсмен достигнет поставленной цели')
12 changes: 12 additions & 0 deletions lesson_2/task_2_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
"""
Задание 1.
Создать список и заполнить его элементами различных типов
данных. Реализовать скрипт проверки типа данных каждого
элемента. Использовать функцию type() для проверки типа.
Элементы списка можно не запрашивать у
пользователя, ауказать явно, в программе.
"""

my_list = [5, 3.5, False, 'слон', (5, 20), [14, 23, 55]]
for el in my_list:
print(el, type(el))
18 changes: 18 additions & 0 deletions lesson_2/task_2_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
"""
Задание 2.
Для списка реализовать обмен значений соседних элементов.
Значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т. д.
При нечётном количестве элементов последний сохранить на своём месте.
Для заполнения списка элементов нужно использовать функцию input().
"""


my_list = [int(i) for i in input('Введите числа через пробел: ').split()]
print(f'Полученный список: {my_list}')
i = 0
while True:
if i >= len(my_list) - 1:
break
my_list[i], my_list[i+1] = my_list[i+1], my_list[i]
i += 2
print(f'Новы список: {my_list}')
20 changes: 20 additions & 0 deletions lesson_2/task_2_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
"""
Задание 3.
Пользователь вводит месяц в виде целого числа от 1 до 12.
Сообщить, к какому времени года относится месяц
(зима, весна, лето, осень). Напишите решения через list и dict.
"""

month_list = ['Зима', 'Зима', 'Весна', 'Весна', 'Весна', 'Лето',
'Лето', 'Лето', 'Осень', 'Осень', 'Осень', 'Зима']
month_dict = {
'Зима': (1, 2, 12),
'Весна': (3, 4, 5),
'Лето': (6, 7, 8),
'Осень': (9, 10, 11)
}
month_n = int(input('Введите номер месяца от 1 до 12: '))
print(f'Время года в списке: {month_list[month_n - 1]}')
for month in month_dict.keys():
if month_n in month_dict[month]:
print(f'Время года в словаре: {month}')
13 changes: 13 additions & 0 deletions lesson_2/task_2_4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Задание 4.
Пользователь вводит строку из нескольких слов, разделённых пробелами.
Вывести каждое слово с новой строки. Строки нужно пронумеровать.
Если слово длинное, выводить только первые 10 букв в слове.
"""


list_words = [str(i) for i in input('Введите слова пробел: ').split()]
i = 1
for word in list_words:
print(f'{i}: {word[0:10]}')
i += 1
14 changes: 14 additions & 0 deletions lesson_2/task_2_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
"""
Задание 5.
Реализовать структуру «Рейтинг», представляющую собой набор
натуральных чисел, который не возрастает.
У пользователя нужно запрашивать новый элемент рейтинга.
Если в рейтинге существуют элементы с одинаковыми значениями, то
новый элемент с тем же значением должен разместиться после них.
"""


my_list = [8, 4, 2, 3, 1]
num = int(input("Введите число: "))
my_list.append(num)
print(sorted(my_list, reverse=True))
40 changes: 40 additions & 0 deletions lesson_2/task_2_6.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
"""
Задание 6.
* Реализовать структуру данных «Товары». Она должна представлять собой
список кортежей. Каждый кортеж хранит информацию об отдельном товаре.
В кортеже должно быть два элемента — номер товара и словарь с параметрами,
то есть характеристиками товара: название, цена, количество, единица измерения
Структуру нужно сформировать программно, запросив все данные у пользователя.
Пример готовой структуры:
"""


item_name = input('Введите название товара: ')
i = 1
items = []
while item_name != '':
item_price = float(input('Введите стоимость товара: '))
item_count = int(input('Введите кол-во товара: '))
item_unit = input('Введите единицу измерения товара: ')
items.append((i, {
'название': item_name,
'цена': item_price,
'количество': item_count,
'ед': item_unit
}))
i += 1
item_name = input('Введите название товара (закончить Enter): ')
analytics = {
'название': set(),
'цена': set(),
'количество': set(),
'ед': set()
}
for item in items:
print(item)
analytics['название'].add(item[1].get('название'))
analytics['цена'].add(item[1].get('цена'))
analytics['количество'].add(item[1].get('количество'))
analytics['ед'].add(item[1].get('ед'))
for item in analytics:
print('Аналитика', item, ':', list(analytics[item]))
23 changes: 23 additions & 0 deletions lesson_3/task_3_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
"""
Задание 1.
Реализовать функцию, принимающую два числа (позиционные аргументы)
и выполняющую их деление. Числа запрашивать у пользователя,
предусмотреть обработку ситуации деления на ноль.
"""


my_a = float(input('Введите число a: '))
my_b = float(input('Введите число b: '))


def my_func(a, b):
try:
c = a / b
return f'{c:.02f}'
except ZeroDivisionError:
return f'{a}/{b}=infinite'
except ValueError:
return 'Неверные значения'


print(my_func(my_a, my_b))
21 changes: 21 additions & 0 deletions lesson_3/task_3_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""
Задание 2.
Выполнить функцию, которая принимает несколько параметров, описывающих данные
пользователя: имя, фамилия, год рождения, город проживания, email, телефон.
Функция должна принимать параметры как именованные аргументы. Осуществить
вывод данных о пользователе одной строкой.
"""


def user_info(**kwargs) -> object:
return ' '.join(kwargs.values())


print(user_info(
first_name=input('Имя: '),
last_name=input('Фамилия: '),
bdate=input('Год рождения: '),
city=input('Город проживания: '),
email=input('Почта: '),
mobile=input("Телефон: ")
))
15 changes: 15 additions & 0 deletions lesson_3/task_3_3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
"""
Задание 3.
Реализовать функцию my_func(), которая принимает три позиционных аргумента
и возвращает сумму наибольших двух аргументов.
"""


def my_func():
a = float(input('Введите число a: '))
b = float(input('Введите число b: '))
c = float(input('Введите число c: '))
return a + b + c - min(a, b, c)


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


def sqrt(x, y):
power = x
for i in range(1, y * -1):
power = power * x
result = 1 / power
return print(f'{x} в степени {y} будет: {result:.2f}')


x = 10
y = -2
sqrt(x, y)
33 changes: 33 additions & 0 deletions lesson_3/task_3_5.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
"""
Задание 5.
Программа запрашивает у пользователя строку чисел, разделённых пробелом.
При нажатии Enter должна выводиться сумма чисел. Пользователь может
продолжить ввод чисел, разделённых пробелом и снова нажать Enter.
Сумма вновь введённых чисел будет добавляться к уже подсчитанной сумме.
Но если вместо числа вводится специальный символ, выполнение программы
завершается. Если специальный символ введён после нескольких чисел, то
вначале нужно добавить сумму этих чисел к полученной ранее сумме и после
этого завершить программу.
"""


summary = 0
is_ok = True


def my_sum(string_nums, start_sum):
"""
Суммирует все числа в строке
и прибавляет к ранее вычисленному результату.
"""
for num in string_nums.split(' '):
try:
start_sum += float(num)
except Exception:
return start_sum, False
return start_sum, True


while is_ok:
summary, is_ok = my_sum(input('Введите числа через пробел: '), summary)
print(summary)
13 changes: 13 additions & 0 deletions lesson_3/task_3_6-7.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
"""
Задание 6.
Реализовать функцию int_func(), принимающую слова из маленьких латинских
букв и возвращающую их же, но с прописной первой буквой.
Например, print(int_func(‘text’)) -> Text.
"""


def int_func(*args):
return ' '.join([word.title() for word in args])


print(int_func('car', 'world', 'sun'))
Loading