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

Готовая домашняя раабота #172

Open
wants to merge 12 commits into
base: master
Choose a base branch
from
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
22 changes: 18 additions & 4 deletions 1_if1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@

Условный оператор: Возраст

* Попросить пользователя ввести возраст при помощи input и положить
* Попросить пользователя ввести возраст при помощи input и положить
результат в переменную
* Написать функцию, которая по возрасту определит, чем должен заниматься пользователь:
* Написать функцию, которая по возрасту определит, чем должен заниматься пользователь:
учиться в детском саду, школе, ВУЗе или работать
* Вызвать функцию, передав ей возраст пользователя и положить результат
* Вызвать функцию, передав ей возраст пользователя и положить результат
работы функции в переменную
* Вывести содержимое переменной на экран

Expand All @@ -19,7 +19,21 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
def check_age(user_age):
if 0 < user_age <7:
return 'Вы должны учиться в детском саду.'
elif 7 <= user_age < 17:
return 'Вы должны учиться в школе.'
elif 17 <= user_age < 22:
return 'Вы должны учиться в ВУЗе.'
elif 22 <= user_age < 65:
return 'Вы должны работать.'
else:
return 'Вы или еще не родились, или уже на пенсии.'
user_age = int(input('Сколько вам полных лет? Введите число.'))
print(check_age(user_age))



if __name__ == "__main__":
main()
24 changes: 20 additions & 4 deletions 2_if2.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@
Условный оператор: Сравнение строк

* Написать функцию, которая принимает на вход две строки
* Проверить, является ли то, что передано функции, строками.
* Проверить, является ли то, что передано функции, строками.
Если нет - вернуть 0
* Если строки одинаковые, вернуть 1
* Если строки разные и первая длиннее, вернуть 2
* Если строки разные и вторая строка 'learn', возвращает 3
* Вызвать функцию несколько раз, передавая ей разные праметры
* Вызвать функцию несколько раз, передавая ей разные параметры
и выводя на экран результаты

"""
Expand All @@ -20,7 +20,23 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass

def check_lines(line1, line2):
if not type(line1) == str or not type(line2) == str:
return 0
elif line1 == line2:
return 1
elif len(line1) > len(line2):
return 2
elif line1 != line2 and line2 == 'learn':
return 3

print(check_lines("Bigwall", "Bigwall")) # 1
print(check_lines("Bigwall", "wallBig")) # None
print(check_lines("learn", "learn")) # 1
print(check_lines("Python", "learn")) # 3
print(check_lines("longerstring", "short")) # 2
print(check_lines(123, "str")) # 0
print(check_lines("str", 123)) # 0

if __name__ == "__main__":
main()
62 changes: 58 additions & 4 deletions 3_for.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@

Цикл for: Продажи товаров

* Дан список словарей с данными по колличеству проданных телефонов
* Дан список словарей с данными по количеству проданных телефонов
[
{'product': 'iPhone 12', 'items_sold': [363, 500, 224, 358, 480, 476, 470, 216, 270, 388, 312, 186]},
{'product': 'iPhone 12', 'items_sold': [363, 500, 224, 358, 480, 476, 470, 216, 270, 388, 312, 186]},
{'product': 'Xiaomi Mi11', 'items_sold': [317, 267, 290, 431, 211, 354, 276, 526, 141, 453, 510, 316]},
{'product': 'Samsung Galaxy 21', 'items_sold': [343, 390, 238, 437, 214, 494, 441, 518, 212, 288, 272, 247]},
]
Expand All @@ -21,7 +21,61 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass


sales_data_base = [
{'product': 'iPhone 12', 'items_sold': [363, 500, 224, 358, 480, 476, 470, 216, 270, 388, 312, 186]},
{'product': 'Xiaomi Mi11', 'items_sold': [317, 267, 290, 431, 211, 354, 276, 526, 141, 453, 510, 316]},
{'product': 'Samsung Galaxy 21', 'items_sold': [343, 390, 238, 437, 214, 494, 441, 518, 212, 288, 272, 247]},
]
def total_sales(product_sold): #Функция суммирует продажи по продукту
item_sold_sum = 0
for sale in product_sold:
item_sold_sum += sale
return item_sold_sum
def sales_avg(product_sold): #Функция суммирует средние продажи по продукту
total = 0
for sale in product_sold:
total += sale
return total / len(product_sold)

def total_sales_all (all_products): #Функция суммирует суммы продаж по продукту
total_sum = 0
for item in all_products:
total_sum += total_sales(item['items_sold'])
return total_sum
def total_sales_avg (all_products): #Функция считает средние продажи по базе
total_sum = 0
total_items = 0
for item in all_products:
total_sum += sum(item['items_sold'])
total_items += len(item['items_sold'])
return total_sum / total_items



# Cуммарноe количества продаж для каждого продукта
for item in sales_data_base:
product = item['product'] # Название товара
sales = item['items_sold'] # Список продаж
total = total_sales(sales) # Вызов функции с передачей списка продаж
print(f"Суммарное количество продаж для {product}: {total}")


#Cреднее количество продаж для каждого продукта
for item in sales_data_base:
product = item['product']
sales = item['items_sold']
avg = round(sales_avg(sales), 2)
print(f"Среднее количество продаж для {product}: {avg}")

#Cуммарное количество продаж всех товаров
total_sales = total_sales_all(sales_data_base)
print(f'Общие продажи составляют {total_sales}')

#Среднее количество продаж всех товаров
total_sales_average = total_sales_avg(sales_data_base)
print(f'Средние продажи по всей базе товаров составляют {total_sales_average}')


if __name__ == "__main__":
main()
14 changes: 10 additions & 4 deletions 4_while1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,24 @@

Цикл while: hello_user

* Напишите функцию hello_user(), которая с помощью функции input() спрашивает
* Напишите функцию hello_user(), которая с помощью функции input() спрашивает
пользователя “Как дела?”, пока он не ответит “Хорошо”

"""


def hello_user():
"""
Замените pass на ваш код
"""
pass
while True:
user_say = input('Как дела?')
if user_say == 'Хорошо':
print('Ничего хорошего!')
break
else:
print('Попробуем ещё раз?'.format(user_say))



if __name__ == "__main__":
hello_user()
19 changes: 13 additions & 6 deletions 5_while2.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,16 +12,23 @@

Пользователь: Что делаешь?
Программа: Программирую

"""

questions_and_answers = {}
"""

dic = {"Как дела?": "Хорошо!", "Что делаешь?": "Программирую", "Трудно?": "Очень!"}
def ask_user(answers_dict):
"""
Замените pass на ваш код
"""
pass


while True:
user_question = input("Пользователь:")
if user_question in dic:
print(f'Программа: {dic[user_question]}')
else:
print("Что за странные вопросы? У меня нет ответа.")
break
ask_user()
if __name__ == "__main__":
ask_user(questions_and_answers)
ask_user(dic)

20 changes: 15 additions & 5 deletions 6_exception1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,27 @@

Исключения: KeyboardInterrupt

* Перепишите функцию hello_user() из задания while1, чтобы она
перехватывала KeyboardInterrupt, писала пользователю "Пока!"
* Перепишите функцию hello_user() из задания while1, чтобы она
перехватывала KeyboardInterrupt, писала пользователю "Пока!"
и завершала работу при помощи оператора break

"""

def hello_user():
"""
Замените pass на ваш код
"""
pass

try:
while True:
user_say = input('Как дела?')
if user_say == 'Хорошо':
print('Ничего хорошего!')
break
else:
print('Попробуем ещё раз?'.format(user_say))
except KeyboardInterrupt:
print("Исполнение программы остановлено пользователем")


if __name__ == "__main__":
hello_user()
61 changes: 47 additions & 14 deletions 7_exception2.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,52 @@
* Первые два нужно приводить к вещественному числу при помощи float(),
а третий - к целому при помощи int() и перехватывать исключения
ValueError и TypeError, если приведение типов не сработало.

"""
stock = [
{'name': 'iPhone 12', 'stock': 24, 'price': 65432,
'discount': 25},
{'name': 'Samsung Galaxy S21', 'stock': 8, 'price': 50000,
'discount': 10},
{'name': '', 'stock': 18, 'price': 10000,
'discount': 10}
]

def discounted(price, discount, max_discount=20, phone_name=''):
try:
price = float(price)
discount = float(discount)
max_discount = int(max_discount)
except(ValueError, TypeError):
print('Ошибка в типе аргумента')
return None


price = abs(price)
discount = abs(discount)
max_discount = abs(max_discount)
if max_discount >= 100:
raise ValueError('Максимальная скидка не должна быть больше 100')
if discount >= max_discount:
return price
elif 'iphone' in phone_name.lower() or not phone_name:
return price
else:
return price - (price * discount / 100)

for phone in stock:
price_final = discounted(phone['price'], phone['discount'], phone_name=phone('name'))
if price_final is not None:
phone['price_final'] = price_final
else:
print('Ошибка в расчетах')

print(discounted(100, 2))
print(discounted(100, "3"))
print(discounted("100", "4.5"))
print(discounted("five", 5))
print(discounted("сто", "десять"))
print(discounted(100.0, 5, "10"))



def discounted(price, discount, max_discount=20)
"""
Замените pass на ваш код
"""
pass

if __name__ == "__main__":
print(discounted(100, 2))
print(discounted(100, "3"))
print(discounted("100", "4.5"))
print(discounted("five", 5))
print(discounted("сто", "десять"))
print(discounted(100.0, 5, "10"))
Loading