2015-10-28 2 views
0

Предположим, у меня есть цикл, например, как это:Как получить цикл for для итерации по всему диапазону?

a = 15 
for x in range(2,6): 
    if a % x == 0: 
     return False 
    return True 

Как я могу получить цикл, чтобы проверить все значения в заданном диапазоне до возвращения истина/ложь? Сейчас он просто проверяет 2, поэтому 15% 2 = true. Я хочу, чтобы цикл проверял 2, 3, 4 и 5, а затем возвращал true/false на основе условий.

+0

возвращения можно назвать только один раз за рамки. если вы хотите иметь значения для каждого номера, вам нужно сохранить каждую итерацию в некотором виде –

+0

Вы имеете в виду «печать», когда вы говорите «return»? – Arseniy

+0

Нет, это функция –

ответ

2

Возьмите return True из петли.

a = 15 
for x in range(2,6): 
    if a % x == 0: 
     return False 
return True 

Это возвратит истину тогда и только тогда a не делится на любое число в диапазоне.

+0

Это помогло! Спасибо –

3

добавить логическую переменную и вернуть, что вместо

check = True 
a = 15 
for x in range(2,6): 
    if a % x == 0: 
     check = False 
return check 
3

взгляды этого, вы можете добиться того, что вы хотите с all заявления, или просто возвращение True вне для цикла:

a = 15 
return all(a%x!=0 for x in range(2,6)) 

#or 

a = 15 
for x in range(2,6): 
    if a%x== 0: return False 
return True 
+0

вместо 'all', вам может потребоваться использовать' any' – Hackaholic

+0

. Я использовал '! =' Вместо '==', поэтому логическая логика должна быть одинаковой. –

+0

yeaa, я havent видел это, да, правильно – Hackaholic