pythonの卵が痛いところといくつかのテクニック
1634 ワード
この文書のすべてのコードはpython 2に基づいている.7.10構文
卵が痛いところ:多重ループから飛び出した.複数サイクル(2つ以上)がある場合は、複数サイクルを飛び出してpythonで卵が痛い.goto文がなく、javaのようにループごとにlabelを割り当てることができず、ループごとに関数として書くか、ループごとにflagを付けるしかない.flagを使用すると、最下層の4番目のサイクルから最外層の1番目のサイクルに変更するには、 と書かなければなりません.
これらのループがwhileではなくforでリストを巡る場合、コードはさらに見苦しいです. pythonは他の多くの言語とは異なり、複数の比較オペレータは同じ行で行うことができ、評価順序は左から右であり、 だった.
うっかりして理解を間違えた!
pythonのテクニック削除リストの中の要素がリストを遍歴する時に要素を削除すると思わぬエラーが発生し、filterやリスト解析で代用することができる.
卵が痛いところ:
flag1 = flag2 = flag3 = flag4 = 1
while flag1:
# do something
while flag2:
# do something
while flag3:
# do something
while flag4:
# do something
flag2 = flag3 = flag4 = None
これらのループがwhileではなくforでリストを巡る場合、コードはさらに見苦しいです.
3 < 4 < 5
という表現のサポートは手間が省け、快適に書くことができる.しかし、このルールを忘れてjavaやcの文法で見ると、卵が痛くなることがあります.例えば3 < 5 == False
、結果はFalseである.一見、どう考えてもわかりませんが、(3 > 5) == False
でも3 > (5 == False)
でも結果はTrueです.よく考えてみると、>>> 3 > 5 == False # 3>5 and 5==False
False
うっかりして理解を間違えた!
pythonのテクニック