summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore2
-rw-r--r--day1/task1/task1.py37
-rw-r--r--day1/task1/task1_data.txt1
-rw-r--r--day1/task2/task2.py36
-rw-r--r--day1/task2/task2_data_1.txt1
-rw-r--r--day1/task2/task2_data_2.txt4
-rw-r--r--day1/task3/task3.py31
-rw-r--r--day1/task4/task4.py60
-rw-r--r--day1/task4/task4_data.html13
-rw-r--r--day1/task5/task5.py20
-rw-r--r--day1/task5/task5_data.txt1
-rw-r--r--day2/task1/task1.py9
-rw-r--r--day2/task2/task2.py12
13 files changed, 226 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 238eac7..ae945fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
.idea/
-venv/ \ No newline at end of file
+venv/
diff --git a/day1/task1/task1.py b/day1/task1/task1.py
new file mode 100644
index 0000000..a763a97
--- /dev/null
+++ b/day1/task1/task1.py
@@ -0,0 +1,37 @@
+import os
+
+CHUNK_SIZE = 1024
+
+character = input('Введите один символ: ')
+while len(character) != 1:
+ character = input('Введите РОВНО один символ: ')
+
+
+path = os.path.join(os.getcwd(), 'task1_data.txt')
+
+
+try:
+ f = open(path)
+
+except FileNotFoundError as e:
+ exception_path = str(e).strip('[Errno 2] No such file or directory:')[1:-1]
+ print(f'"{exception_path}" не существует')
+
+except PermissionError as e:
+ exception_path = str(e).strip('[Errno 13] Permission denied:')[1:-1]
+ print(f'Файл "{exception_path}" не доступен для чтения/записи')
+
+except IsADirectoryError as e:
+ exception_path = str(e).strip('[Errno 21] Is a directory:')[1:-1]
+ print(f'"{exception_path}" является директорией')
+
+else:
+ data = f.read(CHUNK_SIZE)
+ i = data.count(character)
+ while data:
+ data = f.read(CHUNK_SIZE)
+ i += data.count(character)
+
+ f.close()
+
+ print(f'В данном файле {i} символов "{character}"')
diff --git a/day1/task1/task1_data.txt b/day1/task1/task1_data.txt
new file mode 100644
index 0000000..09dcdd3
--- /dev/null
+++ b/day1/task1/task1_data.txt
@@ -0,0 +1 @@
+jskdabfkjhaFVADSKNCA coiojAFHAIDjjakhbv;oAKJVBHLSA.C ASBJ BAJ VBASDJ
diff --git a/day1/task2/task2.py b/day1/task2/task2.py
new file mode 100644
index 0000000..593df5b
--- /dev/null
+++ b/day1/task2/task2.py
@@ -0,0 +1,36 @@
+import os
+
+
+CHUNK_SIZE = 1024
+
+write_path = os.path.join(os.getcwd(), 'task2_data_1.txt')
+read_path = os.path.join(os.getcwd(), 'task2_data_2.txt')
+
+try:
+ write_file = open(write_path, 'a')
+ read_file = open(read_path)
+
+except FileNotFoundError as e:
+ exception_path = str(e).strip('[Errno 2] No such file or directory:')[1:-1]
+ print(f'"{exception_path}" не существует')
+
+except PermissionError as e:
+ exception_path = str(e).strip('[Errno 13] Permission denied:')[1:-1]
+ print(f'Файл "{exception_path}" не доступен для чтения/записи')
+
+except IsADirectoryError as e:
+ exception_path = str(e).strip('[Errno 21] Is a directory:')[1:-1]
+ print(f'"{exception_path}" является директорией')
+
+else:
+ write_file.write('\n\n\n')
+
+ data = read_file.read(CHUNK_SIZE)
+ write_file.write(data)
+ while data:
+ data = read_file.read(CHUNK_SIZE)
+ write_file.write(data)
+
+ # пожалуйста не мучайте меня я не хочу писать еще три expept'a
+ os.rename('task2_data_1.txt', 'task2_data_all.txt')
+ os.remove('task2_data_2.txt')
diff --git a/day1/task2/task2_data_1.txt b/day1/task2/task2_data_1.txt
new file mode 100644
index 0000000..60a2f18
--- /dev/null
+++ b/day1/task2/task2_data_1.txt
@@ -0,0 +1 @@
+khasdjkgkjdasghdsajkfvadskghha
diff --git a/day1/task2/task2_data_2.txt b/day1/task2/task2_data_2.txt
new file mode 100644
index 0000000..ae1e9a8
--- /dev/null
+++ b/day1/task2/task2_data_2.txt
@@ -0,0 +1,4 @@
+f;ldasjgkjasdngjasdbjklfkaSMGG'
+ASDDGN
+DPAJGN
+FKLADSKF'ADSNLGNADSL;JGLJ
diff --git a/day1/task3/task3.py b/day1/task3/task3.py
new file mode 100644
index 0000000..2dae428
--- /dev/null
+++ b/day1/task3/task3.py
@@ -0,0 +1,31 @@
+import os
+
+
+file_path = input()
+
+if os.access(file_path, os.W_OK):
+ try:
+ open(file_path)
+ except IsADirectoryError:
+ print(f'Файл "{file_path}" является директорией. Завершаем работу...')
+ else:
+ print(f'Файл "{file_path}" существует и доступен для записи. Удаляем...')
+ os.remove(file_path)
+
+else:
+ try:
+ f = open(file_path, 'w', encoding='utf-8')
+ except PermissionError:
+ print(f'Путь "{file_path}" не доступен для записи.')
+ print('Завершаем работу...')
+
+ else:
+ f.write('Ало здравствуйте. Alo zdravstvuite.')
+
+ with open(file_path, encoding='cp1251') as f:
+ print(f.read())
+
+ with open(file_path, encoding='utf-8') as f:
+ print(f.read())
+
+ os.remove(file_path)
diff --git a/day1/task4/task4.py b/day1/task4/task4.py
new file mode 100644
index 0000000..2583cb4
--- /dev/null
+++ b/day1/task4/task4.py
@@ -0,0 +1,60 @@
+import string
+import re
+import os
+
+
+html_path = os.path.join(os.getcwd(), 'task4_data.html')
+
+folder_path = ''
+
+# Не знаю зачем, но в задании так написано
+try:
+ os.mkdir('../htmls')
+ folder_path = '../htmls'
+except PermissionError:
+ print('Директория на уровень выше не доступна для записи.')
+ print('Создаем папку в текущей директории...')
+ try:
+ os.mkdir('htmls')
+ folder_path = 'htmls'
+ except PermissionError:
+ print('Текущая директория не доступна для записи. Завершаем работу...')
+ quit()
+
+try:
+ html_file = open(html_path)
+ os.chdir(folder_path)
+ ascii_file = open('ascii_cleared.html', 'w', encoding='utf-8')
+ body_file = open('body_cleared.html', 'w', encoding='utf-8')
+
+except FileNotFoundError as e:
+ exception_path = str(e).strip('[Errno 2] No such file or directory:')[1:-1]
+ print(f'"{exception_path}" не существует')
+
+except PermissionError as e:
+ exception_path = str(e).strip('[Errno 13] Permission denied:')[1:-1]
+ print(f'Файл "{exception_path}" не доступен для чтения/записи')
+
+except IsADirectoryError as e:
+ exception_path = str(e).strip('[Errno 21] Is a directory:')[1:-1]
+ print(f'"{exception_path}" является директорией')
+
+else:
+ data = html_file.read()
+
+ cleared_data = ''.join(filter(lambda char: char in string.printable, data))
+ ascii_file.write(cleared_data)
+
+ ###################
+
+ body_cleared = re.sub(
+ r'<BODY>(.|\n)*?</BODY>',
+ lambda match: match.string[match.start(): match.end()].replace('\n', ''),
+ data
+ )
+
+ body_file.write(body_cleared)
+
+ html_file.close()
+ ascii_file.close()
+ body_file.close()
diff --git a/day1/task4/task4_data.html b/day1/task4/task4_data.html
new file mode 100644
index 0000000..4357c07
--- /dev/null
+++ b/day1/task4/task4_data.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<HTML>
+ <HEAD>
+ <TITLE>
+ A Small Hello. Это по идеи заголовок.
+ </TITLE>
+ </HEAD>
+<BODY>
+ <H1>Hi я интерактивная страница</H1>
+ <P>I want to be inline, in my source code</P>
+ <P>This is very minimal "hello world" HTML document.</P>
+</BODY>
+</HTML>
diff --git a/day1/task5/task5.py b/day1/task5/task5.py
new file mode 100644
index 0000000..2869247
--- /dev/null
+++ b/day1/task5/task5.py
@@ -0,0 +1,20 @@
+import os
+
+read_path = os.path.join(os.getcwd(), 'task5_data.txt')
+write_path = os.path.join(os.getcwd(), 'task5_data_new.txt')
+
+if not os.access(read_path, os.R_OK):
+ print('Файл "{}" не доступен для чтения'.format(read_path))
+elif not os.access(write_path, os.W_OK):
+ print('Файл "{}" не доступен для записи'.format(write_path))
+
+else:
+ with open(read_path) as f:
+ print(f.read())
+
+ with open('task5_data.txt', 'rb') as input_byte, open(write_path, 'wb') as out:
+ char = input_byte.read(1)
+ while char:
+ number = int(char.hex(), 16)
+ out.write(bytes([number ^ 2]))
+ char = input_byte.read(1)
diff --git a/day1/task5/task5_data.txt b/day1/task5/task5_data.txt
new file mode 100644
index 0000000..2dfc0ba
--- /dev/null
+++ b/day1/task5/task5_data.txt
@@ -0,0 +1 @@
+12йцas \ No newline at end of file
diff --git a/day2/task1/task1.py b/day2/task1/task1.py
new file mode 100644
index 0000000..3956509
--- /dev/null
+++ b/day2/task1/task1.py
@@ -0,0 +1,9 @@
+lst = [1, 5445, 5445.0, 1.56, "1.90", "сорок_два", False, "", True]
+
+for val in lst:
+ if isinstance(val, int):
+ print(f'Обьект {repr(val)} является типом int')
+ elif isinstance(val, float):
+ print(f'Обьект {repr(val)} является типом float')
+ else:
+ print(f'Обьект {repr(val)} не является численным типом')
diff --git a/day2/task2/task2.py b/day2/task2/task2.py
new file mode 100644
index 0000000..40977cd
--- /dev/null
+++ b/day2/task2/task2.py
@@ -0,0 +1,12 @@
+lst = [1, 5445, 5445.0, 1.56, "1.90", "сорок_два", False, "", True]
+
+
+def to_num(val):
+ try:
+ return float(val)
+ except ValueError:
+ return 0
+
+
+sum_ = sum(map(to_num, lst))
+print(f'Сумма всех численных данных в списке равна {sum_}')