diff --git a/.idea/.gitignore b/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/.idea/Pyton.git.iml b/.idea/Pyton.git.iml
new file mode 100644
index 0000000..d0876a7
--- /dev/null
+++ b/.idea/Pyton.git.iml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
new file mode 100644
index 0000000..105ce2d
--- /dev/null
+++ b/.idea/inspectionProfiles/profiles_settings.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
new file mode 100644
index 0000000..d56657a
--- /dev/null
+++ b/.idea/misc.xml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..6bf975f
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
new file mode 100644
index 0000000..d5bcecf
--- /dev/null
+++ b/.idea/vcs.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/HomeTask1.zip b/HomeTask1.zip
new file mode 100644
index 0000000..192d1f0
Binary files /dev/null and b/HomeTask1.zip differ
diff --git a/Lesson2_/Les2Task1.py b/Lesson2_/Les2Task1.py
new file mode 100644
index 0000000..1e314b6
--- /dev/null
+++ b/Lesson2_/Les2Task1.py
@@ -0,0 +1,4 @@
+list_1=(1,1.3,'fine',False, {'price', 224, True}, [1,3,5,5.5,8,0.5,'oro'])
+for all_type in list_1:
+ print(type(all_type))
+ # testing
\ No newline at end of file
diff --git a/Lesson2_/Les2Task2.py b/Lesson2_/Les2Task2.py
new file mode 100644
index 0000000..45db405
--- /dev/null
+++ b/Lesson2_/Les2Task2.py
@@ -0,0 +1,10 @@
+list1 = input("Перечислите не менее 5 наименований:").split()
+your_list = len(list1)
+i=0
+if your_list > 1:
+ while i < your_list - 1:
+ your_list[i], your_list[i+ 1] = your_list[i + 1], your_list[i]
+ i += 2
+
+print(your_list)
+# testing
\ No newline at end of file
diff --git a/Lesson2_/Les2Task3.py b/Lesson2_/Les2Task3.py
new file mode 100644
index 0000000..05096ab
--- /dev/null
+++ b/Lesson2_/Les2Task3.py
@@ -0,0 +1,11 @@
+month=input("Введите число месяца от 1 до 12:")
+win = 'зима'
+spr = 'весна'
+sum = 'лето'
+aut = 'осень'
+dict_season= {'1':win , '2':win, '3':spr, '4':spr, '5':spr, '6':sum, '7':sum, '8':sum, '9':aut, '10':aut, '11':aut, '12':win}
+print(dict_season[month])
+
+month_list=[win, win, spr, spr, spr, sum, sum, sum, aut, aut, aut, win,win]
+print(month_list[int(month)])
+# testing
\ No newline at end of file
diff --git a/Lesson2_/Les2Task4.py b/Lesson2_/Les2Task4.py
new file mode 100644
index 0000000..657ae16
--- /dev/null
+++ b/Lesson2_/Les2Task4.py
@@ -0,0 +1,4 @@
+name_user= (input('Введите ФИО полностью:')).split()
+for a, b in enumerate(name_user):
+ print(f'{a} - {b[:10]}')
+ # testing
\ No newline at end of file
diff --git a/Lesson2_/Les2Task5.py b/Lesson2_/Les2Task5.py
new file mode 100644
index 0000000..40c975c
--- /dev/null
+++ b/Lesson2_/Les2Task5.py
@@ -0,0 +1,13 @@
+rating = [7, 5, 3, 3, 2]
+user_rating = int(input('Оцените работу оператора от 1 до 10:'))
+answer = False
+for index, elem in enumerate(rating):
+ if user_rating > elem:
+ rating.insert(index, user_rating)
+ answer = True
+ break
+
+if not answer:
+ rating.append(user_rating)
+
+print(rating)
diff --git a/Lesson2_/test.py b/Lesson2_/test.py
new file mode 100644
index 0000000..51861ad
--- /dev/null
+++ b/Lesson2_/test.py
@@ -0,0 +1,2 @@
+a = 10
+print(a)
\ No newline at end of file
diff --git a/Lesson_3/Les3Task1.py b/Lesson_3/Les3Task1.py
new file mode 100644
index 0000000..075f1f1
--- /dev/null
+++ b/Lesson_3/Les3Task1.py
@@ -0,0 +1,14 @@
+
+def num_list_div(x, y):
+ if y==0:
+ return "На 0 делить нельзя!"
+ else:
+ return x / y
+
+x=float(input('Введите делимое:'))
+y=float(input('Введите делитель:'))
+
+print(num_list_div(x, y))
+
+
+
diff --git a/Lesson_3/Les3Task2.py b/Lesson_3/Les3Task2.py
new file mode 100644
index 0000000..d0eddbf
--- /dev/null
+++ b/Lesson_3/Les3Task2.py
@@ -0,0 +1,12 @@
+def user_data(name,surname,year, city, mail, phone):
+ result=(name,surname,year, city, mail, phone)
+ return result
+user_name=input('Имя:')
+user_surname=input('Фамилия:')
+user_year=input('Год рождения:')
+user_city=input('Город:')
+user_mail=input('Эл.почта:')
+user_phone=input('Телефон:')
+
+user_data_1= user_data(name=user_name, surname=user_surname, year=user_year, city =user_city, mail=user_mail, phone=user_phone)
+print(user_data_1)
diff --git a/Lesson_3/Les3Task3.py b/Lesson_3/Les3Task3.py
new file mode 100644
index 0000000..e034607
--- /dev/null
+++ b/Lesson_3/Les3Task3.py
@@ -0,0 +1,15 @@
+def list_arg(a,b,c):
+ min_num = min(a,b,c)
+ sum_num = a+b+c
+ return sum_num-min_num
+
+num_1=int(input('введите певрвое число:'))
+num_2=int(input('Введите второе число:'))
+num_3=int(input('Введите третье число:'))
+my_list=[num_1, num_2, num_3]
+result = list_arg(my_list[0], my_list[1], my_list[2])
+print(result)
+
+
+
+
diff --git a/Lesson_3/Les3Task4.py b/Lesson_3/Les3Task4.py
new file mode 100644
index 0000000..2d02a32
--- /dev/null
+++ b/Lesson_3/Les3Task4.py
@@ -0,0 +1,19 @@
+# Вариант решения-1
+
+# def deg_arg(a,b):
+# return pow(a, b)
+# num_1=float(input('Введите целое положительное число:'))
+# num_2=int(input('Введите целое отрицательное число:'))
+#
+# result = deg_arg(num_1, num_2)
+# print(result)]
+
+# Вариант решения-2
+
+def deg_arg(a,b):
+ return a**b
+num_1=float(input('Введите целое положительное число:'))
+num_2=int(input('Введите целое отрицательное число:'))
+
+result = deg_arg(num_1, num_2)
+print(result)
\ No newline at end of file
diff --git a/Lesson_3/Les3Task5.py b/Lesson_3/Les3Task5.py
new file mode 100644
index 0000000..36e2681
--- /dev/null
+++ b/Lesson_3/Les3Task5.py
@@ -0,0 +1,17 @@
+def list_num(num_list, stop):
+ nums=num_list.split(' ')
+ total=0
+ for x in nums:
+ if x == stop:
+ break
+ total+= int(x)
+ return total
+end = '='
+fin=False
+n=0
+while not fin:
+ user_num = input('Введите числа:')
+ n+= list_num(user_num, end)
+ fin=end in user_num
+ print(f"Sum={n}")
+
diff --git a/Lesson_3/Les3Task6.py b/Lesson_3/Les3Task6.py
new file mode 100644
index 0000000..2626f23
--- /dev/null
+++ b/Lesson_3/Les3Task6.py
@@ -0,0 +1,7 @@
+def user_words(txt):
+ text = txt[0].upper()+txt[1:].lower()
+ return text
+
+string = input('Введите слова с маленькой буквы:')
+for text in string.split(' '):
+ print(f'{user_words(text)}', end=' ')
diff --git a/Lesson_4/Les4_Task1.py b/Lesson_4/Les4_Task1.py
new file mode 100644
index 0000000..3ee68e9
--- /dev/null
+++ b/Lesson_4/Les4_Task1.py
@@ -0,0 +1,7 @@
+from sys import argv
+print(argv)
+if len(argv)<3:
+ print('Введите три параметра: 1.Выработка в часах, 2.Ставка в час, 3.Премия')
+else:
+ print(f'Salary= {float(argv[1]) * float(argv[2]) + float(argv[3])}')
+
diff --git a/Lesson_4/Les4_Task2.py b/Lesson_4/Les4_Task2.py
new file mode 100644
index 0000000..a1545e3
--- /dev/null
+++ b/Lesson_4/Les4_Task2.py
@@ -0,0 +1,11 @@
+my_list= [300, 2, 12, 44, 1, 1, 4, 10, 7, 1, 78, 123, 55]
+
+# filtred_list=[]
+# for i in range(1, len(my_list)):
+# if my_list[i]>my_list[i-1]:
+# filtred_list.append(my_list[i])
+# print(filtred_list)
+
+
+filtred_list = [my_list[i] for i in range(1, len(my_list)) if my_list[i]>my_list[i-1]]
+print(filtred_list)
diff --git a/Lesson_4/Les4_Task3.py b/Lesson_4/Les4_Task3.py
new file mode 100644
index 0000000..613f026
--- /dev/null
+++ b/Lesson_4/Les4_Task3.py
@@ -0,0 +1,9 @@
+my_list=list(range(20,241,1))
+# filtred_list=[]
+# for i in range(1, len(my_list)):
+# if my_list[i]%20==0 or my_list[i]%21==0:
+# filtred_list.append(my_list[i])
+# print(filtred_list)
+
+filtred_list = [my_list[i] for i in range(1, len(my_list)) if my_list[i]%20==0 or my_list[i]%21==0]
+print(filtred_list)
diff --git a/Lesson_4/Les4_Task4.py b/Lesson_4/Les4_Task4.py
new file mode 100644
index 0000000..ff5e8af
--- /dev/null
+++ b/Lesson_4/Les4_Task4.py
@@ -0,0 +1,10 @@
+my_list= [2, 2, 2, 7, 23, 1, 44, 44, 3, 2, 10, 7, 4, 11]
+
+# filtred_list=[]
+# for i in my_list:
+# if my_list.count(i)==1:
+# filtred_list.append(i)
+# print(filtred_list)
+
+filtred_list = [ i for i in my_list if my_list.count(i)==1]
+print(filtred_list)
diff --git a/Lesson_4/Les4_Task5.py b/Lesson_4/Les4_Task5.py
new file mode 100644
index 0000000..2518293
--- /dev/null
+++ b/Lesson_4/Les4_Task5.py
@@ -0,0 +1,11 @@
+from functools import reduce
+# num_list=[]
+# for i in range(100,1001):
+# if i%2==0:
+# num_list.append(i)
+# total=reduce(lambda x, y: x * y, num_list)
+# print(total)
+
+num_list=[i for i in range(100,1001) if i%2==0]
+total=reduce(lambda x, y: x * y, num_list)
+print(total)
\ No newline at end of file
diff --git a/Lesson_4/Les4_Task6.py b/Lesson_4/Les4_Task6.py
new file mode 100644
index 0000000..7f2d83d
--- /dev/null
+++ b/Lesson_4/Les4_Task6.py
@@ -0,0 +1,14 @@
+from itertools import count, cycle
+
+for i in count(3):
+ if i>10:
+ break
+ print(i)
+
+my_list = [3, 15, 18, 42]
+counter = 0
+for i in cycle(my_list):
+ counter += 1
+ if counter > 10:
+ break
+ print(i)
\ No newline at end of file
diff --git a/Lesson_4/Les4_Task7.py b/Lesson_4/Les4_Task7.py
new file mode 100644
index 0000000..8baa8dd
--- /dev/null
+++ b/Lesson_4/Les4_Task7.py
@@ -0,0 +1,8 @@
+def fact(num):
+ num_1 = 1
+ for i in range(1, num + 1):
+ num_1 *= i
+ yield num_1
+x = 10
+for y, z in enumerate(fact(x)):
+ print(f'!{y+1} {z}')
diff --git a/Lesson_4/My_script.py b/Lesson_4/My_script.py
new file mode 100644
index 0000000..9f38dbc
--- /dev/null
+++ b/Lesson_4/My_script.py
@@ -0,0 +1,6 @@
+from sys import argv
+print(argv)
+if len(argv)<3:
+ print('Введите три параметра: 1.Выработка в часах, 2.Ставка в час, 3.Премия')
+else:
+ print(f'Salary= {int(argv[1]) * int(argv[2]) + int(argv[3])}')
\ No newline at end of file
diff --git a/Lesson_4/Test.py b/Lesson_4/Test.py
new file mode 100644
index 0000000..7111bdd
--- /dev/null
+++ b/Lesson_4/Test.py
@@ -0,0 +1 @@
+print(f'This is python script!')
diff --git a/New/.idea/.gitignore b/New/.idea/.gitignore
new file mode 100644
index 0000000..26d3352
--- /dev/null
+++ b/New/.idea/.gitignore
@@ -0,0 +1,3 @@
+# Default ignored files
+/shelf/
+/workspace.xml
diff --git a/New/.idea/vcs.xml b/New/.idea/vcs.xml
new file mode 100644
index 0000000..6c0b863
--- /dev/null
+++ b/New/.idea/vcs.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/New/archive/lesson2_1.py b/New/archive/lesson2_1.py
new file mode 100644
index 0000000..6c0cfd6
--- /dev/null
+++ b/New/archive/lesson2_1.py
@@ -0,0 +1,4 @@
+ЗАДАНИЕ1
+list_1=(1,1.3,'fine',False, {'price', 224, True}, [1,3,5,5.5,8,0.5,'oro'])
+for all_type in list_1:
+ print(type(all_type))
diff --git a/README.md b/README.md
index 42e11cd..4193ef4 100644
--- a/README.md
+++ b/README.md
@@ -1 +1 @@
-# Pyton
\ No newline at end of file
+# Python
diff --git a/lesson2_task_all.py b/lesson2_task_all.py
new file mode 100644
index 0000000..6365ba6
--- /dev/null
+++ b/lesson2_task_all.py
@@ -0,0 +1,54 @@
+
+#ЗАДАНИЕ1
+# list_1=(1,1.3,'fine',False, {'price', 224, True}, [1,3,5,5.5,8,0.5,'oro'])
+# for all_type in list_1:
+# print(type(all_type))
+
+#ЗАДАНИЕ2 (не работает как надо, не знаю почему)
+# list1 = input("Перечислите не менее 5 наименований:").split()
+# your_list = len(list1)
+# i=0
+# if your_list > 1:
+# while i < your_list - 1:
+# your_list[i], your_list[i+ 1] = your_list[i + 1], your_list[i]
+# i += 2
+#
+# print(your_list)
+
+#ЗАДАНИЕ3
+# month=input("Введите число месяца от 1 до 12:")
+# win = 'зима'
+# spr = 'весна'
+# sum = 'лето'
+# aut = 'осень'
+# dict_season= {'1':win , '2':win, '3':spr, '4':spr, '5':spr, '6':sum, '7':sum, '8':sum, '9':aut, '10':aut, '11':aut, '12':win}
+# print(dict_season[month])
+#
+# month_list=[win, win, spr, spr, spr, sum, sum, sum, aut, aut, aut, win,win]
+# print(month_list[int(month)])
+
+#ЗАДАНИЕ4
+# name_user= (input('Введите ФИО полностью:')).split()
+# for a, b in enumerate(name_user):
+# print(f'{a} - {b[:10]}')
+
+#ЗАДАНИЕ5
+rating = [7, 5, 3, 3, 2]
+user_rating = int(input('Оцените работу оператора от 1 до 10:'))
+answer = False
+for index, elem in enumerate(rating):
+ if user_rating > elem:
+ rating.insert(index, user_rating)
+ answer = True
+ break
+
+if not answer:
+ rating.append(user_rating)
+
+print(rating)
+
+
+
+
+
+
diff --git a/test.py b/test.py
new file mode 100644
index 0000000..7111bdd
--- /dev/null
+++ b/test.py
@@ -0,0 +1 @@
+print(f'This is python script!')
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265 5" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265 5"
new file mode 100644
index 0000000..6daf6c8
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265 5"
@@ -0,0 +1,36 @@
+#2. Напишите функцию, которая принимает на вход строку
+# - абсолютный путь до файла. Функция возвращает кортеж из трёх элементов: путь, имя файла, расширение файла.
+
+my_way= r'C:\Users\Pobeda\Desktop\geekbrains\Погружение в Python\Home_Task.py'
+def my_func(my_way):
+ *a, b = my_way.split("\\")
+ *c, d = b.split(".")
+ c = ".".join(c)
+ a = "/".join(a)
+ return a,c,d
+
+print(my_func(my_way))
+
+# 3. Напишите однострочный генератор словаря, который принимает на вход три списка одинаковой длины:
+# имена str, ставка int, премия str с указанием процентов вида “10.25%”. В результате получаем
+# словарь с именем в качестве ключа и суммой премии в качестве значения. Сумма рассчитывается как ставка
+# умноженная на процент премии
+
+
+names = ["Иван", "Николай", "Петр"]
+salarys = [125000, 96000, 109000]
+awards = ["10.0%", "25.00%", "13.00%"]
+my_dict = {names: salarys + ((salarys /100) * float(awards.replace('%', ' '))) for names, salarys, awards in zip(names, salarys, awards)}
+print(my_dict)
+
+
+
+# 4. Создайте функцию генератор чисел Фибоначчи
+a = int(input('Укажите количество элементов: '))
+
+def fib(x):
+ a, b = 0, 1
+ for i in range(x):
+ yield a
+ a, b = b, a + b
+print(list(fib(a)))
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_1" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_1"
new file mode 100644
index 0000000..806c8ec
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_1"
@@ -0,0 +1,65 @@
+# 2. Треугольник существует только тогда, когда сумма любых двух его сторон больше третьей.
+# Дано a, b, c - стороны предполагаемого треугольника. Требуется сравнить длину каждого
+# отрезка-стороны с суммой двух других. Если хотя бы в одном случае отрезок окажется больше
+# суммы двух других, то треугольника с такими сторонами не существует. Отдельно сообщить является
+# ли треугольник разносторонним, равнобедренным или равносторонним.
+
+# a = float(input("Введите длину стороны a: "))
+# b = float(input("Введите длину стороны b: "))
+# c = float(input("Введите длину стороны c: "))
+
+# if a + b <= c or a + c <= b or b + c <= a:
+# print("Треугольник не может существовать.")
+# else:
+# if a == b == c:
+# print("Треугольник является равносторонним.")
+# elif a == b or a == c or b == c:
+# print("Треугольник является равнобедренным.")
+# else:
+# print("Треугольник является разносторонним.")
+
+
+
+# 3. Напишите код, который запрашивает число и сообщает является ли оно простым или составным.
+# Используйте правило для проверки: “Число является простым, если делится нацело только на единицу
+# и на себя”. Сделайте ограничение на ввод отрицательных чисел и чисел больше 100 тысяч.
+
+# num = int(input("Введите число: "))
+
+# if num <= 1 or num > 100_000:
+# print("Число должно быть в диапазоне от 2 до 100_000.")
+# else:
+# is_prime = True
+# for i in range(2, num):
+# if num % i == 0:
+# is_prime = False
+# break
+# print('Простое число' if is_prime else 'Составное число')
+
+
+
+# 4. Программа загадывает число от 0 до 1000. Необходимо угадать число за 10 попыток.
+# Программа должна подсказывать «больше» или «меньше» после каждой попытки.
+
+# import random
+
+# num = random.randint(0, 1000)
+# guess = None
+# flag = False
+# attempts = 0
+
+# print("Загадано число от 0 до 1000. У тебя есть 10 попыток, чтобы его угадать.")
+
+# while attempts < 10:
+# guess = int(input("Введи свой вариант: "))
+# attempts += 1
+# if guess == num:
+# print(f"Ура! Ты угадал число {num} за {attempts} попыток.")
+# guess = True
+# break
+# elif guess < num:
+# print("Загаданное число больше.")
+# else:
+# print("Загаданное число меньше.")
+
+# print(f"У тебя закончились попытки. Загаданное число было {num}." if not flag else '')
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_2" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_2"
new file mode 100644
index 0000000..3f24889
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_2"
@@ -0,0 +1,66 @@
+# 2. Напишите программу, которая получает целое число и возвращает его шестнадцатеричное
+# строковое представление. Функцию hex используйтe для проверки своего результата.
+
+# def recalculation_number_system(number):
+# string_to_translate = '0123456789ABCDEF'
+# result = ''
+# notation = 16
+
+# while number > 0:
+# result = string_to_translate[number % notation] + result
+# number //= notation
+
+# return result
+
+# print('Итог - ', recalculation_number_system(int(input('Введите число для перевода в 16-ю систему счисления: '))))
+
+
+
+# 3. Напишите программу, которая принимает две строки вида “a/b” - дробь с числителем и знаменателем.
+# Программа должна возвращать сумму и произведение* дробей. Для проверки своего кода используйте модуль fractions.
+
+# def fraction_conversion(number):
+# numerator, denominator = number.split('/')
+# return int(numerator), int(denominator)
+
+
+# def reduction(nom, den):
+# def all_devs(number):
+# all_dev = set()
+# for dev in range(1, number // 1 + 1):
+# if not number % dev:
+# all_dev.add(dev)
+# return all_dev
+
+# nom_dev = all_devs(nom)
+# den_dev = all_devs(den)
+# reduct = max(nom_dev.intersection(den_dev))
+
+# return str(nom // reduct), str(den // reduct)
+
+
+# def summ(first_number, second_number):
+# first, second = fraction_conversion(first_number), fraction_conversion(second_number)
+
+# if first[1] == second[1]:
+# nom = first[0] + second[0]
+# den = first[1]
+# return '/'.join(reduction(num, den))
+# else:
+# nom = first[0] * second[1] + first[1] * second[0]
+# den = first[1] * second[1]
+# return '/'.join(reduction(nom, den))
+
+
+# def multi(first_number, second_number):
+# first, second = fraction_conversion(first_number), fraction_conversion(second_number)
+# nom = first[0] * second[0]
+# den = first[1] * second[1]
+# return '/'.join(reduction(nom, den))
+
+
+# first_number = input('Введите первую дробь в формате a/b: ')
+# second_number = input('Введите вторую дробь в формате a/b: ')
+
+# print(f'Summa: {summ(first_number, second_number)}')
+# print(f'Multiplication: {multi(first_number, second_number)}')
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_3" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_3"
new file mode 100644
index 0000000..d95ef9f
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_3"
@@ -0,0 +1,75 @@
+# Дан список повторяющихся элементов. Вернуть список с дублирующимися элементами.
+# В результирующем списке не должно быть дубликатов.
+
+my_list = ['День', 'Ночь', 'День', 1, 1, 51, '51', 1, '1']
+print(f"Мой список: {my_list}")
+duplicates = []
+
+for item in my_list:
+ if my_list.count(item) > 1 and item not in duplicates:
+ duplicates.append(item)
+
+print(f'Повторяющиеся элементы в списке: {duplicates}')
+
+# В большой текстовой строке подсчитать количество встречаемых слов и вернуть 10 самых частых.
+# Не учитывать знаки препинания и регистр символов. За основу возьмите любую статью из википедии
+# или из документации к языку.
+
+long_string = '''
+Сегодня королевский питон для любителей экзотических домашних животных одна из самых популярных змей. В природных условиях этот вид змей живет в западной части Африки. Излюбленное место его обитания — саванны и открытые леса неподалёку от воды, в которой змеи спасаются от жары, но все же основное время они проводят в норах. Королевский питон активен вечером и ночью, именно тогда он охотится на птиц, ящериц, мелких млекопитающих.
+
+В неволе при хорошем уходе, королевские питоны чувствуют себя очень комфортно, они не привередливы. Могут укусить, но это скорее редкость, чем обычное явление, так как к этой форме защиты прибегают только в экстренных случаях, обычно сворачиваются в тугой клубок — шарик, за это королевского питона также называют «шаровой питон».
+
+Продолжительность жизни: на воле — 10 лет, в домашних условиях живут до 30-40 лет.
+
+Половая зрелость — в возрасте 3-5 лет. Королевский питон один из тех, кто довольно легок в содержании, ухаживать за ним для любителей животных не составит особого труда. Для них необходим просторный стеклянный или пластиковый террариум, в юном возрасте ( пока не вырастут до 90 см) можно содержать и в 35-литровом террариуме, а затем, когда подрастут – стоит увеличить и место их жительства. Периметр их «квартиры» должен превышать длину жильцов как минимум в два раза, чтобы было, где развернуться.
+
+Обязательное условие содержания в домашних условиях этой змеи – это наличие крышки у террариума, вы ведь не хотите, чтобы ваш питомец отправился гулять по комнате. Кроме того крышка должна иметь отверстия для обеспечения вентиляции. Для подстилки можно использовать бумажные полотенца, газету, искусственный субстрат, а вот древесные опилки вам для этой цели точно не подойдут.
+
+Так как в природе питон королевский любит прятаться, то и в неволе нужно создать для него такие укромные места. Оптимальная температура для жизнедеятельности питона – 25-29 оC днем, а ночью – 20-23 оС. Для обогрева можно использовать греющие коврики. Для купания питомца нужно сделать в его жилище небольшой водоем, следите, чтобы вода в нем всегда была чистой. Особый момент в уходе за королевскими питонами – питание. Их можно кормить замороженными мышами, крысами, цыплятами, хомяками, живыми животными можно кормить при условии их предварительного оглушения, чтобы избежать травм. Периодичность кормлений зависит от возраста и размера питона. Для молодых - 1 раз в пять дней, взрослым достаточно 1 раза в 10 дней. И не стоит забывать о витаминных добавках, чтобы ваш питомец получал все необходимые для здоровья вещества.
+'''
+
+print(long_string)
+
+symbols="1234567890-—/\[]().:><,!?""''"
+for symbol in symbols:
+ big_string = long_string.replace(symbol, " ")
+big_string = long_string.lower()
+my_list = long_string.split()
+my_dict = dict()
+for word in my_list:
+ if my_dict.get(word) == None: my_dict[word] = 1
+ else: my_dict[word] += 1
+
+sorted_dict = sorted(my_dict.items(), key=lambda x: x[1], reverse=True)
+print(sorted_dict[:10])
+
+
+# Создайте словарь со списком вещей для похода в качестве ключа и их массой в качестве значения.
+# Определите какие вещи влезут в рюкзак передав его максимальную грузоподъёмность.
+# Достаточно вернуть один допустимый вариант.*Верните все возможные варианты комплектации рюкзака.
+
+import random
+my_items = { 'палатка': 2500,
+ 'спальный мешок': 1000,
+ 'мангал': 700,
+ 'шампура': 700,
+ 'спички': 10,
+ 'уголь': 8000,
+ 'рыболовные снасти': 500,
+ 'складной стул': 300
+ }
+
+max_weight = 10000
+count = 0
+result = []
+while count <= max_weight:
+ key, value = random.choice(list(my_items.items()))
+ if key in result:
+ continue
+ if count + value > max_weight:
+ break
+ count += value
+ result += (str(key), str(value))
+
+print(f'{result} = {count}')
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_4" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_4"
new file mode 100644
index 0000000..c5841f0
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_4"
@@ -0,0 +1,41 @@
+'''
+Напишите функцию для транспонирования матрицы.
+'''
+
+
+def transpose_matrix(matrix):
+ rows = len(matrix)
+ cols = len(matrix[0])
+ transpose = [[0 for j in range(rows)] for i in range(cols)]
+ for i in range(rows):
+ for j in range(cols):
+ transpose[j][i] = matrix[i][j]
+ return transpose
+
+
+def print_(matrix_):
+ for row in matrix_:
+ for x in row:
+ print(x, end=" ")
+ print()
+
+
+my_matrix = [[10, 20], [35, 45], [56, 35], [35, 76]]
+print_(my_matrix)
+print()
+print_(transpose_matrix(my_matrix))
+
+'''
+Напишите функцию принимающую на вход только ключевые параметры и возвращающую словарь, где ключ — значение переданного
+аргумента, а значение — имя аргумента. Если ключ не хешируем, используйте его строковое представление.
+'''
+def my_func(**kwargs):
+ my_dict = dict()
+ for key, value in kwargs.items():
+ if isinstance(value, (list, dict, set)):
+ value = str(value)
+ my_dict[value] = key
+ return my_dict
+
+
+print(my_func(компании=['Рога', 'Копыта', 'Хвосты'], учредители={1: 'Петров', 2: 'Сидоров'}))
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_6_2" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_6_2"
new file mode 100644
index 0000000..7de7c79
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_6_2"
@@ -0,0 +1,37 @@
+#В модуль с проверкой даты добавьте возможность запуска в терминале с передачей даты на проверку.
+__all__ = ['data_is_true']
+from sys import argv
+def _is_leap(year:int)->bool:
+ return year%4 == 0 and year%100 !=0 or year%400 == 0
+
+def data_is_true(data:str)->bool:
+ day, month, year = list(map(int, data.split('.')))
+ check_days = {
+ 1:31,
+ 2:28 if _is_leap(year) else 28,
+ 3:31,
+ 4:30,
+ 5:31,
+ 6:30,
+ 7:31,
+ 8:31,
+ 9:30,
+ 10:31,
+ 11:30,
+ 12:31
+ }
+
+ max_day = check_days.get(month)
+ if not max_day or (year > 9999 or year < 1) or (max_day < day or day < 1):
+ return False
+ else:
+ return True
+
+
+if __name__=='__main__':
+ if len(argv) == 2:
+ _, date = argv
+ print(f"{date} {data_is_true(date)}")
+ else:
+ date = input('Введите дату в формате DD.MM.YYYY: ')
+ print(f"{date} {data_is_true(date)}")
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_7_2" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_7_2"
new file mode 100644
index 0000000..a6ad1a0
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_7_2"
@@ -0,0 +1,32 @@
+'''
+Напишите функцию группового переименования файлов. Она должна:
+a. принимать параметр желаемое конечное имя файлов. При переименовании в конце имени добавляется порядковый номер.
+b. принимать параметр количество цифр в порядковом номере.
+c. принимать параметр расширение исходного файла. Переименование должно работать только для этих файлов внутри каталога.
+d. принимать параметр расширение конечного файла.
+e. принимать диапазон сохраняемого оригинального имени. Например для диапазона [3, 6] берутся буквы с 3 по 6 из
+исходного имени файла. К ним прибавляется желаемое конечное имя, если оно передано. Далее счётчик файлов и расширение.
+'''
+
+import os
+from pathlib import Path
+
+
+def files_rename(path_, source_ext, fin_ext, range_=[0, 0], numc=3, new_name="new"):
+ my_files = [file for file in os.listdir(path_) if file.lower().endswith(source_ext)]
+ count = 1
+
+ for file in my_files:
+ file_name, ext = os.path.splitext(file)
+ file_name = file_name[range_[0] - 1:range_[1]] + new_name
+ new_file = f"{file_name}{str(counter).zfill(numc)}.{fin_ext}"
+ os.rename(os.path.join(path_, file), os.path.join(path_, new_file))
+ count += 1
+
+
+if __name__ == "__main__":
+ my_path = Path().cwd() /'geekbrains'/ "Погружение в Python" / "Home_Task_7_2"
+ print(my_path)
+ print(f"{my_path=}")
+ print(f"files: {os.listdir(my_path)}")
+ files_rename(my_path, "txt", "txt", numc=2, new_name="new", range_=[1, 2])
diff --git "a/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_8" "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_8"
new file mode 100644
index 0000000..ccd1102
--- /dev/null
+++ "b/\320\237\320\276\320\263\321\200\321\203\320\266\320\265\320\275\320\270\320\265_8"
@@ -0,0 +1,55 @@
+'''
+
+Напишите функцию, которая получает на вход директорию и рекурсивно обходит её и все вложенные директории.
+Результаты обхода сохраните в файлы json, csv и pickle.
+Для дочерних объектов указывайте родительскую директорию.
+Для каждого объекта укажите файл это или директория.
+Для файлов сохраните его размер в байтах, а для директорий размер файлов в ней с учётом всех вложенных файлов и директорий.
+'''
+
+import json
+import os
+import csv
+import pickle
+from os.path import join, getsize
+
+
+def my_directory(file_path):
+ for root, dirs, files in os.walk(file_path):
+ folder = root.split('\\')
+
+
+ print(f'В директории {folder[-1]}', end="\n")
+ if not dirs:
+ print("В этой папке нет директорий")
+ else:
+
+ print(f'Директория(и) {dirs}', end="\n")
+ print(f'Файл(ы) {files}', end="\n")
+ print(sum(getsize(join(root, name)) for name in files), end="\n")
+
+
+
+ str_json = " ".join(files)
+ to_json = {root: dirs, 'files': str_for_json, 'Size': sum(getsize(join(root, name)) for name in files) }
+ with open('to_json.json', 'a') as f:
+ json.dump(to_json, f, sort_keys=True, indent=2)
+
+ with open('for_csv.csv', 'a', newline='') as csvfile:
+ fieldnames = ['files', 'dirs']
+ writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
+
+ writer.writeheader()
+ writer.writerow({'files': str_json, 'dirs': dirs})
+
+
+ with open('data.pickle', 'wb') as f:
+ pickle.dump(to_json, f)
+
+ with open('data.pickle', 'rb') as f:
+ ...
+ data_new = pickle.load(f)
+ print(data_new)
+
+
+my_directory(os.curdir)