2016-02-04 2 views
0

Почему следующий код python ничего не печатает?Почему команда внизу ничего не печатает

def modulo (spam): 
    if spam == 3 % 2: 
     print(spam) 
+0

что вы пытаетесь архивировать с этим кодом? – DZDomi

+0

Кто такой вздор? – Idos

+0

Hallo, я изучаю python с codecademy, и вопрос в том, что я должен написать синтаксис Python – iratxe

ответ

0

Вы должны вернуться к основам, потому что есть две части, на которые нужно обратить внимание, это должно быть рудиментарным для вас к настоящему времени. Во-первых, оператор ==:

>>> a = 1 
>>> b = 2 
>>> print(a==b) 
False 
>>> a = 2 
>>> print(a==b) 
True 

== Оператор соответствует булевых значений: истинным или ложным

второй является % оператором. Оператор % делит первое число на второе число и возвращает остаток. Возьмем, например, следующее:

>>> a = 1 
>>> b = 2 
>>> print(a%b) # 1/2 = 0 2's + 1 remainder 
1 
>>> print(b%a) # 2/1 = 2 1's + 0 remainder 
0 

Теперь на ваш код:

def modulo(spam): 
    if spam == 3 % 2: # if spam is one (3/2 = one 2, plus 1 remainder) 
     print(spam) 
    else: # I'd add this, so you know the method is being run 
     print("Spam is not 1.") 
+1

Очень спасибо за ваш ответ! – iratxe

+0

извините ... Я думаю, что это, иначе: print ("2% 3") ?? – iratxe

+0

Это зависит от того, что вы хотите. Если вы хотите напечатать строку «2% 3», то это то, что она будет делать. Если вы хотите напечатать результат 2% 3 (это 2), вы напечатаете 'print (2% 3)' – ATLUS

0

кажется, что условие spam == 3 % 2 не верно, так что не будет вступать в print(spam). Попробуйте отладить его.

1

Если предположить, что код питона отступом правильно, ничего, вероятно, не печатается, потому что 3%2 равно 1 и spam не должна быть равна 1.

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