Python炫技操作(01):条件文の7種類の書き方

14999 ワード

微信公衆番号:Pythonプログラミングタイムに先発
シリーズガイド
  • Python炫技操作:条件文の7種類の書き方
  • Python炫技操作:辞書を統合する7つの方法
  • Python炫技操作:リストを接続する8つの方法
  • Pythonは入門が簡単だと言われていますが、難しい言語に精通していることに賛成します.
    Python言語には多くの(しかもますます多くなる)高級特性があり、Pythonの熱狂的な友达が大好きです.彼らの目には、一般開発者には分からない高級特性を書くことができるのが達人で、大神です.
    しかし、チームワークでは、自慢技はタブーであることを知っておく必要があります.
    どうしてそう言うのですか.私は自分の意見を言います.
  • 簡潔なコードほど、明確な論理ほどエラーが発生しにくい.
  • チームの協力の中で、あなたのコードはあなただけが維持しているのではなく、他の人のコードの論理を読む/理解するコストを下げるのは良い品格です
  • 簡単なコードは、最も基本的な文法糖、複雑な高度な特性しか使用されず、言語のバージョンなどのより多くの依存性があります.
    このシリーズでは、私が見たことのある眩しい操作をまとめて挙げます.今日はまずウォーミングアップをして、簡単な条件を書いて、文の中でどのような悪口を言いたいのかを判断します.ここで、Pythonの熱狂的な友达であれば、クールなコードを書くテクニックを学ぶことができますが、勉強は勉強になります.シーンを区別して使用してほしいです.
    元のコード
    これは非常に簡単な年齢で一人が大人かどうかを判断するコードです.コードの行数が多すぎるため、あまり書きたくない人もいます.これは自分の長年のPythonの功力を体現していないからです.
    if age > 18:
        return "   "
    else:
        return "   "
    

    以下に私は6種類のこのコードの変異の書き方を列挙して、1つは1つより6、単独で出したほうが理解しやすくて、工事のコードの中に置いて、これらの学法を使ったことがない人、きっと1つの顔がぼんやりしていることを見て、理解した後、また何気なく叫びます:寝槽、またこのように書くことができますか?、これは人に見せるコードですか?(1つ目以外)
    第1種
    構文:
    <expression 1> if <condition> else <expression 2> 
    

    >>> age1 = 20
    >>> age2 = 17
    >>> 
    >>> 
    >>> msg1 = "   " if age1 > 18 else "   "
    >>> print msg1
       
    >>> 
    >>> msg2 = "   " if age2 > 18 else "   "
    >>> print msg2
       
    >>> 
    

    第2種
    構文
    <expression> and <on_true> or <on_false>
    

    >>> msg1 = age1 > 18 and "   " or "   "
    >>> msg2 = "   " if age2 > 18 else "   "
    >>> 
    >>> print(msg1)
       
    >>> 
    >>> print(msg2)
       
    

    第3種
    構文
    (<on_true>, <on_false>)[condition]
    

    >>> msg1 = ("   ", "   ")[age1 > 18]
    >>> print(msg1)
       
    >>> 
    >>> 
    >>> msg2 = ("   ", "   ")[age2 > 18]
    >>> print(msg2)
       
    

    第四種
    構文
    (lambda: <on_false>, lambda:<on_true>)[<condition>]()
    

    >>> msg1 = (lambda:"   ", lambda:"   ")[age1 > 18]()
    >>> print(msg1)
       
    >>> 
    >>> msg2 = (lambda:"   ", lambda:"   ")[age2 > 18]()
    >>> print(msg2)
       
    

    5つ目
    構文:
    {True: , False: }[]
    

    例:
    >>> msg1 = {True: "   ", False: "   "}[age1 > 18]
    >>> print(msg1)
       
    >>> 
    >>> msg2 = {True: "   ", False: "   "}[age2 > 18]
    >>> print(msg2)
       
    

    第6種
    構文
    (() and (,) or (,))[0]
    

    >>> msg1 = ((age1 > 18) and ("   ",) or ("   ",))[0]
    >>> print(msg1)
       
    >>> 
    >>> msg2 = ((age2 > 18) and ("   ",) or ("   ",))[0]
    >>> print(msg2)
       
    

    以上のコードは、比較的簡単で、よく見ても読めるので、説明しません.
    ここを見て、姿勢を上げたかどうか、こんなに長い間Pythonを学んで、こんなに多くの騒ぎの操作、本当に生きています.この6つの書き方の中で、私が一番お勧めしているのは1つ目で、自分もよく使っていて、簡潔で率直で、コード行はまだ少ないです.他の書き方は書けるが、使えないし、私の余生で公共コードでこれらの書き方を使う同僚に会いたくない.