老斉とPythonの賦値を学ぶのは簡単でも簡単ではない.

4954 ワード

変数の名前付け
『初識永遠に強大な関数』の一文の中で、「名前を取る学問」を専門に討論する一節がある.変数名に関する問題であり、本温故知新の原則であり、ここでは復習しなければならない.
名前の書式:(下線またはアルファベット)+(任意の数のアルファベット、数値または下線)
注意:1.大文字と小文字を区別する.予約語の使用を禁止する.通常の習慣に従う•単一の下線で始まる変数名(_X)はfrom module import*文にインポートされません.•前後に下線が引かれた変数名(X)は、システム定義の変数名であり、解釈器に特別な意味を持つ.•2つの下線で始まるが、最後に2つの下線がない変数名(_X)は、クラスローカル(圧縮)変数です.•インタラクティブモードで実行する場合、下線変数は1つのみ()最後の式の結果が保存されます.保留字を説明する必要があります.pythonには変数名として使用できない単語がいくつか残っています.どんなものがありますか.(python 2とpython 3には差は少ないが、全体的な差は多くない)
 
  
and 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 yield

覚えておく必要がありますか?もちろんいりません.一方、ネットで手当たり次第に調べることができます.また、このようなこともできます.

   >>> not = 3 
  
  File "", line 1
    not = 3
        ^
SyntaxError: invalid syntax

>>> pass = "hello,world"
  File "", line 1
pass = "hello,world"
         ^
SyntaxError: invalid syntax


インタラクティブモードの実験室では,保持字を変数として用いると,エラーが報告される.もちろん、この時は名前を変えます.
以上の原則は、基本原則です.実際のプログラミングでは、プログラムをより読みやすくするために、•名前に一定の意味がある.例えば、n=「qiwsir」と書くより、name=「qiwsir」と書くほうがいいです.•名前は人を誤解させない.例えばaccount_Listはアカウントのセットを指し、listタイプのデータだと誤解され、実際にはそうではないかもしれません.だからこの時、accountsを直接使うなど、名前を変えたほうがいいです.•名前は意味のある区別が必要です.時にはa 1、a 2などの名前を使うかもしれませんが、そうしないほうがいいです.個別の方法で、字面で一定の区別が見えるほうがいいです.•名前が読めるようにしたほうがいいです.自分で英語の単語を作ったり、書いたりしないでください.特に貴国の人は、中国語のピンインの略語で名前を作るのが好きです.もっと面倒ですから、全部つづったほうがいいです.完全な単語や公認の曖昧さを引き起こさない略語を使うのが望ましい.•単一のアルファベットと数字は少なく、怠け者に見えるだけでなく、コードの中に単一のアルファベットと数字がたくさんある可能性があるため、検索に迷惑をかける可能性があります.他の人もあなたのiと彼が理解しているiが意味であるかどうか分かりません.とにかく、名前をつけるには、こだわりが少なくありません.いずれにしても、明確な基準を覚えておく必要があります.
わりあてぶん
付与文については、見官はもうよく知られていない.いずれの変数もpythonでは、それを使用するには、まず値を割り当てます.
文の形式:変数名=オブジェクト
前節でも賦値の本質を解析した.
暗黙的な付与方法として、import、from、del、class、for、関数パラメータを使用します.等モジュールインポート、関数とクラスの定義、forループ変数および関数パラメータは暗黙的な付与演算です.この方面のものは後ろからゆっくりと来ます.
 
  
>>> name = "qiwsir"

>>> name, website = "qiwsir","qiwsir.github.io"     # ,
>>> name
'qiwsir'
>>> website
'qiwsir.github.io'

>>> name, website = "qiwsir"    # , , ,
Traceback (most recent call last):
  File "", line 1, in
ValueError: too many values to unpack


このように値を割り当てる場合は、両方の数が一致しなければなりません.
 
  
>>> one,two,three,four = "good"
>>> one
'g'
>>> two
'o'
>>> three
'o'
>>> four
'd'

これはgoodを1つ1つのアルファベットに分割し、左の変数に値を割り当てることに相当します.
 
  
>>> [name,site] = ["qiwsir","qiwsir.github.io"]
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'
>>> name,site = ("qiwsir","qiwsir.github.io")
>>> name
'qiwsir'
>>> site
'qiwsir.github.io'

これでもいいですよ.
実は、付与されたスタイルは少なくありません.コアは変数とあるオブジェクトを対応させることです.相手は、上の方法で、そうかもしれません.
 
  
>>> site = "qiwsir.github.io"
>>> name, main = site.split(".")[0], site.split(".")[1]   # str.split() ? ,google 。
>>> name
'qiwsir'
>>> main
'github'

拡張代入
これは名前を聞くと賦値より強いです.
pythonでは、次の方法を拡張付与と呼びます.
拡張代入文
文に等しい
x+=y
x = x+y
x-=y
x = x-y
x*=y
x = x*y
x/=y
x = x/y
その他類似構造:x&=y x|=y x^=y x%=y x>=y x<=y x*=y x//=y
次の例を見ると、リストがあり、それぞれの数が元のリストより2大きいリストがほしいです.以下の方法で実現できます.
 
  
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
...     i = i+2
...     number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]

上記の強化賦値を使えば、i=i+2はi+=2と書くことができますので、試してみましょう.
 
  
>>> number
[1, 2, 3, 4, 5]
>>> number2 = []
>>> for i in number:
...     i +=2
...     number2.append(i)
...
>>> number2
[3, 4, 5, 6, 7]

これが拡張付与です.なぜ拡張賦値を使用しますか?i+=2であるため、i=i+2よりも計算が速く、後者の右側にiがコピーされる.
上の例はまだ修正できるので、リスト解析の強力な機能を忘れないでください.
 
  
>>> [i+2 for i in number]
[3, 4, 5, 6, 7]