QwarkDev

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

Feb 25th, 2021
953
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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.  
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×