Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Деструктуризация
- Обращение по индексу, это не самый удобный способ работы с кортежами. Дело в том, что кортежи часто содержат значения разных типов, и помнить, по какому индексу что лежит — очень непросто. Но есть способ лучше! Как мы кортеж собираем, так его можно и разобрать:
- name_and_age = ('Bob', 42)
- (name, age) = name_and_age
- name # 'Bob'
- age # 42
- Именно таким способом принято получать и сразу разбирать значения, которые возвращает функция (если таковая возвращает несколько значений, конечно):
- (quotient, modulo) = div_mod(13, 4)
- Соответственно кортеж из одного элемента нужно разбирать так:
- (a,) = (42,)
- a # 42
- Если же после имени переменной не поставить запятую, то синтаксической ошибки не будет, но в переменную a кортеж запишется целиком, т.е. ничего не распакуется. Всегда помните о запятых!
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- def fibRecGood(n,c,p):
- global gCount
- gCount+=1
- if (n==1):
- return c
- else:
- return fibRecGood(n-1,c+p,c)
- def fibRecBad(n):
- global gCount
- gCount+=1
- if (n<=2):
- return 1
- else:
- return fibRecBad(n-1)+fibRecBad(n-2)
- # Тест
- gCount=0
- f=fibRecGood(20,1,0)
- print(f)
- print("counter="+str(gCount))
- gCount=0
- f=fibRecBad(20)
- print(f)
- print("counter="+str(gCount))
- ~~~~~~~~~
- Fuzzbuzz_naive_still_not_the_worst
- for i in range(1, 101):
- s = ''
- if i % 3 == 0:
- s = 'Fizz'
- if i % 5 == 0:
- s += 'Buzz'
- if not s:
- s = str(i)
- print (s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement