Мартин обнови решението на 29.03.2015 16:22 (преди над 9 години)
+def fibonacci():
+ first = 0
+ second = 1
+ while True:
+ yield second
+ second = first + second
+ first = second - first
+
+
+def is_Prime(number):
+ interval = range(2, number // 2 + 1)
+ result = [count for count in interval if not number % count]
+ return len(result) == 0
+
+
+def primes():
+ prime = 2
+ while True:
+ if is_Prime(prime):
+ yield prime
+ prime += 1
+
+
+def alphabet(code='lat', letters=''):
+ if len(letters) != 0:
+ return iter(letters)
+
+ if code == 'bg':
+ return (chr(element) for element in range(1072, 1104))
+
+ return (chr(element) for element in range(97, 123))
+
+
+def intertwined_sequences(data):
+ functions = dict()
+ elements = iter(data)
+
+ while True:
+ current = next(elements)
+ sequence = current['sequence']
+
+ if sequence not in functions:
+ if sequence == 'alphabet':
+ functions['alphabet'] = alphabet(current['code'])
+ elif sequence == 'fibonacci':
+ functions['fibonacci'] = fibonacci()
+ elif sequence == 'primes':
+ functions['primes'] = primes()
+
+ for count in range(current['length']):
+ yield next(functions[current['sequence']])
- 'ы' и 'э' са букви от кирилицата, но не и от българската азбука.
- за много итеруеми обекти няма разумен начин да се определи дължината им, така че извикването на
len
върху тях е безмислено. Помисли си как може да не се интересуваш шот дължината на нещо.