SHARE
TWEET

Hexlet_python

Dodik_Parahodik Feb 26th, 2020 (edited) 90 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. Деструктуризация
  2.  
  3. Обращение по индексу, это не самый удобный способ работы с кортежами. Дело в том, что кортежи часто содержат значения разных типов, и помнить, по какому индексу что лежит — очень непросто. Но есть способ лучше! Как мы кортеж собираем, так его можно и разобрать:
  4.  
  5. name_and_age = ('Bob', 42)
  6.  
  7. (name, age) = name_and_age
  8. name  # 'Bob'
  9. age   # 42
  10.  
  11. Именно таким способом принято получать и сразу разбирать значения, которые возвращает функция (если таковая возвращает несколько значений, конечно):
  12.  
  13. (quotient, modulo) = div_mod(13, 4)
  14.  
  15. Соответственно кортеж из одного элемента нужно разбирать так:
  16.  
  17. (a,) = (42,)
  18. a  # 42
  19.  
  20. Если же после имени переменной не поставить запятую, то синтаксической ошибки не будет, но в переменную a кортеж запишется целиком, т.е. ничего не распакуется. Всегда помните о запятых!
  21.  
  22. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  23. def fibRecGood(n,c,p):
  24.     global gCount
  25.     gCount+=1
  26.     if (n==1):
  27.         return c
  28.     else:
  29.         return fibRecGood(n-1,c+p,c)
  30.  
  31. def fibRecBad(n):
  32.     global gCount
  33.     gCount+=1
  34.     if (n<=2):
  35.         return 1
  36.     else:
  37.         return fibRecBad(n-1)+fibRecBad(n-2)
  38.        
  39.        
  40. # Тест
  41.  
  42. gCount=0
  43. f=fibRecGood(20,1,0)
  44. print(f)
  45. print("counter="+str(gCount))
  46.  
  47. gCount=0
  48. f=fibRecBad(20)
  49. print(f)
  50. print("counter="+str(gCount))
  51.  
  52. ~~~~~~~~~
  53. Fuzzbuzz_naive_still_not_the_worst
  54. for i in range(1, 101):
  55.     s = ''
  56.     if i % 3 == 0:
  57.         s = 'Fizz'
  58.     if i % 5 == 0:
  59.         s += 'Buzz'
  60.     if not s:
  61.         s = str(i)
  62.     print (s)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Top