Python ile Kodlama Mülakatı Soruları Pratiği
Kirill Smirnov
Data Science Consultant, Altran
Generator - gövdesinde yield anahtar sözcüğü bulunan bir fonksiyonun oluşturduğu özel bir iterable nesne.
def func():
# Çok karmaşık hesaplamalardan bir değer döndür
return 0
result = func()
print(result)
0
Generator - gövdesinde yield anahtar sözcüğü bulunan bir fonksiyonun oluşturduğu özel bir iterable nesne.
def func():
# Çok karmaşık hesaplamalardan bir değer üret
yield 0
result = func()
print(result)
<generator object result at 0x105736e10>
def func():
# Çok karmaşık hesaplamalardan bir değer üret
yield 0
result = func()
for item in result:
print(item)
0
def func():
yield 0
yield 1
yield 2
result = func()
for item in result:
print(item)
0
1
2
def func(n):
for i in range(0, n):
yield 2*i
result = func(3)
for item in result:
print(item)
0
2
4
def func(n):
for i in range(0, n):
yield 2*i
result = func(5)
list(result)
[0, 2, 4, 6, 8]
Jeneratör hem Iterable hem de Iterator’dur
def func(n):
for i in range(0, n):
yield 2*i
result = func(3)
next(result)
0
next(result)
2
next(result)
4
next(result)
StopIteration
def func(n):
for i in range(0, n):
yield 2*i
result = func(3)
for item in result:
print(item)
0
2
4
for item in result:
print(item)
# nothing
result = func(3)
for item in result:
print(item)
0
2
4
def func(n):
for i in range(0, n):
yield 2*i
result = func(3)
list(result)
[0, 2, 4]
list(result)
[]
result = func(3)
list(result)
[0, 2, 4]
result = [2*i for i in range(0, 3)]
print(result)
[0, 2, 4]
result = (2*i for i in range(0, 3))
print(result)
<generator object result at 0x105736e10>
result = (2*i for i in range(0, 3))
for item in result:
print(item)
0
2
4
next(result)
StopIteration
[1, 3, 2, 4, 3, 5]
def create_jump_sequence(n):
for i in range(1, n-1):
yield i
yield i+2
jump_sequence = create_jump_sequence(5)
list(jump_sequence)
[1, 3, 2, 4, 3, 5]
[1, 3, 2, 4, 3, 5, 4, 6, 5, 7, ...]
def create_jump_sequence(n):
for i in range(1, n-1):
yield i
yield i+2
jump_sequence = create_jump_sequence(500)
next(jump_sequence)
1
def create_inf_generator():
while True:
yield 'I am infinite!'
inf_generator = create_inf_generator()
next(inf_generator)
I am infinite
Python ile Kodlama Mülakatı Soruları Pratiği