Некоторое время я получал разные результаты l oop и l oop in python (проверьте коды) - PullRequest
0 голосов
/ 07 февраля 2020

ДЛЯ ПЕРВОГО КОДА:

num = 1

while num<=100:
    if num%3==0 or num%5==0:
        continue

    print (num, end=" ")
    num+=1

ВЫХОД: 1 2

ДЛЯ ВТОРОГО КОДА:

for num in range(1, 101):
    if num%3==0 or num%5==0:
        continue

    print (num, end=" ")

ВЫХОД:

1 2 4 7 8 11 13 14 16 17 19 22 23 26 28 29 31 32 34 37 38 41 43 44 46 47 49 52 53 
56 58 59 61 62 64 67 68 71 73 74 76 77 79 82 83 86 88 89 91 92 94 97 98

Ответы [ 5 ]

1 голос
/ 07 февраля 2020

Вам нужно добавить приращение, прежде чем продолжить

num = 1
while num<=100:
    if num%3==0 or num%5==0:
        num += 1
        continue
    print (num)
    num+=1
1 голос
/ 07 февраля 2020

Вам нужно отредактировать код while, чтобы достичь того же результата. В вашем while l oop, если num%3 == 0 or num%==5, то программа не выполняет num += 1, поэтому ваша программа не увеличивается на 1. Вы должны изменить это так:

num=0
while num <= 100:
    num+=1
    if num%3==0 or num%5==0:
        continue

    print (num, end=" ")
0 голосов
/ 07 февраля 2020

Используйте ниже логи c

        num = 1

        while num <= 100:
            if num % 3 == 0 or num % 5 == 0:
                num += 1
                continue
            print(num, end=" ")
            num += 1
0 голосов
/ 07 февраля 2020

Это бесконечный l oop. Ваша программа никогда не завершает работу после того, как она достигает num == 3. Она переходит к оператору if, а оператор continue возвращает его к проверке while.

0 голосов
/ 07 февраля 2020

Ваш код не вызывает приращения 1 в то время как l oop внутри оператора if, он никогда не выходит за пределы 3.

...