From cb283b029f56f7de4a193cd55d8a2d30ec519415 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mert=20G=C3=B6r?= Date: Sun, 3 Sep 2023 12:42:00 +0300 Subject: [PATCH] Rand Iterable example 1 --- python-temel/RandIterable.py | 44 ++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 python-temel/RandIterable.py diff --git a/python-temel/RandIterable.py b/python-temel/RandIterable.py new file mode 100644 index 0000000..fefb708 --- /dev/null +++ b/python-temel/RandIterable.py @@ -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 + +