Pythonコアプログラミングと条件判定とループ

1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...

1条件文

単一の条件文の場合1.1

if expression:
expre_true_suite

条件付き判定文が複数ある場合は1.2

単一のif文は、ブール演算子を使用して複数の条件判定を行うことができます。

1.3 else判定文

if expression:
expr_true_suite
else:
expr_false_suite

Python構文の場合、elseステートメントはwhileループとforループでelseステートメントを使用することもできます。 ループで使用すると、else節はループが完了した後にのみ実行されます。つまり、break文はelseブロックもスキップします。

1.4 elifステートメント

if expression1:
expr1_true_suite
elif expression2:
expr2_true_suite

Python辞書を使用できるいくつかの検索操作では、辞書検索が優先されるべきです。 ディクショナリの検索操作は、if-elif-else文やforループなどのシーケンス問合せよりも高速であるため

1.5条件式(3項演算子)

X if C else Y
>>> smaller = x if x < y else y

2ループ文

2.1 while文

while expression:
suite_to_repeat

2.2 for文

for文は、シーケンスメンバーを走査し、 列表解析生成器表达式で使用できます。イテレータのnext()メソッドを自動的に呼び出し、StopIteration例外をキャッチしてループを終了します。

for iter_var in iterable:
suite_to_repeat

forステートメントを繰り返すには、基本的に3つの方法があります。
1、シーケンス項目を反復する

for item in list:
suite

2、シーケンスインデックスを反復する

for item in range(len(list)):
suite

3、アイテムとインデックスの繰り返し

for num,value in enumerate(list):
suite

3つの組み込み関数

3.1 range()

range(start, end, step=1)

range()は条件付きループのように見えますが、実際はrange()は最初に指定された条件でリストを生成し、次にfor for forステートメントのリストを使用します。

3.2 xrange()

Xrange()はrange()のように機能します。 しかし、メモリ内のリストの完全なコピーを作成するわけではなく、forループでのみ使用できます。 そのパフォーマンスは、リスト全体を生成しないため、range()よりもはるかに高いです。 トラバースを使用する場合、xrange()は一度に1つの値しか返しません。

その他の組み込み関数

シーケンスに関連する関数にはいくつかの種類があります。
Sorted()、reversed()、enumerate()、zip()

その他の4つの補助声明

4.1 break文

breakステートメントは、現在のループを終了し、次のステートメントにジャンプします。これは、whileステートメントとforループステートメントに使用できます。

4.2継続声明

continueステートメントが検出されると、プログラムは現在のループを終了し、残りのステートメントを無視してループの先頭に戻ります。 次の反復を開始する前に、それが条件付きループである場合、条件式が検証され、反復ループである場合、反復可能な要素がまだ存在するかどうかが検証されます。 反復は、検証が成功した後にのみ開始されます。

4.3 pass文

パスステートメントは何もしません

5つのイテレータとiter()関数

反復子を学習する前に、いくつかの定義を定義する必要があります。反復可能オブジェクト、反復子反復可能とは、forループに直接適用できるオブジェクトを指します。isinstance()

isinstance([],Iterable)

イテレータは、次の関数で呼び出すことができ、次の値を連続的に返すオブジェクトであり、isinstance()によっても判断できます。

isinstance([],Iterator)

反復子は反復可能オブジェクトから継承し、反復可能オブジェクトは_ iterを含み、反復子は iter だけでなく次の_メソッド 含むので、すべての反復可能オブジェクトは組み込み関数iter()によって反復子に変換できますnext()関数呼び出し。

5.1シーケンスイテレータ

myTuple = (123, 'xyz', 45.67)
fetch = iter(myTuple)
while True:
try:
i = fetch.next()
except StopIteration:
break

5.2辞書イテレータ

辞書イテレータはそのキーを横断します。つまり、myDict.keys()のeachKeyの文は、myDictのeachKeyのように省略できます。
同時に、反復を定義するための辞書には3つの組み込みメソッドがあります。
myDict.iterkeys():キーによる繰り返し
myDict.itervalues():値を繰り返し処理する
myDict.iteritems():キーと値のペアを反復処理する

5.3ファイルイテレータ

ファイルイテレータは自動的にreadline()メソッドを呼び出します。このメソッドは、テキストファイルのすべての行を繰り返し処理します。

5.4イテレータの作成

オブジェクトのiter()を呼び出してイテレータを取得します。 構文は次のとおりです。

iter(obj)
iter(func, sentinel)

パラメータをiter()に渡すと、シーケンスを渡すかどうかがチェックされます。 その場合は、インデックスに従ってシーケンスの最後から0までを繰り返します。 イテレータを作成する別の方法は、クラスを使用することです。iter()に2つの引数を渡すと、iteratorの次の値がsentinelに等しくなるまで繰り返しfuncを呼び出します。

それは注目に値する:
変数オブジェクトを変更するときは、変更することはできません。 詳細は以下を参照してください
myDidct = {'a':1,'b':2,'c':3,'d':4}
for eachKey in myDict:
print eachKey, myDict[eachKey]
del myDict[eachKey]
上の例では、プログラムは反復中のキー名eachKeyを持つエントリを削除しようとします。その時点で、辞書のサイズが変更されます。 これはPythonプログラムでは許可されていません。

6リストの解像度

[expr for iter_var in iterable]
[expr for iter_var in iterable if cond_expr]

リスト解析の1つの欠点は、リスト全体を作成するためにすべてのデータを生成する必要があることです。 これは、大量のデータを持つイテレータに悪影響を及ぼします。 ジェネレータはリスト解析と似ていますが、実際には数値のリストを作成するのではなく、代わりにジェネレータを返します。 このジェネレータは、エントリが計算されるたびにこのエントリを生成します。

(expr for iter_var in iterable if cond_expr)


1 Star2 Stars3 Stars4 Stars5 Stars (まだ評価されていません)
Loading...
      この投稿は審査処理中  | 元のサイトへ