Advertisement
QwarkDev

Python ДЗ-2 Вариант 26

Feb 25th, 2021
1,166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.37 KB | None | 0 0
  1.  
  2. import math
  3.  
  4. # var 26
  5. # timofeev ivan
  6.  
  7. def func1(arr):
  8.     if arr[1] == 1978:
  9.         return 9
  10.     elif arr[1] == 1992:
  11.         if arr[0] == 1969:
  12.             if arr[2] == 'boo':
  13.                 return 0
  14.             elif arr[2] == 'nginx':
  15.                 return 1
  16.             elif arr[2] == 'html':
  17.                 return 2
  18.         elif arr[0] == 1995:
  19.             if arr[2] == 'boo':
  20.                 return 3
  21.             elif arr[2] == 'nginx':
  22.                 return 4
  23.             elif arr[2] == 'html':
  24.                 return 5
  25.         elif arr[0] == 1957:
  26.             if arr[2] == 'boo':
  27.                 return 6
  28.             elif arr[2] == 'nginx':
  29.                 return 7
  30.             elif arr[2] == 'html':
  31.                 return 8
  32.  
  33. def func2(x):
  34.     flagA = int("00000000000000001111111111111111", 2)
  35.     flagB = int("00000000000111110000000000000000", 2)
  36.     flagC = int("00000001111000000000000000000000", 2)
  37.     flagD = int("00000010000000000000000000000000", 2)
  38.     flagE = int("00000100000000000000000000000000", 2)
  39.     flagF = int("01111000000000000000000000000000", 2)
  40.     flagG = int("10000000000000000000000000000000", 2)
  41.  
  42.     infoA = x & flagA
  43.     infoB = (x & flagB) >> 16
  44.     infoC = (x & flagC) >> (16 + 5)
  45.     infoD = (x & flagD) >> (16 + 5 + 4)
  46.     infoE = (x & flagE) >> (16 + 5 + 4 + 1)
  47.     infoF = (x & flagF) >> (16 + 5 + 4 + 1 + 1)
  48.     infoG = (x & flagG) >> (16 + 5 + 4 + 1 + 1 + 4)
  49.  
  50.     result = (infoA << 11) | (infoB << 1) | (infoC << 6) | (infoD << 10) | (infoE << 31) | (infoF << 27) | (infoG << 0)
  51.  
  52.     return format(result, '#04x')
  53.  
  54. def func3(arr):
  55.     buffer = []
  56.     result = []
  57.  
  58.     for item in arr:
  59.         newItem = ['NAME', 'EMAIL', 'COEF', 'TRUE/FALSE']
  60.         splited = item[0].split(' ')
  61.  
  62.         newItem[0] = splited[2] + ', ' + splited[0][0] + '.' + splited[1][0] + '.'
  63.         newItem[1] = item[2].split(':')[0]
  64.  
  65.         newItem[2] = round(float(item[3]), 1)
  66.  
  67.         if (item[2].split(':')[1] == 'да'):
  68.             newItem[3] = 'true'
  69.         else:
  70.             newItem[3] = 'false'
  71.  
  72.         buffer.append(newItem)
  73.  
  74.     # удаление дубликатов
  75.     for item in buffer:
  76.         if item not in result:
  77.             result.append(item)
  78.  
  79.     return result
  80.  
  81. def printList(arr):
  82.     for item in arr:
  83.         print(item[0], end=' ')
  84.         print(item[1], end=' ')
  85.         print(item[2], end=' ')
  86.         print(item[3])
  87.  
  88. # tests
  89. print('test of func1:')
  90. print(func1([1969, 1992, 'boo', 2013]))
  91. print(func1([1995, 1978, 'boo', 2002]))
  92.  
  93. print('\ntest of func2:')
  94. print(func2(0xca73b265))
  95. print(func2(0x0183f9b7))
  96.  
  97. print('\ntest of func3:\n')
  98.  
  99. arr = [
  100.     ['Петр Д. Четевов', 'Петр Д. Четевов', 'cetevov20[at]yandex.ru:да', '0.236'],
  101.     ['Тамерлан Н. Лашин', 'Тамерлан Н. Лашин', 'tamerlan35[at]yandex.ru:нет', '0.706'],
  102.     ['Тамерлан Н. Дедак', 'Тамерлан Н. Дедак', 'tamerlan45[at]mail.ru:нет', '0.367'],
  103.     ['Петр Д. Четевов', 'Петр Д. Четевов', 'cetevov20[at]yandex.ru:да', '0.236'],
  104.     ['Всеволод Б. Гедачук', 'Всеволод Б. Гедачук', 'vsevolod74[at]rambler.ru:нет', '0.912']
  105. ]
  106.  
  107. newArr = func3(arr)
  108. print('До преобразований')
  109. printList(arr)
  110. print('\nПосле преобразований')
  111. printList(newArr)
  112.  
  113.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement