Skip to content

Hw2 #30

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

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open

Hw2 #30

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
25 changes: 19 additions & 6 deletions 1_date_and_time.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
from datetime import datetime, date, timedelta
"""
Домашнее задание №2

Expand All @@ -8,21 +9,33 @@

"""

def display_ymd(var):
return datetime.strftime(var, "%Y-%m-%d")

def print_days():
"""
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
today = datetime.today()
delta1 = timedelta(days=1)
delta30 = timedelta(days=30)

yesterday = today - delta1
thirty_days_earlier = today - delta30
print(f'Today is: {display_ymd(today)}')
print(f'Yesterday used to be: {display_ymd(yesterday)}')
print(f'Thirty days ago used to be: {display_ymd(thirty_days_earlier)}')


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

return datetime.strptime(date_string[:24], "%m/%d/%y %H:%M:%S.%f")
if __name__ == "__main__":
print_days()
print(str_2_datetime("01/01/20 12:10:03.234567"))
date_time_obj = str_to_datetime("01/01/20 12:10:03.234567")
print(date_time_obj)
print_days()
12 changes: 11 additions & 1 deletion 2_files.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,17 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
with open('./referat.txt', encoding = 'utf-8') as f:
content = f.read()
num_of_words = content.split()
print(len(content))
print(len(num_of_words))
replace_symbol = content.replace(".", "!")
print("Im here")

with open('referat2.txt', 'w', encoding = 'utf-8') as new:
# new.write(replace_symbol)
print(replace_symbol, file=new)

if __name__ == "__main__":
main()
32 changes: 31 additions & 1 deletion 3_dict_to_csv.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import csv
"""

Домашнее задание №2
Expand All @@ -15,7 +16,36 @@ def main():
Эта функция вызывается автоматически при запуске скрипта в консоли
В ней надо заменить pass на ваш код
"""
pass
my_dict_list = [
{
'name': 'Brainwashed',
'age' : '1',
'job' : 'lol'
},
{
'name': 'Cakewall',
'age' : '3',
'job' : 'laywer'
},
{
'name': 'Silkykiss',
'age' : '5',
'job' : 'judge'
},
{
'name': 'Fattylips',
'age' : '7',
'job' : 'teacher'
}
]

with open('export.csv', 'w', encoding ='utf-8') as f:
fields = ['name', 'age', 'job']
writer = csv.DictWriter(f, fields)
writer.writeheader()
for name in my_dict_list:
writer.writerow(name)
print("Done")

if __name__ == "__main__":
main()
5 changes: 5 additions & 0 deletions export.csv
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
name,age,job
Brainwashed,1,lol
Cakewall,3,laywer
Silkykiss,5,judge
Fattylips,7,teacher
88 changes: 88 additions & 0 deletions learn_bot/game_bot.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import logging
from glob import glob
from emoji import emojize

from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
from random import randint, choice
from settings import *


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_smile(user_data):
if 'emoji' not in user_data:
smile = choice(settings.USER_EMOJI)
return emojize(smile, use_aliases=True)
return user_data['emoji']


def greet_user(update, context):
context.user_data['emoji'] = get_smile(context.user_data)
update.message.reply_text(f"Здравствуй, пользователь {context.user_data['emoji']}!")


def talk_to_me(update, context):
context.user_data['emoji'] = get_smile(context.user_data)
username = update.effective_user.first_name
text = update.message.text
update.message.reply_text(
f"Здравствуй, {username} {context.user_data['emoji']}! Ты написал: {text}"
)


def guess_number(update, context):
if context.args:
try:
user_number = int(context.args[0])
message = play_random_numbers(user_number)
except(TypeError, ValueError):
message = "Введите целое число"
else:
message = "Введите целое число"
update.message.reply_text(message)


def play_random_numbers(user_number):
bot_number = randint(user_number-10, user_number+10)
if user_number > bot_number:
message = f"Ты загадал {user_number}, я загадал {bot_number}, ты выиграл!"
elif user_number == bot_number:
message = f"Ты загадал {user_number}, я загадал {bot_number}, ничья!"
else:
message = f"Ты загадал {user_number}, я загадал {bot_number}, я выиграл!"
return message


def send_cat_picture(update, context):
cat_photos_list = glob('images/cat*.jp*g')
cat_pic_filename = choice(cat_photos_list)
chat_id = update.effective_chat.id
context.bot.send_photo(chat_id=chat_id, photo=open(cat_pic_filename, 'rb'))

def main():
mybot = Updater("5210021964:AAGiN86zFcONGba-LM6C9Uwfumihks9MorQ", use_context=True)

dp = mybot.dispatcher
dp = mybot.dispatcher
dp.add_handler(CommandHandler("start", greet_user))
dp.add_handler(CommandHandler("guess", guess_number))
dp.add_handler(MessageHandler(Filters.text, talk_to_me))
dp.add_handler(CommandHandler("cat", send_cat_picture))

mybot.start_polling()
mybot.idle()


if __name__ == "__main__":
main()
11 changes: 11 additions & 0 deletions learn_bot/requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
APScheduler==3.6.3
cachetools==4.2.2
certifi==2021.10.8
PySocks==1.7.1
python-telegram-bot==13.11
pytz==2021.3
pytz-deprecation-shim==0.1.0.post0
six==1.16.0
tornado==6.1
tzdata==2021.5
tzlocal==4.1
Empty file added learn_bot/settings.py
Empty file.
19 changes: 19 additions & 0 deletions learn_web/server.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import json
from pprint import pprint
from textwrap import indent
from flask import Flask
from weather import weather_by_city
app = Flask(__name__)

@app.route('/')
def index():
weather = weather_by_city("Moscow,Russia")
if weather:
with open("test.json", "w") as file:
print(json.dumps(weather, indent=4),file=file)
return f"Сейчас {weather['data']['current_condition'][0]['temp_C']}, ощущается как {weather['data']['current_condition'][0]['FeelsLikeC']}"
else:
return "Прогноз сейчас недоступен"

if __name__=="__main__":
app.run(debug=True)
Loading