序文
Python の変数は、プログラマが使用するさまざまなメソッドを含む C++ のオブジェクトに相当します。
Python には、str()、sort()、その他の関数などのさまざまな組み込み関数もあり、プログラマはこれらを使用してさまざまなオブジェクトを操作できます。
Pythonのコメントは「#」を使用します
Windows に Python がインストールされていない場合は、Python 公式 Web サイトからダウンロードしてインストールできます。
通常、Python インタープリターは Linux に自動的にインストールされます。
Python ファイルを作成できますが、.py で終わる必要があることに注意してください (実際の Linux ファイルの属性はファイルの接尾辞によって決まりませんが、ファイルの作成時と作成方法によって決まります)。Python インタープリターを使用して実行します。
Python ターミナルを使用して Python コードを作成し、実行することもできます。exit() または Ctrl+d を使用して Python ターミナルを終了します。
Python の禅:
1. 変数
1.1 変数の命名
Python の変数の名前付けは、C 言語の変数の名前付けに似ています。
- 文字、数字、アンダースコアのみを含めることができます。変数名は文字またはアンダースコアで始めることができますが、数字で始めることはできません。
- 変数名にはスペースを含めることはできません。単語の区切りにはアンダースコアを使用できます。
- Python のキーワードや関数名を変数名として使用しないでください。つまり、Python が特別な用途のために予約している単語は使用しないでください。
2.1 変数の定義
Python の変数定義では型を指定する必要はなく、直接定義するだけです。
2.2 複数変数の代入
a=b=c=1
a,b,c=1,2,'tom'
2. タイプ
2.1 文字列
2.1.1 定義
Python では、すべての文字列は引用符で囲まれます。引用符には一重引用符または二重引用符を使用できます。エスケープ記号もサポートしています。
この柔軟性により、文字列に二重引用符や一重引用符を含めることができます。
Python の文字列は不変です。つまり、文字列が作成されると、その文字を直接変更することはできません。内容は、新しい文字列を作成することによって間接的にのみ変更できます。
2.1.2 操作
- 各単語の最初の文字を大文字で表示します。title()メソッド。
- すべて大文字の upper() に変換、すべてを小文字 lower() に変換
- 文字列「+」または「+=」を連結します。
- スペースを削除します。ストリップ()は両端のスペースを削除し、rstrip()は右側のスペースを削除し、lstrip()は左側のスペースを削除します。
- 文字列を分割します。string split() メソッドを使用して、指定された文字に従って文字列を文字列のリストに分割します。
- 文字列を連結します。join() 関数を使用して、指定された文字に従って文字列リストを結合します。
2.1.3 文字列の比較
- == と !=:
== は 2 つの文字列値が同じかどうかを比較し、!= は == の逆です。どちらの比較方法でも大文字と小文字が区別されます。
- >、<、>=和<=:
文字列サイズの比較は、辞書の文字順序に基づいて行われ、大文字と小文字が区別されます。
- は:
2 つの文字列がまったく同じかどうかを比較するために使用されます。値だけでなくアドレスも必要です。
- 大文字と小文字を区別した文字列の比較
比較するすべての文字列を大文字または小文字に変換してから比較します。
または、 str.casefold() メソッドを使用します。このメソッドも大文字を小文字に変換しますが、Lower は ascll に存在する文字にのみ制限され、casefold は ascll に存在する文字に限定されません。
2.1.4 Python2 の print ステートメント
python2 では、出力したい内容を括弧で囲む必要はありません。技術的に言えば、python3 の print は意図的に省略されていないため、括弧は必須です。ただし、一部の python2 print ステートメントには括弧も含まれており、その動作は python3 とは若干異なります。
2.2 整数
2.2.1 操作
Python では、整数に対して加算 (+)、減算 (-)、乗算 (*)、除算 (/)、べき乗 (**)、および剰余 (%) 演算を行うことができます。
操作の順序を変更するには、かっこを使用します。
2.2.2 浮動小数点数
Python では、大きい数値と小さい数値を浮動小数点数と呼びます。操作もサポートされます。しかし、演算結果の小数点以下の桁数が不確かであり、この問題は浮動小数点数を表現する際にどの言語でも存在しますが、その原因はコンピュータ内部での数値の表現方法にあります。
2.2.3 str() 関数
str() 関数は、文字列以外の値を文字列として表すことができます。
2.3 リスト
リストは、特定の順序で配置された一連の要素で構成されます。文字列、数値、リストなどを含めることができます。リストには、無関係な要素を含めることができます。
角括弧 ([]) は、Python ではリストを表すために使用されます。要素を区切るにはカンマを使用します。
print を使用してリストを印刷すると、角括弧を含むリスト内のすべての要素が印刷されます。
2.3.1 リスト要素へのアクセスと使用
要素にはインデックスを使用してアクセスできます。C 言語と同様に、リストのインデックスも 0 から始まります。これは、リスト操作の基礎となる実装に関連しています。
C言語の配列インデックスはなぜ0から始まるのでしょうか?
C言語の配列はメモリアドレスのオフセットで表現されます。たとえば、arr[0] <=> arr + 0、arr は配列の開始アドレス、プラス 0 が最初の要素です。arr[1] <=> arr+1 の場合、開始アドレスは 1 (実際には arr の開始アドレスに要素タイプのサイズを加えたもの) だけ増加し、2 番目の要素がアクセスされます。
Python では特別な構文も提供されます。インデックス -1 を指定すると、リストの最後の要素を返すことができます。この規則は、他の負のインデックスにも適用されます (たとえば、インデックス -2 は最後から 2 番目のリスト要素を返します)。
リスト要素を使用すると、インデックスによってリスト要素にアクセスし、割り当てや変更を行うこともできます。
2.3.2 リストへの要素の追加
- 要素をリストの末尾に追加するには、リストの append メソッドを使用します。
- リストの末尾に複数の要素を追加するには、extend() メソッドを使用するか、「+=」または「+」を使用します。
- リストに要素を挿入するには、insert() を使用してリスト内の任意の場所に新しい要素を追加します。この の新しい要素インデックスと要素を指定する。
2.3.3 リストからの要素の削除
要素を削除すると、その要素は使用できなくなります。
- del を使用して要素を削除するには、リスト内の要素の位置 (インデックス) を知る必要があります。
たとえば、「redline」要素を削除する場合、そのインデックスは 2 です。
- リスト メソッド Pop() を使用して要素を削除し、変数を使用して要素を取得できます。
Pop() がパラメータを渡さない場合、それは最後の要素を表し、渡されたパラメータは対応する削除された要素のインデックスを表します。
- 値に基づいて要素を削除します。Remove() メソッドを使用します。
注: Remove() メソッドは、最初に指定された値のみを削除します。削除する値がリスト内に複数回表示される場合は、次の操作が必要です。
2.3.4 組織リスト
- リストの sort() メソッドを使用してリストを永続的に並べ替えます。
パラメータ reverse=True を sort() メソッドに渡すと、アルファベットの逆順で永続的に並べ替えることができます。
並べ替えには比較が必要なため、リストの sort() メソッドではリスト要素が同じである必要があります。
リストの要素に複数の要素も含まれている場合、比較される要素を取得する関数をカスタマイズできます。
- 元のリストを変更せずにリストを一時的に並べ替えるには、sorted() 関数を使用します。
- リストを逆にするには、リストの reverse() メソッドを使用します。
- リストの長さを取得します。len()関数を使用する
-
for ループを使用してリスト全体を反復処理します。
2.3.5 値のリストを作成する
- range() 関数を使用して、数値範囲を生成します。
range() の最初のパラメータは一連の数値の最小値、2 番目のパラメータは最大値 (これを除く)、3 番目のパラメータはステップ サイズです。
range() 関数は、ステップ サイズを指定する 3 番目のパラメーターを設定することもできます。デフォルトのステップ サイズは 1 です。
- range() 関数を使用して数値のリストを作成します。
list() 関数を使用するか、list append() メソッドを使用します。
- 数値のリストに対して簡単な統計計算を実行します。最大値、最小値、合計を求めます。
2.3.6 リストの解析
リスト内包表記は、for ループと新しい要素を作成するコードを 1 行に結合し、新しい要素を自動的に追加します。
この構文を使用するには、まず説明的なリスト名を指定し、次にリストに格納する値を生成する式を角かっこで定義します。
式は、要素値 + 要素セット + 条件のように理解できます。
Python には他の種類の解析もあります。
- 角括弧が使用されている場合はリスト分析を意味します
- 中括弧が使用されている場合は、コレクションの解析を示します。
- 中括弧が使用されており、内部の要素が key:value モードである場合、それは辞書解析を意味します。
2.3.7 リストのコピー
スライスを使用してリストをコピーし、リストに可変長要素が含まれていない場合は、新しいリストを取得できます。可変長型の要素がある場合、シャローコピー時にスライスをコピーするため、元のリストの要素の参照から新たに取得したリストの要素をコピーし、2つの要素で同じリストを実行します。
スライスを使用せずにリストをコピーすると、直接代入を使用すると、新しいリストは取得されませんが、リストへの参照が取得されます。2 つのリストは実際には同じスペースを共有します。
2.3.8 関数とメソッドの一覧表示
- 関数
- cmp(list1, list2): 2 つのリストの要素を比較します。
- len(list): リスト内の要素の数
- max(list): リスト要素の最大値を返します。
- min(list): リスト要素の最小値を返します。
- list(seq): タプルをリストに変換します。
- リストメソッド
- list.append(): リストの最後に新しいオブジェクトを追加します。
- list.count(obj): リスト内に要素が出現する回数をカウントします。
- list.extend(seq): 別のシーケンスからの複数の値をリストの最後に一度に追加します
- list.index(obj): リスト内の値に最初に一致するインデックス値を検索します。
- list.pop(index=-1): リストから要素を削除し、デフォルトで最後の要素を設定し、要素の値を返します。
- list.remove(obj): リスト内の最初に出現した値を削除します。
- list.reverse(): リスト要素を逆順にします
- list.sort(cmp=None, key=None, reverse=False): 元のリストを並べ替えると、元のリストが変更されます
- list.sorted(cmp=None, key=None, reverse=False): リストを一時的にソートし、元のリストを変更せずにソートされたリストを返します。
2.4 タプル
括弧で囲まれた要素を使用して定義されたオブジェクトをタプルと呼びます。インデックスを使用して要素にアクセスできますが、タプル内の要素は変更できません。
2.4.1 タプルの変更
タプル内の要素は変更できませんが、タプル変数は変更できます。
タプルに可変長要素が含まれている場合、その可変長要素を変更できます。
タプル結合の組み合わせ
タプルのコピー
2.4.2 タプルの走査
2.4.3 タプルの削除
タプル内の要素は削除できませんが、del ステートメントを使用してタプル全体を削除できます。
2.4.4 タプルの比較
Python ではタプルを比較できます。比較方法は次のとおりです。
- 同じ型の場合は、対応する値を順番に比較し、結果を返します。
- 同じタイプでない場合は、それらが数字であるかどうかを確認します
- 数値の場合は、必要な数値キャストを実行してから比較します。
- 一方が数値の場合、もう一方の要素は「大きく」なり、その数値は最小になります。
- それ以外の場合は、型名のアルファベット順で比較します。
1 つの要素が最初に最後に到達すると、もう 1 つの長いタプルの方が大きくなります。
2.4.5 Python 組み込み関数
- cmp(tup1,tup2): 2 つのタプル要素を比較します
- len(tup): タプルの要素数を計算します。
- max(tup): タプル内の要素の最大値を返します。
- min(tup): タプル内の要素の最小値を返します。
- tuple(seq): リストをタプルに変換します
2.5 辞書
Python では、ディクショナリは一連のキーと値のペアであり、各キーは値に関連付けられており、キーを介してそれに関連付けられた値にアクセスできます。キーのタイプは、 Python では数値、文字列、またはタプルです。リストや辞書は使用できません。同等のデータ型です。キーに関連付けられた値は、数値、文字列などの任意のデータ型です。 、リスト、さらには辞書です。
注: Python の辞書のキーは不変で、値は変更可能です。
Python では、辞書は中括弧 {} で囲まれた一連のキーと値のペアです。キーと値はコロンで区切られ、キーと値のペアはカンマで区切られます。
2.5.1 辞書内の値へのアクセス
辞書内の値には、角括弧を使用したキー値を通じてアクセスできます。辞書にないキー値にアクセスすると、エラーが報告されます。
2.5.2 辞書の変更
2.5.3 辞書を調べる
- 辞書を順番に走査する
- 辞書内のすべてのキーと値を反復処理します。
2.5.4 辞書の組み込み関数とメソッド
- 関数
- cmp(dict1,dict2): 2 つの辞書要素を比較します。
- len(dict): 辞書キーの数をカウントします。
- str(dict): 出力辞書の印刷可能な文字列表現
- type(dict): 入力オブジェクトのタイプを返します。
- 方法
- dict.clear(): 辞書内のすべての要素を削除します
- dict.copy(): 辞書の浅いコピーを返します。
- dict.fromkeys(seq,val): シーケンス seq 内の要素をキーとして使用して新しい辞書を作成します。val は辞書内のすべてのキーに対応する初期値です。
- dict.get(key,default=None): 指定されたキーの値を返します。キーが存在しない場合は、デフォルト値を返します。
- dict.has_key(key): キーが辞書にある場合は True を返し、それ以外の場合は false を返します。
- dict.items(): タプルの走査可能な配列をリストとして返します。
- dict.keys(): 辞書のすべてのキーをリストとして返します。
- dict.values(): 辞書内のすべての値をリストとして返します
- dict.setdefault(key,default=None): get() と似ていますが、キーが辞書に存在しない場合、キーが追加され、値がデフォルトに設定されます。
- dict.update(dict2): 辞書 dict2 のキーと値のペアを dict に更新します。
- dict.pop(key,default): 辞書内の指定されたキー key に対応する値を削除し、戻り値は削除された値になります。キー値を指定する必要があります。それ以外の場合は、デフォルト値を返します。
- Popitem(): 辞書内の最後のキーと値のペアを返して削除します。戻り要素の型はタプルです。
2.6 セット
セットは、順序付けされていない非反復要素のセットであり、その基本機能には、関係のテストや重複要素の削除が含まれます。Set オブジェクトは、和集合、交差、差分対称差分集合などの数学的演算もサポートします。
2.6.1 コレクションの作成
コレクション内の要素も「{}」で囲まれていますが、空のコレクションを作成するには set() を使用する必要があり、{} を使用すると空の辞書が作成されます。
セット コレクション クラスに必要なパラメーターは、シーケンス、辞書などの反復子型である必要があります。次に、それを順序付けされていない繰り返しのない要素に変換します。セットは重複しないため、文字列、リスト、およびタプルに対して重複排除操作を実行できます。
- 空のコレクションを作成する
#创建空集合
s=set()
#创建列表类型集合
s1=set([])
#创建元组类型集合
s2=set(())
#创建字典类型集合
s3=set({})
- 空ではないコレクションを作成する
2.6.2 収集操作
- 要素の追加
要素を追加するには、add() と update() という 2 つの方法があります。
add(): このメソッドは、受信した要素をリスト全体に追加します。
update(): 受信した要素を 1 つの文字に分割し、コレクションに保存し、重複した要素を削除します。複数の値を一度に追加できます
- 要素の削除
削除(要素) | element: 検索および削除される要素を表します | setVar セット内の element 要素を検索し、存在する場合は削除します。見つからない場合はエラーが報告されます。 |
---|---|---|
破棄(要素) | element: 検索および削除される要素を表します | setVar コレクション内の element 要素を見つけて、存在する場合は削除し、見つからない場合は何も行いません。 |
ポップ() | 型セットの の未定義の要素を削除して返します。空の場合は KeyError を発生させます。 | |
クリア() | s コレクション内のすべての要素をクリアします |
取り除く():
破棄():
ポップ()とクリア()
2.6.3 コレクションの走査
注: インデックスを介してコレクションにアクセスすることはできません。enumerate() 関数を使用したインデックスは、enumerate() 関数自体によって確立されます。
2.6.4 集合の相互補数
これはコレクションであるため、コレクションの操作の一部に従います。交差、和集合、差異の検索など。
交差点 | & | 2 つのセット間の共通要素を取得する | >>> セット1 & セット2 |
連合 | | | 2 つのセットのすべての要素を取得する | >>> セット1 |
差分セット | - | あるセットから別のセットに見つからない要素を取得する | >>> セット 1 - セット 2 {1,2} >>> セット 2 - セット 1 |
対称差分セット | ^ | A&B に属さないセット A および B の要素を取得します | >>> セット 1 ^ セット 2 |
- 交差点
Python でセットの共通部分を見つけるために使用される記号は「&」で、2 つのセットの共通要素を返します。
- 連合
Python でセットの和集合を見つけるために使用される記号は '|' で、2 つのセットをマージして重複を削除した後の要素を返します。
- 差分セット
Python でセットの差分セットを見つけるために使用される記号は「-」です。これは、一方のセットにある、もう一方のセットにはない要素を取得します。
差分記号「-」は設定方法の差分に相当します。
- 対称差分セット
Python で集合の和集合を見つけるために使用される記号は「^」です。これは、2 つの集合の交差部分に存在しない 2 つの集合の要素を取得します。
対称差分集合表記 '^' は、set メソッド metric_difference と同等です。
2.6.5 コレクションの範囲判定
セットは、>、<、>=、<=、==、!= を使用して、セットが別のセットに完全に含まれているかどうかを判定することができ、子親セット判定機能も使用できます。
これらのシンボルは、セット要素のサイズを比較するために使用されるのではなく、2 つのセット間の関係を判断するために使用されます。
2.6.6 不変コレクションのフローズンセット
Frozenset は不変のコレクションです。コレクション内の要素を追加したり削除したりできる set とは異なり、このコレクションの内容は不変です。文字列やタプルに似ています。その他の機能はセットと同じです。
Frozenset の不変コレクションには、add()update()、remove()、discard()、pop()clear() メソッドなどの集合演算関数はまったくありません。