2013-04-21 3 views
-6

Я уверен, что это очень просто, и я должен это понимать, но я этого не делаю!Что означает x% 2 == 0?

Я дал это сделать:

Перебор и распечатать все четные числа из списка чисел в том же порядке, как они были получены. Не печатайте числа, которые появляются после 237 в последовательности.

Это программа, которую я имею для этих чисел.

numbers = [ 
    951, 402, 984, 651, 360, 69, 408, 319, 601, 485, 980, 507, 725, 547, 544, 
    615, 83, 165, 141, 501, 263, 617, 865, 575, 219, 390, 984, 592, 236, 105, 942, 941, 
    386, 462, 47, 418, 907, 344, 236, 375, 823, 566, 597, 978, 328, 615, 953, 345, 
    399, 162, 758, 219, 918, 237, 412, 566, 826, 248, 866, 950, 626, 949, 687, 217, 
    815, 67, 104, 58, 512, 24, 892, 894, 767, 553, 81, 379, 843, 831, 445, 742, 717, 
    958, 609, 842, 451, 688, 753, 854, 685, 93, 857, 440, 380, 126, 721, 328, 753, 470, 
    743, 527 
] 

# your code goes here 
for x in numbers: 
    if x % 2 == 0: 
     print x 
    if x == 237: 
     break 

Я получаю правильное решение и все правильно, но я не знаю, что такое == 0. Единственная причина, по которой я использовал это, потому что он использовался в другом примере во время урока перед практикой!

+0

http://www.tutorialspoint.com/python/python_basic_operators.htm –

+0

что сделали вы наберете в Google – user2304000

+0

«== оператор питон» –

ответ

8

x % 2 дает остаток после целочисленного деления (при использовании только целых чисел, таких как в этом случае, в противном случае общий тип) x/2. % называется оператором modulo. Конечно, когда остаток равен 0, число четное.

Docs:

% (по модулю) оператор дает остаток от деления первого аргумента на второй. Числовые аргументы сначала преобразуются в общий тип. Аргумент нулевого права вызывает исключение ZeroDivisionError. Аргументами могут быть числа с плавающей запятой, например, 3.14%0.7 равно 0.34 (начиная с 3.14 равно 4*0.7 + 0.34.) Оператор modulo всегда дает результат с тем же знаком, что и его второй операнд (или нуль); абсолютное значение результата строго меньше абсолютного значения второго операнда [2].

+0

+1. Возможно, вы захотите сослаться на ссылку, поясняющую о модуле. – Maroun

+1

@MarounMaroun Хорошая идея Я включил один – jamylak

+0

спасибо, что это было очень полезно – user2304000

3

if x % 2 == 0 проверяет, равно ли число.

x % 2 является 1, когда число нечетное, и 0 если есть.

+1

, так что 0 по существу означает true? – user2304000

+1

Это означает, что число ноль, не более того.'x% 2' дает остаток, и мы проверяем, равен ли он нулю. –

+0

'x == y' проверяет, равен ли' x' 'y', поэтому' x == 0' проверяет, равен ли 'x'' 0'. – 2013-04-21 09:23:26

1

== 0 означает «равно 0 (ноль)». Таким образом, if foo == 0: означает «сделать следующее, если foo равно 0», таким образом, if x % 2 == 0: означает «сделать следующее, если x % 2 равно 0».

Смежные вопросы