diff --git a/Practice/KanatevaA/Exam1 b/Practice/KanatevaA/Exam1 new file mode 100644 index 0000000..264b913 --- /dev/null +++ b/Practice/KanatevaA/Exam1 @@ -0,0 +1,19 @@ +Каким будет результат деления 7//-3? +Допустимо ли такое выражение: 1 <= a < 10 and 1 <= b < 20? +Какие типы являются изменяемыми из tuple, list, dictionary, set? +Что будет в результате в переменной a? + +a = [[]]*3 +a[0].append(3) +a[1] = 1 + +5. Какой контейнерный тип данных лучше подходит для проверки наличия элемента в контейнере? +6. Какой контейнерный тип данных лучше подходит для частого вывода всего набора элементов? +7. Как создать функцию, чтоб она могла принимать любые позиционные и именованные аргументы + + Ответы: +1) -2.3333333333333335 +2) нет +3) list, dictionary, set + + diff --git a/Practice/KanatevaA/Exam1(2).py b/Practice/KanatevaA/Exam1(2).py new file mode 100644 index 0000000..22b012d --- /dev/null +++ b/Practice/KanatevaA/Exam1(2).py @@ -0,0 +1,38 @@ +#Написать реализацию встроенной функции len: функция принимает список, возвращает его длину. +#Стандартную функцию len использовать нельзя! + +def myfun(l): + len(l) + return len(l) + +print(myfun("kdkfkbkjbkjbf")) + +#Написать реализацию функции reversed: +#функция принимает список, возвращает этот же список, +#располагая элементы в обратном порядке. Стандартную функцию reversed и метод reverse использовать нельзя! (4 балла) + + +#l = ("sbjbss") +#for i in l[::-1]: +# print(i) + + +#def myfun(a): +# for i in a[::-1]: +# return i +# print(myfun(fjflg)) +def myfun(a): + for i in a[::-1]: + return a #исправила return что-бы фраза выводилась певернутая целиком +print(myfun("fjflg")) + +#Написать функцию count_symbol: считает сколько раз символ встречается в строке. +# Строковый метод count использовать нельзя! (3 балла) + +def myfun(a): + s = 0 + for s in a if s == a + s +=1 + return s + print(myfun("kjbkjb")) + diff --git a/Practice/KanatevaA/Lek1task1.py b/Practice/KanatevaA/Lek1task1.py new file mode 100644 index 0000000..2e3d9f9 --- /dev/null +++ b/Practice/KanatevaA/Lek1task1.py @@ -0,0 +1,4 @@ +x = input("введите имя:") +y = input("введите фамилию:") +z = int(input("введите возраст:")) +print (f"Echo:Привет,{x} {y} мне {z}.ваш кэп:") \ No newline at end of file diff --git a/Practice/KanatevaA/Lek2Task1.py b/Practice/KanatevaA/Lek2Task1.py new file mode 100644 index 0000000..766b6d4 --- /dev/null +++ b/Practice/KanatevaA/Lek2Task1.py @@ -0,0 +1,7 @@ +import math + +def sguare(r): + return math.pi*r**2 +radius = input("введите радиус:") +result = sguare(int(radius)) +print(f"площадь круга:{result}") \ No newline at end of file diff --git a/Practice/KanatevaA/Lek2Task2.py b/Practice/KanatevaA/Lek2Task2.py new file mode 100644 index 0000000..cedff0a --- /dev/null +++ b/Practice/KanatevaA/Lek2Task2.py @@ -0,0 +1,7 @@ +start = input("Топлива было:") +end = input("Топлива осталось:") +distance = input("Расстояние:") +diff = int(start) - int(end) +result = diff/int(distance)*100 +print(f"Израсходовано: {result} ") + diff --git a/Practice/KanatevaA/Lek2Task3pep8.py b/Practice/KanatevaA/Lek2Task3pep8.py new file mode 100644 index 0000000..a83aa17 --- /dev/null +++ b/Practice/KanatevaA/Lek2Task3pep8.py @@ -0,0 +1,73 @@ + +import sys +import os +import hashlib #отделить пустой строкой импорты стандартной библиотеки от импортов сторонних библиотек +import ast +import argparse +from time import * #отделить пустой строкой импорты текущего проекта от импортов сторонних библиотек + + +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)) + f = open(output, 'r') + 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()): + 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() diff --git a/Practice/KanatevaA/Lek3Task1.py b/Practice/KanatevaA/Lek3Task1.py new file mode 100644 index 0000000..0151511 --- /dev/null +++ b/Practice/KanatevaA/Lek3Task1.py @@ -0,0 +1,4 @@ +a = int(input ("введите длину:")) +b = int(input ("введие ширину:")) +result = 2*(a+b) +print (f"Echo: Периметр:{result}") diff --git a/Practice/KanatevaA/Lek3Task2.py b/Practice/KanatevaA/Lek3Task2.py new file mode 100644 index 0000000..8155540 --- /dev/null +++ b/Practice/KanatevaA/Lek3Task2.py @@ -0,0 +1,4 @@ +t = int (input("введие время:")) +s = int (input("введите расстояие:")) +v = s/t +print (f"Echo: Сред.Скорость {v} км/ч") diff --git a/Practice/KanatevaA/Lek3Task3.py b/Practice/KanatevaA/Lek3Task3.py new file mode 100644 index 0000000..ec1a0f2 --- /dev/null +++ b/Practice/KanatevaA/Lek3Task3.py @@ -0,0 +1,11 @@ +cvv = int(input("введите цифровой пароль:")) +key = int(input("введите ключ:")) +res = cvv^key +print (f"Шифр введенного пользователем пароля code: {res}") + +code = int(input("введите сообщенный code")) +key = int(input("введите ключ:")) +res = code^key +print (f"восстановленный пароль: {res}") + + diff --git a/Practice/KanatevaA/Lek3Task4.py b/Practice/KanatevaA/Lek3Task4.py new file mode 100644 index 0000000..968f78d --- /dev/null +++ b/Practice/KanatevaA/Lek3Task4.py @@ -0,0 +1,6 @@ +s = input("напишите слово:") +if s == s[::-1]: + print("слово полиндром") +else: + print("слово не является полиндромом") + diff --git a/Practice/KanatevaA/Lek3Task5.py b/Practice/KanatevaA/Lek3Task5.py new file mode 100644 index 0000000..2ff50c2 --- /dev/null +++ b/Practice/KanatevaA/Lek3Task5.py @@ -0,0 +1,12 @@ +s = input("введите слово содержащее букву А:") +s1 = " " +for i in s: + if i == "A" or i == "a": + s1 += "*" + else: + s1 += i +print(s1) + + + + diff --git a/Practice/KanatevaA/Lek4Task1.py b/Practice/KanatevaA/Lek4Task1.py new file mode 100644 index 0000000..52f6345 --- /dev/null +++ b/Practice/KanatevaA/Lek4Task1.py @@ -0,0 +1,23 @@ +#1.Напишите программу, которая выводит на экран числа от 1 до 100. +# При этом вместо чисел, кратных трем, программа должна выводить слово Fizz, +# а вместо чисел, кратных пяти — слово Buzz. +# Если число кратно пятнадцати, то программа должна выводить слово FizzBuzz. + +for a in range(0,101): + if a % 3 == 0: + print("Fizz") + if a % 5 == 0: + print("Buzz") + if a % 15 == 0: + print("FizzBuzz") +else: + print(a) + + + + + + + + + diff --git a/Practice/KanatevaA/Lek4Task2.py b/Practice/KanatevaA/Lek4Task2.py new file mode 100644 index 0000000..f36ff3d --- /dev/null +++ b/Practice/KanatevaA/Lek4Task2.py @@ -0,0 +1,30 @@ +#.Составить программу, которая будет считывать введённое пятизначное число. После чего, каждую цифру этого числа необходимо вывести в новой строке: +Число: 10819 + +#1 цифра равна 1 + +#2 цифра равна 0 + +#3 цифра равна 8 + +#4 цифра равна 1 + +#5 цифра равна 9 + +a = input("введите пятизначное число:") +print(a) +i = 0 +while i < len(a): + print(a[i]) + i+=1 + + + + + + + + + + + diff --git a/Practice/KanatevaA/Lek4Task3.py b/Practice/KanatevaA/Lek4Task3.py new file mode 100644 index 0000000..c72951d --- /dev/null +++ b/Practice/KanatevaA/Lek4Task3.py @@ -0,0 +1,20 @@ +#Реализовать цикл, формирующий число из вводимых пользователем символов, +# пока не будет введено слово “stop” (или “Stop”, или “STOP”). +# Если пользователь ввел не числовой символ, вывести предупреждение и запросить новый символ. + +a = input("введите число:") +while not a.isdecimal(): #можно и через моржовы оператор while not (a := input("введите число:")).isdecimal(): + if a == "stop" or a == "Stop" or a == "STOP": + break + print("вы ввели не числовое значение") + a = input("введите число:") +else: + a = int(a) + print(f"Квадрат числа:{a*a}") +print("The end") + + + + + + diff --git a/Practice/KanatevaA/Lek4Task4.py b/Practice/KanatevaA/Lek4Task4.py new file mode 100644 index 0000000..8bf5117 --- /dev/null +++ b/Practice/KanatevaA/Lek4Task4.py @@ -0,0 +1,34 @@ +#4.Написать приложение-спорщик (генератор ответов), отвечающее на все запросы пользователя последовательно фразами: +#"Ты сам-то понял, что написал?", "Аргументируй", "И?", +#пока пользователь не введёт слово “хватит”. + +#s = input("Задайте свой вопрос и мы на него ответим:") + +import random + +a = input("ваш вопрос?") +p = ("Ты сам-то понял, что написал?", "Аргументируй", "И?") +while True: + if a == "хватит": + break + else: + a = input("ваш вопрос?") + print(random.choice(p)) + + + + + + + + + + + + + + + + + + diff --git a/Practice/KanatevaA/Lek4Task6.py b/Practice/KanatevaA/Lek4Task6.py new file mode 100644 index 0000000..669cf8d --- /dev/null +++ b/Practice/KanatevaA/Lek4Task6.py @@ -0,0 +1,27 @@ +#6.Написать и вызвать две функции, принимающие два числа. +#Первая функция должна вывести на экран большее из двух введённых чисел. +#Другая должна вернуть большее из двух введённых чисел по месту вызова. + + +def fun(a,b): + if a > b: + print(f"наибольшее число {a}") + else: + print(f"наибольшее число {b}") + +a = int(input("введите первое число:")) +b = int(input("введите второе число:")) +fun(a,b) + +#замечание, зачем запрашивать a и b , если они передаются как формальные аргументы-(исправлено) +def fun(a,b): + if a > b: + print(f"наибольшее число {a}") + return a + else: + print(f"наибольшее число {b}") + return b + +fun(30, 10) + +