Rand Iterable example 1

This commit is contained in:
Mert Gör 🇹🇷 2023-09-03 12:42:00 +03:00
parent 2478a4b4f1
commit cb283b029f
No known key found for this signature in database
GPG Key ID: 2100A876D55B39B9

View 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