Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homework07 #1793

Open
wants to merge 11 commits into
base: master
Choose a base branch
from
23 changes: 10 additions & 13 deletions Урок 1. Практическое задание/task_1.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,10 @@
"""
Задание 1.

Поработайте с переменными, создайте несколько,
выведите на экран, запросите у пользователя несколько чисел и
строк и сохраните в переменные, выведите на экран.

Пример:
Ведите ваше имя: Василий
Ведите ваш пароль: vas
Введите ваш возраст: 45
Ваши данные для входа в аккаунт: имя - Василий, пароль - vas, возраст - 45
"""
a = 1
b = "Кто ты воин?"
c = "Ахилес"
d = int(input("Введите число из сообщения: "))
e = input("Введите ваши пожелалания: ")
print(a)
print(b)
print(c)
print(d)
print(e)
16 changes: 6 additions & 10 deletions Урок 1. Практическое задание/task_2.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,7 @@
"""
Задание 2.
seconds = int(input("Введите число в секундах: "))
hours = seconds // 3600
seconds = seconds - hours * 3600
minutes = seconds // 60
seconds = seconds - minutes * 60

Пользователь вводит время в секундах.
Переведите время в часы, минуты и секунды и выведите в формате чч:мм:сс.
Используйте форматирование строк.

Пример:
Введите время в секундах: 3600
Время в формате ч:м:с - 1.0 : 60.0 : 3600
"""
print(f'Time: {hours:02}:{minutes:02}:{seconds:02}')
13 changes: 3 additions & 10 deletions Урок 1. Практическое задание/task_3.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
"""
Задание 3.

Узнайте у пользователя целое положительное число n.
Найдите сумму чисел n + nn + nnn.

Пример:
Введите число n: 3
n + nn + nnn = 369
"""
a = input("Введите число: ")
b = int(a) + int(a + a) + int(a + a + a)
print(b)
32 changes: 11 additions & 21 deletions Урок 1. Практическое задание/task_6.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
"""
Задание 6.

Спортсмен занимается ежедневными пробежками.
В первый день его результат составил a километров.
Каждый день спортсмен увеличивал результат на 10 % относительно предыдущего.
Требуется определить номер дня,
на который результат спортсмена составит не менее b километров.
Программа должна принимать значения параметров a и b
и выводить одно натуральное число — номер дня.

Например: a = 2, b = 3.
Результат:
1-й день: 2
2-й день: 2,2
3-й день: 2,42
4-й день: 2,66
5-й день: 2,93
6-й день: 3,22
Ответ: на 6-й день спортсмен достиг результата — не менее 3 км.
"""
n1 = int(input())
n2 = int(input())
k = 1
while True:
n1 *= 1.1
k += 1
if n1 >= n2:
print(k)
break
else:
continue
22 changes: 5 additions & 17 deletions Урок 2. Практическое задание/task_1.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,5 @@
"""
Задание 1. Создать список и заполнить его элементами различных типов данных.
Реализовать проверку типа данных каждого элемента.
Использовать функцию type() для проверки типа.
Элементы списка можно не запрашивать у пользователя,
а указать явно, в программе.

Пример:
для списка [5, "string", 0.15, True, None]
результат

<class 'int'>
<class 'str'>
<class 'float'>
<class 'bool'>
<class 'NoneType'>
"""
list01 = [1, 1,35,'string', [1,2,3], (1,2,3), {1,2,3}, {1: 1, 2: 2}, True, None]
print ('press any key: ', end='')
for i in list01:
input('')
print (f'"{i}" is: {type(i)}', end='')
22 changes: 11 additions & 11 deletions Урок 2. Практическое задание/task_2.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
"""
Задание 2. Для списка реализовать обмен значений соседних элементов,
т.е. значениями обмениваются элементы с индексами 0 и 1, 2 и 3 и т.д.
При нечетном количестве элементов последний сохранить на своем месте.
Для заполнения списка элементов необходимо использовать функцию input().
input_line = input("Enter elements separated by spaces: ")
list1 = input_line.split(' ')
print('Original list: ', list1)

Пример:
Введите целые числа через пробел: 1 2 3 4
Результат: 2 1 4 3
for i in range(1, len(list1), 2):
input('')
print(f'i == {i}')
print(f'Swapping elements "{list1[i - 1]}" and "{list1[i]}"')

Введите целые числа через пробел: 1 2 3
Результат: 2 1 3
"""
list1[i-1], list1[i] = list1[i], list1[i-1]

input('')
print('New list: ', list1)
23 changes: 14 additions & 9 deletions Урок 2. Практическое задание/task_3.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
"""
3. Пользователь вводит месяц в виде целого числа от 1 до 12.
Сообщить к какому времени года относится месяц (зима, весна, лето, осень).
Напишите два варианта решения: через list и через dict.
seasons = {'Зима': [12, 1, 2],
'Весна': [3, 4, 5],
'Лето': [6, 7, 8],
'Осень': [9, 10, 11]}

Пример:
Введите номер месяца: 10
Результат через список: Осень
Результат через словарь: Осень
"""
number = int(input('Введите номер месяца: '))

if number in seasons['Зима']:
print('Это Зима')
if number in seasons['Весна']:
print('Это Весна')
if number in seasons['Лето']:
print('Это Лето')
if number in seasons['Осень']:
print('Это Осень')
20 changes: 5 additions & 15 deletions Урок 2. Практическое задание/task_4.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,6 @@
"""
4. Пользователь вводит строку из нескольких слов,
разделённых пробелами. Вывести каждое слово с новой строки.
Строки необходимо пронумеровать. Если слово длинное,
выводить только первые 10 букв в слове.
input_line = input("Введите слова разделенные пробелом: ")
list01 = input_line.split(' ')
print('my_list ==', list01)

Пример:
Введите слова через пробел: раз два три
1. раз
2. два
3. три

Введите слова через пробел: раз перерефрижерированность
1. раз
2. перерефриж
"""
for index, list01_line in enumerate(list01):
print(index, list01_line[:10])
30 changes: 16 additions & 14 deletions Урок 2. Практическое задание/task_5.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,19 @@
"""
5. Реализовать структуру «Рейтинг», представляющую собой не
возрастающий набор натуральных чисел
(каждый элемент ряда меньше или равен предыдущему).
list01 = [7, 9, 1, 3, 6, 2, 5]
print('Original list: ', list01)
number = int(input('Enter number: '))

У пользователя необходимо запрашивать новый элемент рейтинга.
Если в рейтинге существуют элементы с одинаковыми значениями,
то новый элемент с тем же значением должен разместиться после них.
if number <= list01[-1]:
print(f'{number} <= {list01[-1]}')
list01.append(number)

Подсказка. Например, набор натуральных чисел: 7, 5, 3, 3, 2.
Пользователь ввел число 3. Результат: 7, 5, 3, 3, 3, 2.
Пользователь ввел число 8. Результат: 8, 7, 5, 3, 3, 2.
Пользователь ввел число 1. Результат: 7, 5, 3, 3, 2, 1.

Набор натуральных чисел можно задать непосредственно в коде,
например, my_list = [7, 5, 3, 3, 2].
"""
else:
for i in range(len(list01)):
input('')
print(f'i == {i}, list01[i] == {list01[i]}')
if number > list01[i]:
print(f'{number} > {list01[i]}')
list01.insert(i, number)
break

print('New list: ', list01)
25 changes: 0 additions & 25 deletions Урок 2. Практическое задание/task_6.py
Original file line number Diff line number Diff line change
@@ -1,27 +1,2 @@
"""
6. *Реализовать структуру данных «Товары». Она должна представлять собой список кортежей.
Каждый кортеж хранит информацию об отдельном товаре.
В кортеже должно быть два элемента — номер товара и словарь с параметрами
(характеристиками товара: название, цена, количество, единица измерения).
Структуру нужно сформировать программно, т.е. запрашивать все данные у пользователя.

Пример готовой структуры:
[
(1, {“название”: “компьютер”, “цена”: 20000, “количество”: 5, “eд”: “шт.”}),
(2, {“название”: “принтер”, “цена”: 6000, “количество”: 2, “eд”: “шт.”}),
(3, {“название”: “сканер”, “цена”: 2000, “количество”: 7, “eд”: “шт.”})
]

Далее необходимо собрать аналитику о товарах. Реализовать словарь,
в котором каждый ключ — характеристика товара, например название,
а значение — список значений-характеристик, например список названий товаров.

Пример:

{
“названия”: [“компьютер”, “принтер”, “сканер”],
“цены”: [20000, 6000, 2000],
“количества”: [5, 2, 7],
“ед”: [“шт.”]
}
"""
25 changes: 10 additions & 15 deletions Урок 3. Практическое задание/task_1.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
"""
1. Реализовать функцию, принимающую два числа (позиционные аргументы)
и выполняющую их деление. Числа запрашивать у пользователя,
предусмотреть обработку ситуации деления на ноль (try except).
def division(a, b):
try:
c = a / b
return c
except:
return 'Incorrect data'

Пример:
Введите первое число: 10
Введите второе число: 0
Вы что? Пытаетесь делить на 0!

Process finished with exit code 0

Пример:
Введите первое число: 10
Введите второе число: 10
1.0
a = int(input('Input "a": '))
b = int(input('Input "b": '))
result = division(a, b)

Process finished with exit code 0
"""
print('Result:', result)
16 changes: 7 additions & 9 deletions Урок 3. Практическое задание/task_2.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
"""
2. Реализовать функцию, принимающую несколько параметров,
описывающих данные пользователя: имя, фамилия, год рождения, город проживания, email, телефон.
Функция должна принимать параметры как именованные аргументы.
Реализовать вывод данных о пользователе одной строкой.
def user_data_to_string(name, surname, year, city, email, phone):
return ', '.join([name, surname, year, city, email, phone])

Пример:
Иван Иванов 1846 года рождения, проживает в городе Москва,
email: [email protected], телефон: 01005321456
"""

result = user_data_to_string(name='Artur', surname='Morozov', year='1988',
city='Kazan', email='[email protected]', phone='89274253820')

print(result)
22 changes: 15 additions & 7 deletions Урок 3. Практическое задание/task_3.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
"""
3. Реализовать функцию my_func(), которая принимает три позиционных аргумента,
и возвращает сумму наибольших двух аргументов.
Попробуйте решить задачу двумя способами:
1) используя функцию sort()
2) без функции sort()
"""
def my_func(a, b, c):
if a <= b and a <= c:
return b + c
elif b <= c:
return a + c
else:
return a + b


a = int(input('Input "a": '))
b = int(input('Input "b": '))
c = int(input('Input "c": '))

my_sum = my_func(a, b, c)
print('Max sum', my_sum)
17 changes: 10 additions & 7 deletions Урок 3. Практическое задание/task_4.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
"""
4. Программа принимает действительное положительное число x и целое отрицательное число y. Необходимо
выполнить возведение числа x в степень y. Задание необходимо реализовать в виде функции my_func(x, y).
При решении задания необходимо обойтись без встроенной функции возведения числа в степень!
ВНИМАНИЕ: использование встроенной функции = задание не принято
Постараться придумать свой алгоритм без **
"""
def my_pow(x, y):
return 1 / (x ** abs(y))


x = int(input('Input "x": '))
y = int(input('Input "y": '))


result_my_pow = my_pow(x, y)
print('Result:', result_my_pow)
26 changes: 18 additions & 8 deletions Урок 3. Практическое задание/task_5.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,18 @@
"""
5. Программа запрашивает у пользователя строку чисел, разделенных пробелом. При нажатии Enter должна
выводиться сумма чисел. Пользователь может продолжить ввод чисел, разделенных пробелом и снова
нажать Enter. Сумма вновь введенных чисел будет добавляться к уже подсчитанной сумме. Но если
вместо числа вводится специальный символ, выполнение программы завершается. Если специальный
символ введен после нескольких чисел, то вначале нужно добавить сумму этих чисел к полученной
ранее сумме и после этого завершить программу.
"""
def my_sum(line):
global exit_flag
list01 = line.split()
if list01[-1] == 'Q':
exit_flag = 1
del list01[-1]
list01 = map(int, list01)
return sum(list01)


exit_flag = 0
result = 0


while exit_flag == 0:
line = input('Input numbers or input Q for exit: ')
result = result + my_sum(line)
print('Result:', result)
11 changes: 4 additions & 7 deletions Урок 4. Практическое задание/task_1.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,5 @@
"""
1. Реализовать скрипт, в котором должна быть предусмотрена функция
расчета заработной платы сотрудника. В расчете необходимо использовать формулу:
(выработка в часах*ставка в час) + премия.
from sys import argv

Для выполнения расчета для конкретных значений
необходимо запускать скрипт с параметрами.
"""
file_name, hours, salary, bonus = argv

print(float(hours) * float(salary) + float(bonus))
Loading