Что выведет код?
class Counter:
def __init__(self, start, stop):
self.current = start
self.stop = stop
def __iter__(self):
return self
def __next__(self):
if self.current >= self.stop:
raise StopIteration
result = self.current
self.current += 1
return result
c = Counter(3, 5)
print(list(c))
print(list(c))
Выберите правильный вариант
Anonymous Quiz
22%
[3, 4] [3, 4]
46%
[3, 4] []
9%
[] []
15%
[4, 5] [4, 5]
4%
TypeError
3%
Посмотреть результаты
Что выведет код?
def gen():
yield 1
yield 2
return 3
g = gen()
print(list(g))
Выберите правильный вариант
Anonymous Quiz
29%
[1, 2, 3]
20%
[3]
25%
[1, 2]
13%
StopIteration: 3
1%
[1, 2, None]
11%
Посмотреть результаты
Что выведет код?
def trace():
print("start")
yield 1
print("middle")
yield 2
print("end")
g = trace()
a = next(g)
b = next(g)
Выберите правильный вариант
Anonymous Quiz
35%
start, middle, end
29%
start, middle
32%
start, 1, middle, 2, end
1%
start, middle, 2
3%
start, middle, 2, end
Что выведет код?
gen = (x * 2 for x in range(3))
print(sum(gen) + sum(gen))
Выберите правильный вариант
Anonymous Quiz
5%
0
31%
6
46%
12
8%
TypeError
6%
RuntimeError
4%
Посмотреть результаты
Что выведет код?
outer = (x for x in range(3))
inner = (y * 10 for y in outer if y % 2 == 0)
print(list(inner))
print(list(outer))
Выберите правильный вариант
Anonymous Quiz
8%
[0, 20] [1]
5%
[0, 20, 10] [2]
45%
[0, 20] [0, 1, 2]
4%
[] [0, 1, 2]
36%
[0, 20] []
3%
Посмотреть результаты
Что выведет код?
def gen1():
yield from [1, 2]
yield 3
print(list(gen1()))
Выберите правильный вариант
Anonymous Quiz
39%
[1, 2, 3]
11%
[1, [2], 3]
24%
[[1, 2], 3]
13%
[1, 2]
5%
TypeError
8%
Посмотреть результаты
Что выведет код?
def sub():
yield 1
yield 2
def main():
yield 0
yield from sub()
yield 3
g = main()
print(next(g), next(g), next(g), next(g))
Выберите правильный вариант
Anonymous Quiz
10%
1 2 0 3
11%
0 1 2 StopIteration
10%
TypeError
7%
0 2 1 3
61%
0 1 2 3
1%
Посмотреть результаты
Что выведет код?
from itertools import chain
a = [1, 2]
b = (x for x in [3, 4])
c = chain(a, b)
print(list(c))
Выберите правильный вариант
Anonymous Quiz
59%
[1, 2, 3, 4]
23%
[1, 2, [3, 4]]
9%
[3, 4]
3%
TypeError
0%
[1, 2]
6%
Посмотреть результаты
Что выведет код?
from itertools import cycle
c = cycle([10, 20])
out = []
for i, val in enumerate(c):
if i >= 3:
break
out.append(val)
print(out)
Выберите правильный вариант
Anonymous Quiz
23%
[10, 20, 10, 20]
14%
[10, 10, 10]
44%
[10, 20, 10]
14%
[10, 20]
4%
[20, 10, 20, 10]
2%
Посмотреть результаты
Что выведет код?
def sub():
for i in range(2):
yield i
def main():
yield -1
for x in sub():
yield x
yield 2
print(list(main()))
Выберите правильный вариант
Anonymous Quiz
3%
[0, 1, 2]
26%
[-1, [0, 1], 2]
68%
[-1, 0, 1, 2]
0%
[-1, 1, 2]
0%
[-1, 0, 2, 1]
3%
Посмотреть результаты