Я знаю, что вы опубликовали что-то вроде понимания списка, но это немного сложно для чтения.Итак, несколько вещей ...
- Я бы попробовал написать это в виде многострочного цикла перед тем, как сжать его до понимания списка.
- Я не уверен, почему выздесь есть «х», а «xrange» не имеет смысла. Редактировать: Просто понял, почему я не распознаю xrange, и это потому, что я никогда не работал с Python 2.x
Так что, подумав, вы в основном ищете любое число из0-300, который делится на 7, но не кратен 5.
Означает, что у нас есть несколько вещей ...
- range (0,301): Так как диапазон не включаетсянашего последнего значения мы хотим, чтобы n + 1
- Наше число, скажем, "i" - это оба ... "i% 7 == 0" и "i% 5! = 0"
Итак, давайте посмотрим построчно
for i in range(0,301):
Ладно, круто, теперь вам не нужно вложенное для понимания списка циклов, как вы это делали в своем примере.Теперь вам нужно знать, «если» я ____... Итак, нам нужно выражение if.
if i%7==0 and i%5!=0:
Видите логику?И, конечно же, если оператор находится внутри нашего цикла for для циклического перебора всех значений в нашем диапазоне.
Наконец, если наше «i» соответствует нашим критериям, то мы можем вывести все значения.
print(i)
Итак, наш окончательный код выглядит так ...
for i in range(0,301):
if (i % 7 == 0) and (i % 5 != 0):
print(i)
Конечно, есть способы сделать это более элегантным, но это общая идея.
Понимание списка:
party = [i for i in range(0,301) if i%7==0 and i%5!=0]
print(party)
Это хранит их все в списке, чтобы вы могли получить к ним доступ в любое время.Или вы можете распечатать его, не назначая его, конечно.
Редактировать: Название и то, что вы говорите в теле, являются противоречивыми.Прочитав мой собственный ответ, я не совсем уверен, что это то, что вы ищете, но именно так оно и пришло ко мне.Надеюсь, это поможет!