2017-02-20 8 views
1
x=[1,2,3,4,5,6] 

for y in x: 
    if y %2 == 0: 
     print (y) 
    elif y %3 == 0: 
     print ("y") 
    elif y %3 and y %2 ==0: 
     print ("Divisible by 2 and 3!") 
    else: 
     print ("Odd number!") 

Эй!Python: делится на два заданных целых числа

Я новичок в программировании в целом, и я начинаю его повесить. Пробовал поиск решений, но не смог найти их.

Я пытался выяснить четные и нечетные числа от 1 до 6. Все отработано отлично, кроме целого числа 6, где мне нужно его распечатать, что целое число 6 делится на 2 и 3. Как я могу исправить Ошибка?

+1

Проблема с заказом условных выражений 'if', свопинг ваших вторых и третьих операторов' elif' – ZdaR

ответ

2

Испытание для делится на 2 и 3 должны прийти первым, так что для 6 Вы y %3==0 and y %2 ==0 оценивали вместо y %2 == 0:

for y in x: 
    if y % 3 == 0 and y % 2 == 0: 
     print ("Divisible by 2 and 3!") 
    elif y % 2 == 0: 
     print (y) 
    elif y % 3 == 0: 
     print (y) 
    else: 
     print ("Odd number!") 
+0

Зачем это нужно? Я имею в виду делимый на 2 и 3? –

+0

Итак, сначала он оценивается, и вы получаете соответствующее сообщение, напечатанное на 6, иначе ветвь для% 2 будет исполняемой ветвью, а остальные пропускаются. –

3

Есть две проблемы здесь: во-первых, условие должно быть:

elif y %3 == 0 and y %2 ==0:

Поскольку есть два отдельные условия. Далее вам нужно переместить эту проверку к началу, так:

for y in x: 
    if y %3 == 0 and y %2 ==0: 
    print ("Divisible by 2 and 3!") 
    elif y %2 == 0: 
     print (y) 
    elif y %3 == 0: 
     print ("y") 
    else: 
     print ("Odd number!")

Почему? Потому что, если число делимо на 2 и 3, оно также делимо на 2. Таким образом, в вашем случае он бы выбрал первую ветвь. Переставив заказ, он сначала проверит, является ли он делящимся на 2 и 3. Если это не так - то есть, если хотя бы одно условие терпит неудачу - оно проверит оставшиеся ветви.

+1

@FaisalBuzuobar: Моисей был первым, поэтому я думаю, что было бы правильно, если он получит принятый ответ :) –

+2

Приятные объяснения, каждый раз :) –

+0

Я новый, ребята. Как я могу заставить Моисея получить правильный ответ? –