Rand Iterable example 1
This commit is contained in:
parent
2478a4b4f1
commit
cb283b029f
44
python-temel/RandIterable.py
Normal file
44
python-temel/RandIterable.py
Normal file
|
@ -0,0 +1,44 @@
|
|||
import random
|
||||
|
||||
class RandIterable:
|
||||
def __init__(self, a, b, c):
|
||||
self.a = a
|
||||
self.b = b
|
||||
self.c = c
|
||||
|
||||
def __iter__(self):
|
||||
return RandIterator(self)
|
||||
|
||||
class RandIterator:
|
||||
def __init__(self, ri):
|
||||
self.ri = ri
|
||||
self.count = 0
|
||||
|
||||
def __iter__(self):
|
||||
return self
|
||||
|
||||
def __next__(self):
|
||||
if self.count == self.ri.c:
|
||||
raise StopIteration
|
||||
self.count += 1
|
||||
|
||||
return random.randint(self.ri.a, self.ri.b)
|
||||
|
||||
a = list(RandIterable(10, 20, 5))
|
||||
print(a)
|
||||
|
||||
for x in RandIterable(0, 100, 10):
|
||||
print(x, end=' ')
|
||||
print()
|
||||
|
||||
try:
|
||||
ri = RandIterable(0, 100, 10)
|
||||
iterator = iter(ri) # iterator = ri.__iter__()
|
||||
while True:
|
||||
x = next(iterator) # iterator.__next__()
|
||||
print(x, end=' ')
|
||||
print()
|
||||
except:
|
||||
pass
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user