Skip to content

Commit eff90ba

Browse files
committed
Added Iterators and Generators - Lab
1 parent 3238c30 commit eff90ba

File tree

7 files changed

+67
-0
lines changed

7 files changed

+67
-0
lines changed

OOP/8.Iterators and Generators/# TODO.txt

Whitespace-only changes.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class custom_range:
2+
3+
def __init__(self, start, end):
4+
self.start = start
5+
self.end = end
6+
7+
def __iter__(self):
8+
return self
9+
10+
def __next__(self):
11+
if self.start <= self.end:
12+
i = self.start
13+
self.start += 1
14+
return i
15+
else:
16+
raise StopIteration()
17+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
class reverse_iter:
2+
3+
def __init__(self, iterable):
4+
self.iter = iterable[::-1]
5+
self.index = 0
6+
7+
def __iter__(self):
8+
return self
9+
10+
def __next__(self):
11+
i = self.index
12+
if i < len(self.iter):
13+
self.index += 1
14+
return self.iter[i]
15+
else:
16+
raise StopIteration()
17+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
class vowels:
2+
3+
def __init__(self, string):
4+
self.vowels = ['a', 'e', 'i', 'u', 'y', 'o']
5+
self.string = ''.join([x for x in string if x.lower() in self.vowels])
6+
self.index = 0
7+
8+
def __iter__(self):
9+
return self
10+
11+
def __next__(self):
12+
i = self.index
13+
if i < len(self.string):
14+
self.index += 1
15+
return self.string[i]
16+
else:
17+
raise StopIteration()
18+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
def squares(n):
2+
num = 1
3+
while num <= n:
4+
yield num * num
5+
num += 1
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
def genrange(start, end):
2+
for i in range(start, end+1):
3+
yield i
4+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
def reverse_text(string):
2+
string = string[::-1]
3+
for char in string:
4+
yield char
5+

0 commit comments

Comments
 (0)