Skip to content
Prev Previous commit
Next Next commit
HW 5: All levels are done. Added pwd command and changed ls function.
  • Loading branch information
larcefox committed Aug 29, 2019
commit 6daba6a7f2860c17c2d96277f32b9360c037727a
1 change: 1 addition & 0 deletions lesson03/home_work/hw03_hard.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
# Вывод: 1 1/3



# Задание-2:
# Дана ведомость расчета заработной платы (файл "data/workers").
# Рассчитайте зарплату всех работников, зная что они получат полный оклад,
Expand Down
34 changes: 34 additions & 0 deletions lesson04/home_work/hw04_hard.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,29 @@

# Суть сложности hard: Решите задачу в одну строку

matrix_transposition = list(zip(*matrix))
print (matrix_transposition)

''' Транспонирование матрицы
[(1, 3, 0),
(0, 4, 4),
(8, 1, 2)]
'''

matrix_rotate = list(zip(*matrix[::-1]))
print (matrix_rotate)

''' Поворот матрицы
[(0, 3, 1),
(4, 4, 0),
(2, 1, 8)]
'''
# Задание-2:
# Найдите наибольшее произведение пяти последовательных цифр в 1000-значном числе.
# Выведите произведение и индекс смещения первого числа последовательных 5-ти цифр.
# Пример 1000-значного числа:
import re

number = """
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
Expand All @@ -39,6 +58,21 @@
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450"""

number = [int(itm) for itm in re.findall(r'\d',number)]

max_mul5 = 0

for num, char in enumerate(number):

if num == (len(number) - 5):
break

mul5 = number[num] * number[num + 1] + number[num + 2] + number[num + 3] + number[num + 4]

if mul5 > max_mul5:
max_mul5 = mul5
index = num
print(max_mul5, index)

# Задание-3 (Ферзи):
# Известно, что на доске 8×8 можно расставить 8 ферзей так, чтобы они не били
Expand Down
15 changes: 12 additions & 3 deletions lesson05/home_work/hw05_hard.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import os
import sys
import shutil

print('sys.argv = ', sys.argv)


Expand All @@ -23,6 +24,7 @@ def print_help():
print("cp <file_name> - создает копию указанного файла")
print("rm <file_name> - удаляет указанный файл (запросить подтверждение операции)")
print("cd <full_path or relative_path> - меняет текущую директорию на указанную")
print("pwd - отображение полного пути текущей директории")


def make_dir():
Expand All @@ -47,7 +49,7 @@ def file_copy():
return
file_path = os.path.join(os.getcwd(), fs_object_name)
try:
shutil.copy2(file_path)
shutil.copy2(file_path, f'{file_path}_copy')
print('файл {} создан'.format(fs_object_name))
except FileExistsError:
print('файл {} уже существует'.format(fs_object_name))
Expand All @@ -57,7 +59,7 @@ def file_drop():
if not fs_object_name:
print("Необходимо указать имя файла вторым параметром")
return
if input(f'Удалить файл {fs_object_name}? y/n').lower() == 'y':
if input(f'Удалить файл {fs_object_name}? y/n \n').lower() == 'y':
file_path = os.path.join(os.getcwd(), fs_object_name)

if os.path.exists(file_path):
Expand All @@ -67,6 +69,8 @@ def file_drop():
print('файл {} не существует'.format(fs_object_name))
else:
return


def change_dir():

if not fs_object_name:
Expand All @@ -80,6 +84,10 @@ def change_dir():
else:
print('директория {} не существует'.format(fs_object_name))


def list_fs_object():
print(os.listdir(os.getcwd()))

def abs_path():
print(os.path.abspath('.'))

Expand All @@ -90,7 +98,8 @@ def abs_path():
"cp": file_copy,
"rm": file_drop,
"cd": change_dir,
"ls": abs_path,
"pwd": abs_path,
"ls": list_fs_object,

}

Expand Down