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

add solution 1_if1; fix after review 2_if2; add solution 3_for #163

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 3 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
25 changes: 21 additions & 4 deletions 1_if1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,22 +4,39 @@

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

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

"""


def define_activity(user_age: int):
if user_age > 0 and user_age < 7:
print('В этом возрасте вы можете учиться в детском саду.')
elif user_age >= 7 and user_age < 18:
print('В этом возрасте вы можете учиться в школе.')
elif user_age >= 18 and user_age < 100:
print('В этом возрасте вы можете учиться в ВУЗе или работать.')


def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
print('Напишите пожалуйста свой возраст')
user_age = int(input())
if user_age > 0 and user_age < 100:
activity = define_activity(user_age)
return activity
else:
raise ValueError('неправильный возраст')


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,22 +5,38 @@
Условный оператор: Сравнение строк

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

"""


def check_two_strings(first_string: str, second_string: str) -> int:
if type(first_string) != str or type(second_string) != str:
return 0
if first_string == second_string:
return 1
if len(first_string) > len(second_string):
return 2
if first_string != second_string and second_string == 'learn':
return 3


def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass

print(check_two_strings('s', 5))
print(check_two_strings('s', 's'))
print(check_two_strings('spk', 's'))
print(check_two_strings('s', 'learn'))


if __name__ == "__main__":
main()
40 changes: 37 additions & 3 deletions 3_for.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

* Дан список словарей с данными по колличеству проданных телефонов
[
{'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 @@ -16,12 +16,46 @@
* Посчитать и вывести среднее количество продаж всех товаров
"""

product_list = [
{'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 count_sold_items(items_sold: list) -> int:
count_items = 0
for item in items_sold:
count_items += item
return count_items


def main():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass

for product in product_list:
count_sold_products = count_sold_items(product['items_sold'])
print(f" Модель {product['product']} продано: {count_sold_products}")
print()

all_count_sold_items = 0
for product in product_list:
count_sold_products = count_sold_items(product['items_sold'])
all_count_sold_items += count_sold_products
print(
f" Модель {product['product']} среднее кол-во продаж: "
f"{round(count_sold_products / len(product['items_sold']))}"
)

for product in product_list:
count_sold_products = count_sold_items(product['items_sold'])
all_count_sold_items += count_sold_products
print()
print(f"Общее количество проданных товаров: {all_count_sold_items}")
print(f"Среднее кол-во продаж всех товаров: {round(all_count_sold_items / len(product_list))}")


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

Цикл while: hello_user

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

"""



def hello_user():
"""
Замените pass на ваш код
"""
pass
while True:
user_answer = input('Как дела?\n')
if user_answer == 'Хорошо':
break



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

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

"""

questions_and_answers = {}
questions_and_answers = {
"Ты кто?": "Программа",
"Как дела": "Хорошо!",
"Что делаешь?": "Программирую",
"Сколько тебе лет?": "Достаточно",
"Твой любимый цвет?": "Не различаю цвета",
}


def ask_user(answers_dict: dict):
while True:
question = input('Задайте вопрос (для выхода напишите q)\n')
if question in answers_dict:
print(answers_dict[question])
elif question == 'q':
break


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

if __name__ == "__main__":
ask_user(questions_and_answers)
20 changes: 12 additions & 8 deletions 6_exception1.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,17 +4,21 @@

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

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

"""


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

while True:
try:
input('Как дела?\n')
except KeyboardInterrupt:
print('\nПока')
break


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

"""

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


def discounted(price, discount, max_discount=20):
try:
price = abs(float(price))
discount = abs(float(discount))
max_discount = abs(int(discount))

if max_discount >= 100:
raise ValueError('Слишком большая максимальная скидка')
if discount >= max_discount:
return price
else:
return price - (price * discount / 100)
except (TypeError, ValueError):
print('Ошибка типа данных аргумента')


if __name__ == "__main__":
print(discounted(100, 2))
print(discounted(100, "3"))
Expand Down