diff --git a/DZ.2 b/DZ.2 new file mode 100644 index 0000000..adde5bf --- /dev/null +++ b/DZ.2 @@ -0,0 +1,39 @@ +import math +import sys +path1 = r'C:\Users\User\PycharmProjects\pythonProject\Prov.py.lzw' +path2 = r'C:\Users\User\PycharmProjects\pythonProject\out_fail' + +if not (2 <= len(sys.argv) <= 3): + print('Usage: ', sys.argv[0], 'input_file') +outpath = sys.argv[2] if len(sys.argv) == 3 else sys.argv[1] + '.lzw' + +with open(sys.argv[1], 'rb') as file: + data = file.read() + +dictionary = {i:(i,) for i in range(256)} +sequens = list() +i = 0 +with open(outpath, 'wb') as file: + while i < len(data): + if sequens == []: + n = len(dictionary) + else: + n = len(dictionary) + 1 + nbits = math.ceil(math.log2(n)) + nbytes = nbits // 8 + if nbits % 8 != 0: + nbytes += 1 + slice_dan = data[i : i + nbytes] + sym = int.from_bytes(slice_dan, 'little') + if sym == len(dictionary): + ch = len(sequens) - 1 if len(sequens) > 1 else 1 + new_sequence = sequens + sequens[:ch] + else: + new_sequence = list(dictionary[sym]) + file.write(bytearray(new_sequence)) + if sequens == []: + pass + else: + dictionary[len(dictionary)] = tuple(sequens + new_sequence[-1:]) + i += nbytes + sequens = new_sequence diff --git a/task1.py b/task1.py new file mode 100644 index 0000000..5faa170 --- /dev/null +++ b/task1.py @@ -0,0 +1,5 @@ +b = input().split(' ') +sum = 0 +for i in b: + sum = sum + float(i) +print(sum) diff --git a/task2.py b/task2.py new file mode 100644 index 0000000..7e0d5b3 --- /dev/null +++ b/task2.py @@ -0,0 +1,15 @@ +stroka = input() +while True: + str_sim2 = str() + a = '' + a = input() + if a == '': + break + sim1, sim2 = a.split('->')[0], a.split('->')[1] + for i in stroka: + if i == sim1: + str_sim2 = str_sim2 + sim2 + else: + str_sim2 = str_sim2 + i + stroka = str_sim2 + print(stroka) diff --git a/task3.py b/task3.py new file mode 100644 index 0000000..e0e846e --- /dev/null +++ b/task3.py @@ -0,0 +1,6 @@ +c = input().split(' ') +stroka = str() +for i in c: + m = int(abs(float(i))) + stroka = stroka + str(m) + ' ' +print(stroka[:-1]) diff --git a/task4.py b/task4.py new file mode 100644 index 0000000..066a043 --- /dev/null +++ b/task4.py @@ -0,0 +1,5 @@ +a = input().split(' ') +summa = int() +for i in a: + summa = summa + float(i) ** 2 +print(summa) diff --git a/task5.py b/task5.py new file mode 100644 index 0000000..320c0d7 --- /dev/null +++ b/task5.py @@ -0,0 +1,12 @@ +alfavit = "abcdefghijklmnopqrstuvwxyz" +a = input().split(' ') +kod = int(input()) +b = ''.join(a) +stroka = '' +for i in b: + index = alfavit.find(i) + k = index + kod + while k >= len(alfavit): + k = k - len(alfavit) + stroka = stroka + alfavit[k] +print(stroka))