diff --git a/Practice/Bezborody/lec1_task1.py b/Practice/Bezborody/lec1_task1.py new file mode 100644 index 0000000..d800f10 --- /dev/null +++ b/Practice/Bezborody/lec1_task1.py @@ -0,0 +1 @@ +print("Hello1") diff --git a/Practice/Bezborody/lec1_task2.py b/Practice/Bezborody/lec1_task2.py new file mode 100644 index 0000000..451e648 --- /dev/null +++ b/Practice/Bezborody/lec1_task2.py @@ -0,0 +1,6 @@ +start = input("Топлива было: ") +end = input("Топлива осталось: ") +distance = input("Расстояние: ") +diff = int(start) - int(end) +result = int(diff) / int(distance) +print (f"Расход топлива {result}") \ No newline at end of file diff --git a/Practice/Bezborody/lec1_task4.py b/Practice/Bezborody/lec1_task4.py new file mode 100644 index 0000000..eb623bf --- /dev/null +++ b/Practice/Bezborody/lec1_task4.py @@ -0,0 +1,3 @@ +name = input("Введите имя: ") +fullname = input("Введите фамилию: ") +print(f"Echo: {name} {fullname}") \ No newline at end of file diff --git a/Practice/Bezborody/lec2_task1.py b/Practice/Bezborody/lec2_task1.py new file mode 100644 index 0000000..099ef14 --- /dev/null +++ b/Practice/Bezborody/lec2_task1.py @@ -0,0 +1,10 @@ +import math +def square(r): + return math.pi * r ** 2 + +radius = input("Введите радиус: ") +result = square(int(radius)) +print(f"Площадь круга: {result}") + + + diff --git a/Practice/Bezborody/pep8task.py b/Practice/Bezborody/pep8task.py new file mode 100644 index 0000000..1c2b8e3 --- /dev/null +++ b/Practice/Bezborody/pep8task.py @@ -0,0 +1,69 @@ +import sys +import os +import hashlib +import ast +import argparse +from time import * # такой import не рекомендуется PEP8 + + +class shuffler: # нарушено правило CamelCase + + 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)) + f = open(output, 'r') # нарушение уровней вложенности (2 пробела вместо 4) + f.write(str(self.map)) # тоже нарушены уровни вложенности + + def restore(self, dirname, restore_path): + with open(filename, '+') as f: #уровни вложенности + self.map = ast.literal_eval(f.read()) # уровни вложенности + 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()): # уровни вложенности + generate и name дожны быть набраны через snake case + 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()