【Pythonクローラー開発の基礎①】Pythonの基礎(変数とその命名規則)

このコラムの記事はクローラーに偏っているため、Python のすべてを網羅することは不可能なので、ここでは重要なポイントのみに焦点を当てます。
記載されていない点があると思われる場合は、追加してください〜



1 Pythonの変数の種類とその詳しい説明

どのプログラミング言語にも変数は欠かせません。Python の変数定義は C 言語や Java に比べて比較的簡単です。変数名の前に変数の型を宣言する必要はなく、変数名 = 変数値と記述するだけです。インタプリタは変数名を自動的に認識し、変数の型として設定します。

どの言語にも変数の型は異なりますが、Python も例外ではなく、数値 (Number)、文字列 (String)、リスト (List)、タプル (Tuple)、セット (Set)、辞書 (辞書)、詳しく紹介しましょう。

1.1 数字

整数、浮動小数点、複素数、ブール値の 4 つの型をサポートします。

  • integer の定義は非常に簡単で、C 言語の int 型に相当し、定義方法は以下の通りです。
a = 10	# 定义了一个整型变量a,其值为10
  • 浮動小数点数も10進数ですが、PythonではCやJavaのように事前に長整数か短整数かを指定する必要がありません。
b = 3.1415926
  • 複素数はあまり使われませんが、実数部と虚数部に分けられ、Pythonでは実数部は数値、虚数部は数値+jで表されます。定義方法は以下の通りです。
c = 3+4j	# 定义了一个复数c,实部为3,虚部为4
  • 真偽の判定にはブール型を使用し、TrueとFalseの2つの値のみを使用し、定義方法は次のようになります。
d = True	# 定义了一个布尔类型的变量d,取值为“真”

1.2 シーケンス

1.2.1 文字列

String は、Python で定義して使用するのに便利で、テキストを記述するデータ型であり、任意の数の文字で構成できます。その定義と使用は、次の規則に従う必要があります。

  • Python 文字列では、一重引用符または二重引用符を使用して定義できます。例えば:
str1 = 'I am a student.'
str2 = "I am a student too."
  • 文字列に一重引用符が含まれている場合は、次のように二重引用符で定義する必要があります。
str3 = "It's a big city!"
  • 文字列に二重引用符が含まれている場合は、次のように単一引用符を使用して定義します。
str4 = 'When I was doing homework, "I love you!", she said.'
  • バックスラッシュ (\) は、Python 文字列の「エスケープ文字」を意味します。次に例を示します。
str5 = 'It\'s a big city!'	# 输出It's a big city!
  • エスケープ文字の場合は、最初の引用符の前に文字を追加することで、r生の文字列を使用することもできます。次に例を示します。
str6 = r'D:\nBaiduNetdiskDownload'	# 输出D:\nBaiduNetdiskDownload
  • 複数行のコメントとしても使用できる複数行の文字列は、3 組の一重引用符を使用して作成されます。
'''
这是一个多行字符串
这是一个多行字符串
'''

1.2.2 リスト

実は、リスト、タプル、セット、辞書はすべて Python のデータ コンテナです。その中の 1 つであるリスト (List) を紹介します。リストは C 言語の
配列に相当します。その定義はより単純で、Python ではさまざまな関数も提供されていますリストオブジェクトの操作メソッド。Python のリスト仕様は次のとおりです。

  • リスト内の各データは要素と呼ばれます
  • []でマークされています
  • リスト内の各要素はカンマで区切られます
  • リストでは、単一、複数、またはネストされたデータを定義できます

リストを作成する方法も数多くあります。次に例を示します。

  • 要素定義リストを角括弧内に直接配置します
list1 = [1, 2, 3, 4]
list2 = ['IT', 123, True]
list3 = [[1, 2, 3], [4, 5, 6]]
list4 = []	# 也可直接定义空链表

リストはコンテナの一種であり、要素の選択方法がコード記述の効率を左右するなど、アプリケーションではより多くの要件があります。したがって、Python はさまざまなアクセス方法を提供しており、次のタプル、セット、辞書も例外ではありません。

  • まず、C や Java と同様に、Python ももちろんサブスクリプトを介してアクセスできるため、ここでは多くは言いません。次に、for ループではリストなどのコンテナが広く使われており、その使用方法は次のとおりです。
list5 = [1, 2, 3, 4, 5, 6]
for num in list5:
	print(num)

1.2.3 タプル

リストとは異なり、タプルは一度定義すると変更できませんが、リストと同様に、異なるタイプの複数の要素をカプセル化できます。したがって、プログラム内でデータをカプセル化する必要があり、カプセル化されたデータが改ざんされることを望まない場合には、タプルが非常に適しています。
タプルを定義するには括弧が必要であり、各データを区切るにはカンマが使用されますが、同時に、データは異なるデータ型であってもかまいません。

  • タプルもリストと同様の方法で作成されます。
t1 = (1, 2, 3, 4)
t2 = ('IT', 123, True)
t3 = ((1, 2, 3), (4, 5, 6))

Python は、タプルが関連する操作を実装するための複数のメソッドも提供します。たとえば、index() は特定のデータを検索するために使用され、データが存在する場合は対応する添字を返し、そうでない場合はエラーが報告されます。count() はデータをカウントするために使用されます。現在の特定のデータ タプルが出現する回数; len() はタプル内の要素の数などをカウントするために使用されます。

1.2.4 シーケンスのスライス操作

まず、シーケンスとは何でしょうか?

シーケンスとは、コンテンツが連続的で順序付けされており、添え字によってインデックスを付けることができるデータ コンテナのタイプを指します
リスト、タプル、文字列はすべてシーケンスとして見ることができます。

スライスとは何ですか?

スライスとは、シーケンスから部分シーケンスを取り出すことを指します

Python では、スライスに使用される構文は、sequence [start subscript: end subscript: step size]です。これは、シーケンスから、指定された位置から開始して要素を順番に取り出し、指定された位置で終了することを意味します。配列が得られます

スライス操作では次の点に注意する必要があります。

  1. start 添字はどこから開始するかを示します。空白のままにすることができ、最初から開始すると見なされます。
  2. 終了添字(含まれていません) はどこで終了するかを示します。空白のままにすることができ、最後までインターセプトされたものとみなされます。
  3. ステップ サイズは、要素の間隔が順番に取得されることを示します。

ステップ サイズについては、プログラミング上の多くのトリックがあります。

  • ステップ サイズ 1 は、要素を 1 つずつ取得することを意味します
  • ステップ サイズ 2 は、毎回 1 つの要素がスキップされることを意味します。
  • ステップ サイズ N は、取得するたびに N-1 個の要素がスキップされることを意味します。
  • 負のステップ サイズは逆フェッチを意味します(開始添字と終了添字も reverse でマークする必要があることに注意してください)。

シーケンススライス操作 (順方向操作) のデモンストレーション:

my_list = [1, 2, 3, 4, 5]
new_list = my_list[1:4]	# 下标1开始,下标4(不含)结束,步长1
print(new_list)		# 结果:[2, 3, 4]

my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:]	# 从头开始,到最后结束,步长1
print(new_tuple)		# 结果:(1, 2, 3, 4, 5)

my_list = [1, 2, 3, 4, 5]
new_list = my_list[::2]		# 从头开始,到最后结束,步长2
print(new_list)		# 结果:[1, 3, 5]

my_str = "12345"
new_str = my_str[:4:2]	# 从头开始,到下标4(不含)结束,步长2
print(new_str)		# 结果:"13"

シーケンススライス操作のデモンストレーション (逆操作):

my_str = "12345"
new_str = my_str[::-1]	# 从头(最后)开始,到尾结束,步长-1(倒序)
print(new_str)		# 结果:"54321"

my_list = [1, 2, 3, 4, 5]
new_list = my_list[3:1:-1]	# 从下标3开始,到下标1(不含)结束,步长-1(倒序)
print(new_list)		# 结果:[4, 3]

my_tuple = (1, 2, 3, 4, 5)
new_tuple = my_tuple[:1:-2] 	# 从头(最后)开始,到下标1(不含)结束,步长-2(倒序)
print(new_tuple)		# 结果:(5, 3)

1.3 収集

collection も上記 3 つと同様に Python が提供するデータコンテナですが、重複排除という特殊な機能を持っています。リスト、タプル、文字列の場合、同じ要素を繰り返し出現させることができますが、コレクションの場合、挿入する要素がすでに出現している場合は、繰り返し挿入できません

セットは中括弧 { } または set() 関数を使用して作成できます。

: 空のコレクションを作成するには、{ } の代わりに set() を使用する必要があります。これは、空の辞書の作成に { } が使用されるためです。

  • 重複排除機能のデモンストレーション:
s1 = {
    
    1, 2, 3, 4, 4, 3, 2, 1}
print(s1)		# {1, 2, 3, 4}
  • セットは順序付けされていない要素を格納します。
a = set('abcdefg')
b = set('abc')
print(a)	# {'f', 'd', 'e', 'b', 'g', 'c', 'a'}
print(b)	# {'b', 'c', 'a'}
  • 交差、結合、補完など、一部の集合演算は集合間で実行できます。
print(a - b)	# {'d', 'g', 'f', 'e'}	
print(a ^ b)	# {'e', 'f', 'd', 'g'}
print(a & b)	# {'b', 'c', 'a'}
print(a | b)	# {'b', 'e', 'f', 'd', 'g', 'c', 'a'}

1.4 辞書

クローラーの操作では、対応するレスポンスボディの多くの部分が辞書で構成されているため、クローラーの開発では特に重要です。同時に、json オブジェクトとの間で変換することもできます。これについては、後の記事で紹介します。

辞書は、コレクションと同様に {} で表されますが、違いは、辞書の各要素がコロンで区切られた 2 つの値を持ち、前者はキーと呼ばれ、後者は値と呼ばれることです。構文は次のとおりです。

  • プリミティブを保存するには { } を使用します。各要素はキーと値のペアです
  • 各キーと値のペアには、キーと値が含まれます (コロンで区切られています)。
  • キーと値のペアはカンマで区切ります
  • キーと値には任意のタイプのデータを指定できます(キーを辞書にすることはできません)。
  • キーを繰り返すことはできず、繰り返すと元のデータが上書きされます。

辞書定義では次の形式を使用できます。

dict = {
    
    "nane": "张三", "age": 18, "sex": "男"}
dict1 = {
    
    }	# 定义了一个空字典

同時に、辞書をネストすることもできますが、キーを辞書型にすることはできません。次に例を示します。

stuScore = {
    
    "张三" : {
    
    "语文" : 89, "数学" : 78, "英语" : 77}, "李四" : {
    
    "语文" : 69, "数学" : 94, "英语" : 79}}

Dictionary のコンテンツを取得する必要がある場合は、キーの値を使用して値を取得できます。次に例を示します。

print(stuScore["张三"])	# {'语文': 89, '数学': 78, '英语': 77}

さらに、辞書を追加、削除、変更することもできます。

dict = {
    
    "nane": "张三", "age": 18, "sex": "男"}	# 定义了一个空字典
dict["score"] = 100	# 增加元素
del dict["name"]	# 删除元素
dict["name"]="老六"	# 修改元素

辞書の場合、Python によって提供される操作は次のとおりです。

  • len (辞書): 辞書内のキーと値のペアの数を返すために使用されます。
  • Dictionary.pop(Key): キーに対応する値を取り出し、辞書内のこのキーのキーと値のペアを削除するために使用されます。
  • Dictionary.clear():辞書をクリアします
  • Dictionary.keys():辞書のすべてのキーを取得します。これは辞書をループするために使用できます。

その中で、キー、値、およびアイテムのメソッドは、ディクショナリを走査するために使用できます。

# 1.使用keys
for i in dict.keys():
    print(i)
# 2.使用values
for i in dict.values():
    print(i)
# 3.使用items
for i in dict.items():
    print(i)
# 4.可使用items获取key和value
for key,value in dict.items():
    print(key,value)

1.5 データコンテナの比較

リスト タプル 集める 辞書
要素の種類 恣意的に 恣意的に 文字のみ 恣意的に Keyは辞書以外は任意、Valueは任意
添字インデックス サポート サポート サポート サポートしません サポートしません
繰り返し要素 サポート サポート サポート サポートしません サポートしません
変更可能性 サポート サポートしません サポートしません サポート サポート
データの順序 はい はい はい いいえ いいえ
使用するシーン 変更および繰り返し可能なデータレコードのバッチ 変更不可能で反復可能なデータ レコードのバッチ 一連のレコード 反復不可能なデータレコード キーによる値のデータレコードを取得します

2 Python 変数の命名規則

まず、変数の命名規則は C、Java、その他の言語と同じです。

  1. 文字、数字、アンダースコアのみで構成できます
  2. 数字で始めることはできません。たとえば、1s は間違った変数名です。
  3. などPython 組み込みキーワードはfor使用できません。while
  4. たとえば、大文字と小文字が厳密に区別され、Stu変数stuではありません

次に、変数の命名規則では通常、キャメルケースの命名方法が使用されます。つまり、最初の単語の最初の文字が小文字であることを除き、残りの単語の最初の文字は大文字になります。pageRank

最後に、もう 1 つ注意すべき点は、変数の名前はテキスト内で周知されている必要があります。たとえば、name の変数名は や などと書く必要があります。このように書くと、開発に影響namemy_nameますa, b, c。プロジェクト。

おすすめ

転載: blog.csdn.net/z135733/article/details/131068353