Питон: Как выбрать конкретное число, которое делится на два числа, но выводит только выбранное число?

#python

Вопрос:

Извините, если мой пост грязный или его трудно понять. Я только учусь программировать и понимать python. У меня есть домашнее задание, где мне дают n1 (случайное число от 0-10) и n2(от 30-45). Моя работа состоит в том, чтобы напечатать каждое число между n1 и n2, которое делится на 2, но не на 3.

 for x in range(n1,n2): if x%2==0:  print(x)   if x%3==0:  continue  

Так что теперь это мой код. Я пробовал, и это работает, но он печатает числа, такие как 6 и 12, которые делятся на 3. Как мне это исправить?

Комментарии:

1. В вашем коде есть синтаксические ошибки. Отступ имеет решающее значение в Python. Пожалуйста, исправьте это, отредактировав свой вопрос

Ответ №1:

Вам просто нужно добавить здесь дополнительное условие:

 for x in range(n1,n2):   if x % 2 == 0 and x % 3 != 0:   print(x)  

Или чтобы continue это произошло до печати, например:

 for x in range(n1,n2):   if x%3 == 0:  continue   if x%2 == 0:  print(x)   

Происходило то, что вы сначала печатали, а затем проверяли условие делимости на 3, что означало, что, хотя вы «пропустили» цикл, вы все равно уже напечатали.

Комментарии:

1. Условия также могут быть использованы как if not x%2 , так как это будет равно Истине, если остаток равен нулю. Кроме того, будьте осторожны, это range включает нижнюю границу, но исключает верхнюю. Так range(a, b) что перейдем от a к b-1 . Если ваша цель состоит в том , чтобы пройти весь путь до b конца, вы должны использовать range(a, b 1)

Ответ №2:

Вам нужно выбрать случайное число между 0-10 для n1 и 30-45 для n2. Импортируйте случайный модуль и используйте randint() его для получения случайных номеров. Кроме того, вы можете поместить оба условия в одно и то же if утверждение. Ваш код:

 import random n1=random.randint(0,10) n2=random.randint(30,45) for i in range(n1,n2):  if i%2==0 and i%3!=0:  print(i)