next method example 2
This commit is contained in:
parent
7be4ed70a7
commit
a30910c48d
1 changed files with 32 additions and 0 deletions
32
python-temel/next.method.2.py
Normal file
32
python-temel/next.method.2.py
Normal file
|
@ -0,0 +1,32 @@
|
|||
import math
|
||||
|
||||
class SqrtIterable:
|
||||
def __init__(self, limit):
|
||||
self._limit = limit
|
||||
|
||||
def __iter__(self):
|
||||
return SqrtIterator(self._limit)
|
||||
|
||||
class SqrtIterator:
|
||||
def __init__(self, limit):
|
||||
self._limit = limit
|
||||
self._i = 0
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
|
||||
def __next__(self):
|
||||
if self._i == self._limit:
|
||||
raise StopIteration()
|
||||
self._i += 1
|
||||
|
||||
return self._i, math.sqrt(self._i)
|
||||
|
||||
si = SqrtIterable(25)
|
||||
|
||||
for t in si:
|
||||
print(t, end = ' ')
|
||||
print()
|
||||
|
||||
for i, x in si:
|
||||
print(f'{i} --> {x}')
|
Loading…
Reference in a new issue