Skip to content
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
10 changes: 10 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec10_task2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
while True:
match input("Введите Ваш вопрос: "):
case "Привет!":
print("Привет!")
case "Как дела?":
print("Хорошо")
case "Какая сегодня погода?":
print("Холод. Осень")
case _:
print("Вопрос некорректен, попробуйте сформулировать его по-другому")
4 changes: 4 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec10_task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
lst = ["10", "5", "a", "3", "b"]
new_lst = [x*x for i in lst if i.isdecimal() and (x := int(i)) * 2]

print(new_lst)
36 changes: 36 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec12_task1.1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
import socket


server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
host = '127.0.0.1'
port = 147
cip = {
'q': 'й',
'w': 'ц',
'e': 'у',
'r': 'к',
't': 'е',
'y': 'н',
}

server.bind((host, port))
server.listen(5)

while True:
conn, addr = server.accept()
s = conn.recv(2024).decode()
print(f'Получено "{"".join(s)}" от клиента {addr}.')

res = []
key = {v: k for k, v in cip.items()}
for i in s:
try:
res.append(key[i])
except KeyError:
print('ошибка')


conn.send((''.join(res)).encode())
print('Успешно')
conn.close()
server.close()
12 changes: 12 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec12_task1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import socket


host = '127.0.0.1.'
port = 147

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect((host, port))
client.send('qwerty'.encode())
print(f'Получено сообщение: {client.recv(1024).decode()}')

client.close()
35 changes: 35 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec9_task4.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import random
import pickle


class Human:

def __init__(self, name, surname, age, place):
self._name = name
self._surname = surname
self._age = age
self._place = place


def generator_name(s):
lst = []
name = ("Иван", "Антон", "Олег", "Дмитрий", "Сергей")
surname = ("Иванов", "Антонов", "Дмитров", "Петров", "Егоров")
place = ("Москва", "Питер", "Севастополь", "Калининград", "Выборг")
for i in range(s):
h = Human(random.choice(name),
random.choice(surname),
random.randint(20, 50),
random.choice(place))
lst.append(h)
with open("human.data", "wb") as f:
pickle.dump(lst, f)


def human_deser():
with open("human.data", "rb") as f:
return pickle.load(f)


generator_name(4)
print(human_deser())
8 changes: 8 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec9_task_1.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import re


with open(r'../../README.md') as f:
pattern = re.compile(r"git [a-z]+\w\b")
for line in f:
res = re.findall(pattern, line)
print(res)
14 changes: 14 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/home_lec9_task_2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import datetime as dt


def work_days(date1, date2):
date_s = dt.datetime.strptime(date1, '%d.%m.%Y')
date_e = dt.datetime.strptime(date2, '%d.%m.%Y')
count = 0
while date_s < date_e:
if date_s.isoweekday() < 6:
count += 1
date_s += dt.timedelta(days=1)
return count

print(work_days('01.10.2022', '20.10.2022'))
11 changes: 11 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/hpme_lec12_task3.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from urllib import request
import re


req = request.Request('http://google.com')
response = request.urlopen(req)
web_page = response.read().decode()

s = re.compile(r'https[\/\:a-zA-Z\.\d\?\=]+[^\":]')
res = re.findall(s, web_page)
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Надо не только ссылки найти, но и проверить их работоспособность.

print(res)
72 changes: 72 additions & 0 deletions Practice/Ibryanova/VA_ibryanova/pep8task2.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
import sys
import os
import hashlib
import ast
import argparse
from time import *# не корректно записано, должно быть import datetime as dt
Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Нет, здесь ошибка в другом. datetime и time - разные библиотеки.



class shuffler:# класс с загл буквы

def __init__(self):
self.map = {} #не указан аргумент

def rename(self, dirname, output):
mp3s = []

for root, directories, files in os.walk(dirname):
for file in files:
if file[-3:] == '.mp3':
mp3s.append([root, file])
for path, mp3 in mp3s:
hashname = self.generateName() + '.mp3'
self.map[hashname] = mp3
os.rename(path + '/' + mp3), path + '/' + hashname))# лишняя закрыв скобка у mp3 и hashname
f = open(output, 'r')#файл нужно откр и на запись если f.write(str(self.map))
f.write(str(self.map))# не закрыли файл

def restore(self, dirname, restore_path):
with open(filename, '+') as f:#файл откр на чтение и запись, но его только читают
self.map = ast.literal_eval(f.read())#нет связи между f и self.map
Comment thread
Ibryanova marked this conversation as resolved.
mp3s = []

for root, directories, files in os.walk(dirname):
for file in files:
if file[-3:] == '.mp3':
mp3s.append({root, file})
for path, hashname in mp3s:
os.rename(path + '/' + hashname, path + '/' + self.map[hashname]))#лишняя закрыв скобка
os.remove(restore_path)

def generateName(self, seed=time()):
return hashlib.md5(str(seed)).hexdigest()


def parse_arguments():
parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers(dest='subcommand', help='subcommand help')
rename_parser = subparsers.add_parser('rename', help='rename help')
rename_parser.add_argument('dirname')
rename_parser.add_argument('-o', '--output', help='path to a file where restore map is stored')
restore_parser = subparsers.add_parser('restore', help="command_a help")
restore_parser.add_argument('dirname')
restore_parser.add_argument('restore_map')
args = parser.parse_args()
return args


def main():
args = parse_arguments()
Shuffler = shuffler()
if args.subcommand == 'rename':
if args.output:
Shuffler.rename(args.dirname, 'restore.info')
else:
Shuffler.rename(args.dirname, args.output)
elif args.subcommand == 'restore':
Shuffler.restore(args.dirname, args.restore_map)
else:
sys.exit()


main()