Понимание результата `FOR` l oop с вложенным выражением` IF` - PullRequest
3 голосов
/ 10 апреля 2020

Я учусь Python в настоящее время. Я хотел получить помощь, чтобы понять, как работают функции If и For, когда определенные условия не выполняются. Я пытаюсь определить функцию, которая будет определять количество простых чисел, начиная с 2 до входного числа. Например, - count_primes (100) будет выдавать 25 (общее число простых чисел от 0 до 100)

Я хотел увеличить счетчик i на 1 только когда полный for l oop для диапазона (2, предмет) не имеет экземпляров n, где item% n (остаток от деления на n ) равно нулю или элемент% n не равен нулю для всех n экземпляров в for n in range (2,item) l oop.

более широкий вопрос : как написать код для случаи, когда мы могли бы хотеть возвратить единственную переменную, основанную на результате целого для l oop как в этом случае?

Мой код выглядит следующим образом -

def count_primes(num):
        i = 0

        for item in range (2,num):

            for n in range(2,item):
                if item % n == 0:
                    break

            i += 1

        return i

Заранее благодарим всех, кто решил поделиться своими отзывами и рекомендациями.

-
С уважением,
Nilotpal

Ответы [ 2 ]

2 голосов
/ 10 апреля 2020

Вы можете использовать else с вашим for l oop. Кодовый блок под else будет выполняться только тогда, когда for l oop исчерпан, т. Е. Завершен без прерывания.

for i in range(10):
# logic for each iteration
else:
# the code here will be executed  only if the loop finished 10 successful iterations 
1 голос
/ 10 апреля 2020

Сделайте это:

def count_primes(num):
    i = 0
    for item in range(num):
        if item <= 1:
            continue
        for n in range(2, item):
            if item % n == 0:
                break
        else:
            i += 1
    return i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...