next method example 2
This commit is contained in:
parent
7be4ed70a7
commit
a30910c48d
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 New Issue
Block a user