diff --git a/1_if1.py b/1_if1.py index be736084..904bddbc 100644 --- a/1_if1.py +++ b/1_if1.py @@ -14,12 +14,28 @@ """ -def main(): - """ +def get_activity(age): + if age >= 2 and age < 7: + return "Детский сад" + elif age >=7 and age < 18: + return "Школа" + elif age >=18 and age < 23: + return "вуз" + elif age >=23 and age < 60: + return "Работа" + else: + return "Старый или малый)" + +age_in = input("Введите ваш возраст: ") +age = int(age_in) +activity = get_activity(age) +print(f"Ваше занятие по возрасту {activity}") +input () +""" Эта функция вызывается автоматически при запуске скрипта в консоли В ней надо заменить pass на ваш код """ - pass + # pass -if __name__ == "__main__": - main() +#if __name__ == "__main__": + # main() diff --git a/2_if2.py b/2_if2.py index 0f1644f3..82f4e5b3 100644 --- a/2_if2.py +++ b/2_if2.py @@ -15,12 +15,28 @@ """ -def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass +def main(str1,str2): + if not isinstance(str1, str) or not isinstance(str2, str): + return 0 + if str1 == str2: + return 1 + if len(str1) > len(str2): + return 2 + if str1 != str2 and str2 == "learn": + return 3 + +print(main ("text","123")) +print(main("text","text")) +print(main("texttexttext", "text")) +print(main("text","learn")) + +input() + + # """ + # Эта функция вызывается автоматически при запуске скрипта в консоли + # В ней надо заменить pass на ваш код + # """ +# pass -if __name__ == "__main__": - main() +#if __name__ == "__main__": + # main() diff --git a/3_for.py b/3_for.py index 5ca9f504..5e1ffa95 100644 --- a/3_for.py +++ b/3_for.py @@ -5,7 +5,7 @@ Цикл for: Продажи товаров * Дан список словарей с данными по колличеству проданных телефонов - [ + [ {'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]}, @@ -15,13 +15,37 @@ * Посчитать и вывести суммарное количество продаж всех товаров * Посчитать и вывести среднее количество продаж всех товаров """ +data = [ + {'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 main(data): + all_sales = 0 + all_products = len(data) + for phone in data: + product = phone['product'] + sales = phone['items_sold'] + total_sales = sum(sales) + avg_sales = round(total_sales / len(sales), 2) + + print(f'телефон: {product} суммарное колиичество продаж: {total_sales}, среднее количество продаж: {avg_sales}') + + all_sales += total_sales + + avg_all_sales = round(all_sales / all_products, 2) + print(f'суммарное количество продаж {all_sales}') + print(f'среднее количество продаж {avg_all_sales}') + +main(data) -def main(): - """ - Эта функция вызывается автоматически при запуске скрипта в консоли - В ней надо заменить pass на ваш код - """ - pass +input() + + #""" + #Эта функция вызывается автоматически при запуске скрипта в консоли + #В ней надо заменить pass на ваш код + #""" + #pass -if __name__ == "__main__": - main() +#if __name__ == "__main__": + #main() diff --git a/4_while1.py b/4_while1.py index b5791517..1b1b9128 100644 --- a/4_while1.py +++ b/4_while1.py @@ -11,11 +11,17 @@ def hello_user(): - """ - Замените pass на ваш код - """ - pass +# """ +# Замените pass на ваш код +# """ + while True: + how_are_you = input('Как дела? ') + if how_are_you == ('хорошо'): + break + else: + print('Как дела? ') +hello_user() - -if __name__ == "__main__": - hello_user() +input() +#if __name__ == "__main__": +# hello_user() diff --git a/5_while2.py b/5_while2.py index 49012dfd..a1bede6b 100644 --- a/5_while2.py +++ b/5_while2.py @@ -15,13 +15,34 @@ """ -questions_and_answers = {} +questions_and_answers = { + "как дела?": "хорошо", + "Чем занимаешься?": "Программирую", + "Как тебя зовут?": "Оля", + "Сколько тебе лет?": "38", + "Ты умеешь программировать?": "нет, но хочу научиться", + "какой язык ты изучаешь?": "python" + } -def ask_user(answers_dict): +def ask_user(): """ Замените pass на ваш код """ - pass -if __name__ == "__main__": - ask_user(questions_and_answers) + question = input('Введите вопрос: ') + answer = "Другой вопрос" + answer = questions_and_answers.get(question, answer) + print(answer) +# answer = questions_and_answers.get(question) +# if question in questions_and_answers: +# print(answer) +# else: +# print("я не знаю") + +ask_user() + +input() + + +#if __name__ == "__main__": +# ask_user(questions_and_answers) diff --git a/6_exception1.py b/6_exception1.py index 3ea9d054..ed803c82 100644 --- a/6_exception1.py +++ b/6_exception1.py @@ -11,10 +11,23 @@ """ def hello_user(): - """ - Замените pass на ваш код - """ - pass +# """ +# Замените pass на ваш код +# """ + try: + while True: + ask = input('Как дела? ') + if ask == ('хорошо'): + break + else: + print('Как дела? ') + except KeyboardInterrupt: + print('Пока!') + -if __name__ == "__main__": - hello_user() +hello_user() + +input() + +#if __name__ == "__main__": +# hello_user() diff --git a/7_exception2.py b/7_exception2.py index d4bd8a39..8c88a116 100644 --- a/7_exception2.py +++ b/7_exception2.py @@ -13,16 +13,41 @@ """ -def discounted(price, discount, max_discount=20) +def discounted(price, discount, max_discount=20): """ Замените pass на ваш код """ - pass + try: + price = abs(float(price)) + # price = float(price) + discount = abs(float(discount)) + # discount = float(discount) + max_discount = abs(int(max_discount)) + # max_discount = int(max_discount) + except(TypeError): + raise TypeError("Не сработало приведение типов") + except(ValueError): + raise ValueError("Не удалось привести аргуметы к числам") + + if max_discount >= 100: + raise ValueError("Максимальная скидка не должна быть больше 100") + if discount >= max_discount: + price_with_discount = price + else: + price_with_discount = price - (price * discount / 100) + return price_with_discount -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")) + + +input() + +#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")) +print(discounted(100, 200)) +print(discounted(100, 200, 200)) \ No newline at end of file diff --git a/8_ephem_bot.py b/8_ephem_bot.py index 1cf9ea19..fe637d9a 100644 --- a/8_ephem_bot.py +++ b/8_ephem_bot.py @@ -1,57 +1,79 @@ -""" -Домашнее задание №1 - -Использование библиотек: ephem - -* Установите модуль ephem -* Добавьте в бота команду /planet, которая будет принимать на вход - название планеты на английском, например /planet Mars -* В функции-обработчике команды из update.message.text получите - название планеты (подсказка: используйте .split()) -* При помощи условного оператора if и ephem.constellation научите - бота отвечать, в каком созвездии сегодня находится планета. - -""" -import logging - from telegram.ext import Updater, CommandHandler, MessageHandler, Filters - -logging.basicConfig(format='%(name)s - %(levelname)s - %(message)s', - level=logging.INFO, - filename='bot.log') - - -PROXY = { - 'proxy_url': 'socks5://t1.learn.python.ru:1080', - 'urllib3_proxy_kwargs': { - 'username': 'learn', - 'password': 'python' - } -} +from datetime import date def greet_user(update, context): - text = 'Вызван /start' - print(text) - update.message.reply_text(text) - - -def talk_to_me(update, context): - user_text = update.message.text - print(user_text) - update.message.reply_text(text) + print("Вызван /start") + update.message.reply_text("Привет!") + +#def talk_to_me(update, context): +# text = update.message.text +# print(text) +# update.message.reply_text(text) + +def planets(update, context): + import ephem + print("Вызвана функция planets") + + import datetime + today = date.today() +# planet = update.message.text +# planet = ephem.Mars('2024/11/29') +# update.message.reply_text("Планета {planet}") +# print(planet) +# const = ephem.constellation(planet) +# print(const) +# update.message.reply_text(const) + try: +# planet = ephem.Mars('2024/11/29') + planet = update.message.text + planet_name = planet.split() + print(planet_name) + name = planet_name[1] + + Mars = ephem.Mars(today) +# Earth = ephem.Earth("2024/11/30") + Uranus = ephem.Uranus(today) + Jupiter = ephem.Jupiter(today) + Neptune = ephem.Neptune(today) + Venus = ephem.Venus(today) + Pluto = ephem.Pluto(today) + Mercury = ephem.Mercury(today) + if name == "Mars": + const = ephem.constellation(Mars) + elif name == "Jupiter": + const = ephem.constellation(Jupiter) + elif name == "Uranus": + const = ephem.constellation(Uranus) + elif name == "Neptune": + const = ephem.constellation(Neptune) + elif name == "Venus": + const = ephem.constellation(Venus) + elif name == "Pluto": + const = ephem.constellation(Pluto) + elif name == "Mercury": + const = ephem.constellation(Mercury) + else: +# const = ephem.constellation(Earth) + print("Не знаю такую планету") + print(const) + update.message.reply_text(const) + except Exception as e: + print(e) def main(): - mybot = Updater("КЛЮЧ, КОТОРЫЙ НАМ ВЫДАЛ BotFather", request_kwargs=PROXY, use_context=True) + mybot = Updater("7834567751:AAGfqPXRFL3-GDBOH0IcORp7DSIzyJ_W-Jw", use_context = True) + dp = mybot.dispatcher dp.add_handler(CommandHandler("start", greet_user)) - dp.add_handler(MessageHandler(Filters.text, talk_to_me)) - + dp.add_handler(CommandHandler("planet", planets)) +# dp.add_handler(MessageHandler(Filters.text, talk_to_me)) + dp.add_handler(MessageHandler(Filters.text, planets)) mybot.start_polling() mybot.idle() +main() -if __name__ == "__main__": - main() +input() \ No newline at end of file