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