Python基礎(1)--Pythonプログラミング習慣と特徴

8367 ワード

1.コードスタイル
  • Pythonでは、各行のプログラムは改行で終わり、1行のプログラムが長すぎる場合は「」記号で次の行に拡張できます.pythonで三重引用符(""""""")で囲まれた文字列、リスト、メタグループ、辞書は行をまたいで使用できます.カッコ(...)、中かっこ[...]とかっこ{...}囲まれたコードは「」を付けずに複数行に拡張できます.
  • Pythonではプログラム機能ブロックをインデントで区別しており、インデントの長さは制限されないが、1つの機能ブロックについては一致したインデント量を保つことが望ましい.
  • 1 1行に複数の文がある場合は、文間にセミコロン(;)区切る.
  • 「#」で始まる内容をコメントとし、python解釈器は行の内容を無視します.
  • pythonでは、すべての識別子に英語、数値、および下線()を含めることができます.しかし、数字で始まることはできません.pythonの識別子は大文字と小文字を区別します.
  • 以下の線の先頭の識別子は特別な意味を持つ.単一下線で始まる(_foo)は、直接アクセスできないクラス属性を表し、クラスが提供するインタフェースでアクセスする必要があり、「from xxx import*」でインポートすることはできません.二重下線で始まる(_foo)はクラスのプライベートメンバーを表します.二重下線で始まる(_foo_)pythonの特殊なメソッド専用のIDを表します.init__()クラスを表すコンストラクション関数.
  • インタラクティブモードでpythonを実行する場合、下線文字()は、式の最後の計算結果を保持する特殊な識別子です.
  • >>> "hello"
    
    'hello'
    
    >>> _
    
    'hello'
    
    >>> 10+10
    
    20
    
    >>> _
    
    20

    pythonでは、関数、クラス、モジュール定義の最初のセグメントコードが文字列であれば、作文文字列と呼びます.doc__属性アクセス.次のようになります.
    def test():
    
    "this is a document string"
    
    
    
    return 100+1000
    
    
    
    >>>print test.__doc__
    
    this is a document string

    2.予約語
    	and		elif		global		or          yield
    
    	assert		else		if		pass
    
    	break		except		import		print
    
    	class		exec		in		raise
    
    	continue	finally		is		return
    
    	def		for		lambda		try
    
    	del		from		not		while

    次のコードを使用してpythonのキーワードを印刷します.
    >>> from keyword import kwlist
    
    >>> print kwlist

    出力は次のとおりです.
    ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
    3.Python演算子と式
    Python演算子リスト
    演算子
    説明
    x+y,x-y
    プラス、マイナス、「+」はコネクタとして再ロードできます
    x*y,x**y,x/y,x%y
    乗算、平方、除算、余剰を求め、「*」号は繰り返し、「%」号はフォーマットに再ロードできます
    <,<=,>,>=,==,<>,!=
    比較演算子
    +=,-=,*=,/=,%=,**=,<<=,>>=,&=,^=,|=
    じこへんかんえんざんし
    x|y
    ビット単位または
    x^y
    ビット別異動
    x&y
    ビットと
    ~x
    ビットによる反転
    x<<,x>>y
    x yビットを左または右にシフト
    is, is not
    同等テスト
    in, not in
    メンバーのテスト
    or,and,not
    論理演算子
    x[i],x[i:j],x.y,x(...)
    インデックス、スライス、限定参照、関数呼び出し
    (...),[...],{...},'...'
    メタグループ、リスト、辞書、文字列に変換
    演算子の優先順位リスト(最上位から最下位)
    演算子
    説明
    'expr'
    文字列変換
    {key:expr,...}
    辞書
    [expr1,expr2...]
    リスト#リスト#
    (expr1,expr2,...)
    メタグループ
    function(expr,...)
    関数呼び出し
    x[index:index]
    スライス
    x[index]
    インデックス値
    x.attribute
    属性参照
    ~x
    ビットによる反転
    +x,-x
    プラス
    x**y
    べき乗
    x*y,x/y,x%y
    型抜き
    x+y,x-y
    プラス
    x<>y
    シフト
    x&y
    ビットと
    x^y
    ビット別異動
    x|y
    ビット単位または
    x=y,x>y
    比較
    x is y,x is not y
    同等テスト
    x in y,x not in y
    メンバー判定
    not x
    論理No
    x and y
    ロジックと
    x or y
    論理または
    lambda arg,...:expr
    Lambda匿名関数
    真値テーブル
    オブジェクト/定数

    ""

    "string"
    本当に
    0

    >=1
    本当に
    <=-1
    本当に
    ()空のタプル

    []空のリスト

    空の辞書

    None

    複合式
  • andの場合、a and bを計算するとpythonはaを計算し、aが偽であればa値を取り、aが真であればpythonはbを計算し、式全体がb値をとる.次のようになります.
    >>> a,b=10,20
    
    >>> a and b   #a is true
    
    20
    
    >>> a,b=0,5   #a is false
    
    >>> a and b
    
    0

  • orについて、a or bを計算するとpythonはaを計算し、aが真であれば式全体がa値を取り、aが偽であれば式はb値を取る.次のようになります.
    >>> a,b=10,20
    
    >>> a or b
    
    10
    
    >>> a,b=0,5
    
    >>> a or b
    
    5

  • notの場合、notはテーブル式の「実際の値」を反転し、式が真である場合、notは戻り偽であり、式が偽である場合、notは戻り真である.次のようになります.
    >>> not 2
    
    False
    
    >>> not 0
    
    True
    
    >>> not "test"
    
    False
    
    >>> not ""
    
    True


  • 4.変数に値を割り当てる
    変数付与:付与値は直接変数に付与されるのではなく、Pythonではオブジェクトが参照によって渡されます.Pythonの付与文は値を返しません.次のような文は不正です.
    >>> x=1
    
    >>> y=(x=x+1)
    
    SyntaxError: invalid syntax

    チェーン割り当てに問題はありません:
    >>> x=1
    
    >>> y=x=x+1
    
    >>> x,y
    
    (2, 2)

    Pythonでは、x++や--xのような前置/後置自増/自減演算はサポートされていません.
    複数の値を繰り返すことができます.
    >>> x=y=z=1
    
    >>> x
    
    1
    
    >>> y
    
    1
    
    >>> z
    
    1

    複数の値を割り当てることができます.
    >>> x,y,z=1,2,'a string'
    
    >>> x
    
    1
    
    >>> y
    
    2
    
    >>> z
    
    'a string'

    通常、カッコで囲み、コードの読み取りを強化します.
    >>> (x,y,z)=(1,2,'a string')
    
    >>> x
    
    1
    
    >>> y
    
    2
    
    >>> z
    
    'a string'

    Pythonの多重付与方式を使用して、中間変数なしで2つの変数の値を交換することができます.
    >>> #swapping variables in Python
    
    >>> x,y=1,2
    
    >>> x
    
    1
    
    >>> y
    
    2
    
    >>> x,y=y,x
    
    >>> x
    
    2
    
    >>> y
    
    1