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

commit with homework #170

Open
wants to merge 5 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
15 changes: 14 additions & 1 deletion 1_if1.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,20 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
age = int(input('Please enter your age:'))

def detect(age):
if 3 <= age <= 6:
return 'You should be in kindergarden'
elif 7 <= age <=18:
return 'You should be in school boy'
elif 18 <= age <= 23:
return 'You should be in University dude'
else:
return 'You should probably work man'

result = detect (age)
aka-nomad marked this conversation as resolved.
Show resolved Hide resolved
print(result)

if __name__ == "__main__":
main()
23 changes: 22 additions & 1 deletion 2_if2.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,28 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
def comapre_str(string1, string2):
if type(string1) is str and type(string2) is str:
len1 = len(string1)
len2 = len(string2)

if len1 == len2:
return 1
elif len1 > len2:
return 2
elif string1 != string2:
return 3
else:
return 'No rule for such combinations'
else:
return 0

for i in range(0, 4):
x = {0:1, 1:'Learn',2:'hello', 3:'python3'}
y = {0:'Python', 1:'learn',2:'hello', 3:'PYTHON'}
result = comapre_str(x[i], y[i])
print(result)
#print(x[i], y[i])
aka-nomad marked this conversation as resolved.
Show resolved Hide resolved

if __name__ == "__main__":
main()
21 changes: 20 additions & 1 deletion 3_for.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,26 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
product_sell = [
{'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]},
]
total_sale = 0
total_average_sale = 0

for i in range(len(product_sell)):
item = product_sell[i].get('product', 'no item')
sale = product_sell[i].get('items_sold', 0)

sum_of_sale = sum(sale)
average_sale = sum(sale) / len(sale)
total_sale += sum_of_sale
total_average_sale += average_sale

print(f"{item}, Total amount of sale: {sum_of_sale}, Average number of sale:{average_sale}")

print(f"All items total sales: {total_sale}, All items average sales: {total_average_sale}")

if __name__ == "__main__":
main()
8 changes: 6 additions & 2 deletions 4_while1.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,12 @@ def hello_user():
"""
Замените pass на ваш код
"""
pass

answer = ''

while True:
answer = input('How are you?').lower()
if answer == "good":
break
aka-nomad marked this conversation as resolved.
Show resolved Hide resolved

if __name__ == "__main__":
hello_user()
15 changes: 14 additions & 1 deletion 5_while2.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,20 @@ def ask_user(answers_dict):
"""
Замените pass на ваш код
"""
pass
dicts = {
"как дела": "Хорошо!", "что делаешь": "Программирую", "сколько тебе лет":"У меня нет возраста", "любишь питон":"Да"
}

while True:
answer = input("Задай свой вопрос:").lower()
if answer[-1] == '?':
answer = answer.rstrip('?')

if answer in ("Пока", "пока"):
print("Пока!")
break
else:
print(f"Пользователь: {answer}\nПрограмма:{dicts.get(answer, 'У меня нет ответа на данный вопрос')}")

if __name__ == "__main__":
ask_user(questions_and_answers)
12 changes: 11 additions & 1 deletion 6_exception1.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,17 @@ def hello_user():
"""
Замените pass на ваш код
"""
pass
answer = ''

while True:
try:
answer = input('How are you?')
if answer in ('Good', 'good'):
break
except KeyboardInterrupt:
print('\n', 'Good-bye!!!')
break

aka-nomad marked this conversation as resolved.
Show resolved Hide resolved

if __name__ == "__main__":
hello_user()
16 changes: 12 additions & 4 deletions 7_exception2.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,16 +13,24 @@

"""

def discounted(price, discount, max_discount=20)
def discounted(price, discount, max_discount=20):
"""
Замените pass на ваш код
"""
pass
try:
price, discount, max_discount = float(price), float(discount), int(max_discount)
if max_discount >= 100:
raise ValueError('Слишком большая максимальная скидка')
return price - (price * discount / 100)
except ValueError:
print('Переданы некорректные аргументы')
except TypeError:
print('Не сработало приведение типов данных!')

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("сто", "десять","five"))
print(discounted(100.0, 100, "10"))
29 changes: 25 additions & 4 deletions 8_ephem_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,23 +12,43 @@
бота отвечать, в каком созвездии сегодня находится планета.

"""
import logging
import logging, ephem, settings, datetime

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'
}
}
"""

def get_constellation(update, context):
try:
user_planet = update.message.text.split()[1].lower()
Copy link

@maxmokry maxmokry Sep 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Вот тут ты обрабатываешь исключение IndexError. Это хорошо

И тут вижу приведение к нижнему регистру. Это хорошо

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

а я сделал исключение вот так:
except IndexError:
update.message.reply_text('ERROR! You do not determine the planet')
плохое решение?

current_date = datetime.datetime.now().strftime('%Y/%m/%d')
planets = {
'mercury': ephem.Mercury(), 'venus':ephem.Venus(), 'mars':ephem.Mars(),'jupiter':ephem.Jupiter(),
'saturn':ephem.Saturn(), 'uranus':ephem.Uranus(), 'neptun':ephem.Neptune()
}

if user_planet != '':
planet = planets.get(user_planet)
compute = planet.compute(current_date)
update.message.reply_text(ephem.constellation(planet)[1])
except IndexError:
update.message.reply_text('ERROR! You do not determine the planet')

u = ephem.planet
print()
ephem.constellation

def greet_user(update, context):
text = 'Вызван /start'
Expand All @@ -39,14 +59,15 @@ def greet_user(update, context):
def talk_to_me(update, context):
user_text = update.message.text
print(user_text)
update.message.reply_text(text)
update.message.reply_text(user_text)


def main():
mybot = Updater("КЛЮЧ, КОТОРЫЙ НАМ ВЫДАЛ BotFather", request_kwargs=PROXY, use_context=True)
mybot = Updater(settings.API_KEY)

dp = mybot.dispatcher
dp.add_handler(CommandHandler("start", greet_user))
dp.add_handler(CommandHandler("planet", get_constellation))
dp.add_handler(MessageHandler(Filters.text, talk_to_me))

mybot.start_polling()
Expand Down
1 change: 1 addition & 0 deletions settings.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
API_KEY = "7475700629:AAHvNdrcCzOdt2odHBippgfS7rFns1wAGQc"