#15817: python請教


dean52000@gmail.com (Andy)


if (int(x) % 4 == 0 and int(x) % 100 != 0) or int(x) % 400 == 0:    過

---------------------------------------------------------------------------------------
if int(x) % 4 == 0 and int(x) % 100 != 0 or int(x) % 400 == 0:      沒過

#0: 4% WA (line:1)

您的答案為: 平年
正確答案為: 閏年

  

這題後來我雖然過了,但是我還是要請教一下。

上述的IF判斷式,差在於OR前面的誇號就過不了了,為什麼呢。

#15819: Re:python請教


tang891228 (tang891228)


不是這個問題

and 的計算順序優先於 or

我測試了這兩個程式碼都可以通過:

import sys
for x in sys.stdin:
    if (int(x) % 4 == 0 and int(x) % 100 != 0) or int(x) % 400 == 0:
        print('閏年')
    else:
        print('平年')

 

import sys
for x in sys.stdin:
    if int(x) % 4 == 0 and int(x) % 100 != 0 or int(x) % 400 == 0:
        print('閏年')
    else:
        print('平年')

 

#16318: Re:python請教


heybro (heyguys)


不是這個問題

and 的計算順序優先於 or

我測試了這兩個程式碼都可以通過:

import sys
for x in sys.stdin:
    if (int(x) % 4 == 0 and int(x) % 100 != 0) or int(x) % 400 == 0:
        print('閏年')
    else:
        print('平年')

 

import sys
for x in sys.stdin:
    if int(x) % 4 == 0 and int(x) % 100 != 0 or int(x) % 400 == 0:
        print('閏年')
    else:
        print('平年')

 

可是我拿你的去試跑卻是顯示錯誤0.0

import sys

>>> for x in sys.stdin:

if (int(x) % 4 == 0 and int(x) % 100 != 0) or int(x) % 400 == 0:

print('閏年')

else:

print('平年')

 

Traceback (most recent call last):

  File "<pyshell#16>", line 2, in <module>

    if (int(x) % 4 == 0 and int(x) % 100 != 0) or int(x) % 400 == 0:

 

ValueError: invalid literal for int() with base 10: '\n' 

會出現以上錯誤↑