python随意玩系列2:論理演算子


半年ぶりにpythonの基礎チュートリアルを温めて、以前気づかなかったことを発見しました.
a and b,andは論理演算子であり,aとbが共にTrueである場合,結果はTrueを返し,そうでなければFalseを返す.
問題が来て、どのように自分でコードを書いて“と”を実現しますか?すなわち,a and bがtrueであるかfalseであるかを判断し,プログラミング言語に付属する論理演算子を使用できないことを要求する(何が自分を困らせるのか......)
私が最初に考えたのは
もしaがfalseであれば、大局はすでに決まっていて、直接falseに戻ります.
aがfalseでなければ、aはtrueだと思って、bを見ます.(aはtrueとしか思えないがpythonのtrueの値は1)
bがtrueであれば、二人ともtrueであることを示し、trueに戻る.
そうでなければfalseを返します.
def myand(a,b):
    if a==False:
        return False
    if b: # b!=False
        return True
    else:
        return False

しかしpythonは私よりもっとすごいです.
aがFalseである場合、a and bはFalseを返し、そうでない場合はbを返す.
def myand1(a,b):
    if a==False:
        return False
    return b

いいですね.
したがってpythonでは10 and 20を直接実行し,得られた結果は20であった.
 
ついでに「または」と書きます.
aがTrueの場合、aを返し、そうでなければbを返します.
def myor(a,b):
    if a: # a!=False
        return a
    return b

10 or 20を実行し、10を得る.