Level 1 : Implementing an iterator that returns prime numbers.


class PrimeIterator:
    def __init__(self, n):
        self.n = n
        self.num = 1

    def __iter__(self):
        return self

    def __next__(self):
        self.num += 1
        while any(self.num % i == 0 for i in range(2, int(self.num ** 0.5) + 1)):
            self.num += 1
        if self.num > self.n:
            raise StopIteration
        return self.num

it = iter(PrimeIterator(10))
print(list(it))

Author: SandhyaR | Tags: iterator | 1859+ Python FAQs | Share
working-with-dates-and-times | default-mutable-argument | error | condition | counter | def | deep-copy | difference-between-threads-and-processes | built-in-function | compute | __all__-attribute | binary-operation | copy | binary | data_structure | dataframe-and-series-objects | dictionary-comprehensions | creating-and-starting-threads | assignment-operators | __future__ | conditional-statement | call | data-structures | asyncio-module | data-types | dictionary-methods | data-type | data-structure | boolean | comment | unit-testing | why-use-multiprocessing-over-threading?-(gil) | return-statement | class-decorators | boolean-and-non-boolean | __init_subclass__ | conditional-statement | arbitrary-arguments-(*args,-**kwargs) | string | constructor | multiple-inheritance | class | literal-characters-and-special-characters | using-else-and-finally | default-arguments | command-line-parsing | methods | mutable | recurssion | list-slicing | dicts | lists | control-flow | list-operation | aggregating-data-with-functools.reduce() | assignment-operator | built-in-modules | control-flow | comparison | string-method | destructor | design-principle | arithmetic-expression | magic-method | working-with-binary-files-(rb,-wb) | math | slice | working-with-file-paths | conditional-statements | array | string-formatting | built-in-function | typeerror | while-and-for-loop | data-structures-in-python | dictionary | sys-module | attribute | dictionaries | comprehension | counter-function | single-inheritance | matrix-list-comprehension | strings | string-method | multiple-except-blocks | bitwise | sys | touples | class-and-object | defining-functions | namedtuple | syntax | advanced-file-operations | application | sum() | writing:-write(),-writelines() | collection | decorator | mathematics | debugging | datetime | method | decimal | set-operation | min-function | creating-custom-modules | list-methods-and-slicing | tuple-unpacking | complex-number | string-slicing | memory | access-modifier | asyncio | staticmethod | zip-function | context-manager | math-copysign | loop | async | built-in | memory-management | turtle | classes | anchors-(^,-$) | append | booleans | arithmetic-operation | name-mangling | match | center | variable | bitwise-operator | working-with-temporary-files-using-tempfile | complex | conversion | data-structure | class-and-inheritance | thread | multiple-inheritance | choice | basic | multithreading | module | datetime.date,-datetime.time,-datetime.datetime | descriptors | bitwise-operator | benefit | thread-synchronization | type_conversion | min-max-function | class-and-instance-variable | shallow-copy | list,-set,-and-dictionary-comprehensions | enumerate() | matplotlib | test-discovery | mysql | functional-programming | assert | collections | data-type-conversions | type-conversion | control-statement | data-type | boolean-masking | while-loops | datatype | encoding | file-handling | escape-operator | gil | static-method | docstring | directory-operations | software-design | loop-control | exception-handling | exponentiation | functional-programming | with-statement | syntax-error | exception | walking-through-directories-using-os.walk() | using-lists-as-stacks | format | logical-operator | syntaxerror | thread-safe-data-structures-(queue.queue) | membership-operators-(in,-not-in) | global-keyword | else-statement | method-overloading | formatting-with-strftime | filtering-and-indexing | list-comprehension | regex | version | threading | list-method | function-and-scope | mapping-function | floats | virtual-environment | logical-operator | file | multiprocessing | global | list-mutation | fabs-function | generators-in-python | exception-handling | expand-tab | global-variable | update | split | loops | matrix | tuple-methods | indexing | introduction-to-multiprocessing | logical-operation | global-variable | integers | time-series-with-pandas | filter-function | operator-and | operand | list-comprehension | introduction-to-python | tuple | round-function | higher-order-function | implementation | rollback | interpreter | lambda-function | function | namespace | while-loop | string-concatenation | operators | filter | formal-and-actual-parameter | regular-expressions | else | generators | identifier | immutable-data-type | loop-control-statements | joining-and-merging-dataframes | list-vs-tuple | generator | slicing | intering | logical-operators | using-join()-and-is_alive()-methods | int | functions | max-min | using-assertions-(assertequal,-assertraises) | regular-expression | input-function | map-function | frozenset | using-os-and-pathlib-modules | using-yield-in-functions | mathematical-function | for | error-handling | objects | postfix | overflow | invalid-list | oops | string-iteration | reading-and-writing-files | feature | encapsulation | pseudocode | iterator | sorted | raise-statement | python-django | yield | odd-number | input-function | set | nested-loop | version-check | raise | range | python-history | pandas | error-handling | type-conversion | integer | function-argument | identity-operator | floating-point-precision | factorial-function | keyword | statement | expression | string-methods | file_handling | python-module | using-map()-for-transformations | python-operators | indentation | virtual-environment | precedence-and-associativity | init | file-handling | parameter | tuples | input | indexing:-loc-vs-iloc | immutability | sorting | lambda-functions | inherit | overriding-methods | python-syntax-and-structure | library | python_version | lambdas | print | handling-missing-values-(fillna,-dropna) | inheritance | introduction-to-threads | while-else-loop | head-and-tail | object-attribute | iterators | parsing-with-strptime | string-slicing | numpy | sets | list-comprehensions | recursion | iterable | id-function | join | heap-memory | lambda | key-value-pairs | list | installation | import-method | python-repl | list-join | zfill-function | identity-operator | identity-operators-(is,-is-not) | sum-function | package-management | round | goto-function | list-indexing | reading-and-writing-large-files-efficiently | string-manipulation | stack | string-formatting | zip | polymorphism | precedence | quantifiers-(*,-+,-?,-{}) | operator | random-function | reading:-read(),-readline(),-readlines() | type-conversion-and-casting | swapping | opening-files-(open()) | print-statement | numeric | syntax-error | pass | scientific-notation | operator-or | python | oop | operations | pep | pickling--unpickling | using-the-threading-module | operator-overloading | random | managing-directories-with-os-and-shutil | sorting-and-ranking ...