キーワードとは、Pythonで予約されている単語です。 キーワードを変数名、関数名、その他の識別子として使用することはできません。

Pythonプログラミングの全キーワード一覧

の場合

プログラミング言語Pythonのキーワード
False await else import pass
なし ブレーク 除く イン レイズ
クラス 最後 is 戻り
continue for lambda try
as def from nonlocal while
assert del global not with
async elif if or yield

上記のキーワードはPythonのバージョンにより変更される可能性があります。 追加されるものもあれば、削除されるものもあるかもしれません。

>>> import keyword>>> print(keyword.kwlist)

Description of Keywords in Python with examples

True, False

True and False are truth values in Python. Pythonの比較演算や論理(Boolean)演算の結果です。 例えば、

>>> 1 == 1True>>> 5 > 3True>>> True or FalseTrue>>> 10 <= 1False>>> 3 > 7False>>> True and FalseFalse

ここで、最初の3つの文は真なので、インタプリタはTrueを返し、残りの3つの文はFalseを返すことがわかります。 PythonのTrueFalseは、10と同じ意味です。 これは次の例で正当化できます:

>>> True == 1True>>> False == 0True>>> True + True2

None

NoneはPythonの特別な定数で、値がないこと、またはNULL値を表わします。 複数のNoneオブジェクトを作ることはできませんが、変数に代入することは可能です。 これらの変数は互いに等しくなります。

NoneFalse, 0 または空のリスト、辞書、文字列などを意味しないことに特に注意する必要があります。 例えば、

>>> None == 0False>>> None == False>>> None == FalseFalse>>> x = None>>> y = None>>> x == yTrue

何も返さないボイド関数は、自動的にNoneオブジェクトを返します。 Noneは、プログラムフローがreturnステートメントに遭遇しない関数でも返されます。 例えば、

def a_void_function(): a = 1 b = 2 c = a + bx = a_void_function()print(x)

Output

None

このプログラムでは、内部で何らかの演算を行うものの、値を返さない関数があります。 ですから、xを表示すると、自動的に(暗黙のうちに)返されるNoneが得られます。 同様に、別の例を示します。

def improper_return_function(a): if (a % 2) == 0: return Truex = improper_return_function(3)print(x)

Output

None

この関数にはreturn文がありますが、すべてのケースで到達しているわけではありません。 この関数は入力が偶数のときだけTrueを返します。

この関数に奇数を与えると暗黙のうちにNoneが返されます。

and, or , not

and, or, not はPythonの論理演算子です。 and はオペランドがともに True のときのみ True になる。 andの真理値表は以下の通りである。

の真理値表

andの真理値表
A B A と B
False
FalseFalse
False True
False FalseFalse

or はオペランドのいずれかがTrueであれば、Trueとなる。 orの真理値表は以下のとおりです。

orの真理値表
A B A or B
FalseTrue
False True
False False

not演算子は真実値の反転に使用される。 notの真理値表は以下の通りです。

Truth tabel for not
A not A
True False
False True

以下に使用例を示します。

>>> True and FalseFalse>>> True or FalseTrue>>> not FalseTrue

as

as は、モジュールをインポートする際に別名を作成するために使用されます。

例えば、Python には math という標準モジュールがあります。 例えば、πの余弦が何であるかを別名を用いて計算したいとします。 as:

>>> import math as myAlias>>>myAlias.cos(myAlias.pi)-1.0

ここで、mathモジュールをmyAliasという名前を付けてインポートしています。 これで、mathモジュールをこの名前で参照できるようになった。

assert

assert はデバッグのために使われます。

プログラミングをしていると、内部の状態を知りたくなったり、仮定が正しいかどうかをチェックしたくなったりすることがあります。 assertはこのような場合に役立ち、より便利にバグを見つけることができます。 assert の後には条件が続きます。

条件が真であれば、何も起こりません。 しかし、条件が偽の場合、AssertionErrorが発生する。 例えば、

>>> a = 4>>> assert a < 5>>> assert a > 5Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError

理解を深めるために、AssertionErrorと一緒に表示されるメッセージも用意することができる。

>>> a = 4>>> assert a > 5, "The value of a is too small"Traceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>AssertionError: The value of a is too small

この時点で、

assert condition, message

if not condition: raise AssertionError(message)

async, await

キーワード asyncawait は Python の asyncio library が提供するものであることがわかるだろう。 これらはPythonで並列コードを記述するために使用される。 例えば、

import asyncioasync def main(): print('Hello') await asyncio.sleep(1) print('world')

プログラムを実行するには、

asyncio.run(main())

上記のプログラムでは、asyncキーワードで関数が非同期に実行されることを指定しています。

ここでは、最初のHelloが表示されています。 awaitキーワードで1秒待たされる。

break は、forwhile ループの中で、その通常の動作を変更するために使用されます。

これは次の二つの例で説明できる。

for i in range(1,11): if i == 5: break print(i)

Output

1234

ここで、forループは1から10までの数字を表示するつもりである。 しかし、iが5になるとifの条件が満たされ、ループを抜ける。

for i in range(1,11): if i == 5: continue print(i)

出力

1234678910

ここで、continueを使って同じプログラムをしています。 つまり、条件を満たすとそのイテレーションはスキップされる。 しかし、ループを抜けるわけではありません。 したがって、5以外のすべての値が出力されます。

Python break と continue 文についてもっと知る。

class

class は Python で新しいユーザー定義クラスを定義するために使われます。

クラスとは実際の状況を表現しようとする関連した属性とメソッドのコレクションです。 データと機能をクラスでまとめるこの考えは、オブジェクト指向プログラミング (OOP) の概念の中心です。

クラスはプログラムのどこででも定義することができます。 しかし、モジュールで単一のクラスを定義するのは良い習慣である。

class ExampleClass: def function1(parameters): … def function2(parameters): …

Python オブジェクトとクラスについてもっと知る。

def

def はユーザー定義関数を定義するために使用されます。

def の使用法を以下に示します。

def function_name(parameters): …

Python 関数についてもっと知る。 Pythonではすべてがオブジェクトです。 変数の参照を削除するには del

>>> a = b = 5>>> del a>>> aTraceback (most recent call last): File "<string>", line 301, in runcode File "<interactive input>", line 1, in <module>NameError: name 'a' is not defined>>> b5

ここで、変数aの参照が削除されたことが分かります。 つまり、それはもう定義されていない。

del はリストや辞書から項目を削除するためにも使われます。

>>> a = >>> del a>>> a

if, else, elif

if, else, elif は条件分岐や意思決定に使われます。

ある条件をテストしてその条件が真のときだけブロックを実行したい場合、ifelif が使用されます。 elifはelse ifの略。 elseは条件が偽の場合に実行されるブロックである。 これは、次の例で明らかになります:

def if_example(a): if a == 1: print('One') elif a == 2: print('Two') else: print('Something else')if_example(2)if_example(4)if_example(1)

Output

TwoSomething elseOne

ここで、関数は入力された数字をチェックし、それが1または2であれば結果を表示します。 これ以外の入力があると、elseの部分が実行されます。

Python if と if…else Statement についてもっと知る。

except, raise, try

except, raise, try は Python で例外とともに使われます。

例外とは基本的には、プログラム実行中に何か問題が起こったというエラーを指します。 IOError, ValueError, ZeroDivisionError, ImportError, NameError, TypeError などはPythonの例外のいくつかの例です。 try...except ブロックは Python で例外をキャッチするために使用されます。

我々は raise キーワードを使用して明示的に例外を発生させることができます。 以下はその例です。

def reciprocal(num): try: r = 1/num except: print('Exception caught') return return rprint(reciprocal(10))print(reciprocal(0))

出力

0.1Exception caughtNone

ここで、関数reciprocal()は入力された数値の逆数を返します。

10を入力すると、通常の出力である0.1が得られます。 しかし、0を入力すると自動的にZeroDivisionErrorが発生します。

これをtry…exceptブロックで捕らえ、Noneを返しています。

if num == 0: raise ZeroDivisionError('cannot divide')

finally

finally はリソースやファイルストリームを閉じるために try…except ブロックと共に使用されます。

finally を使用すると、処理されない例外があってもその中のコードブロックが実行されることを保証します。 たとえば、

try: Try-blockexcept exception1: Exception1-blockexcept exception2: Exception2-blockelse: Else-blockfinally: Finally-block

ここで Try-block に例外があった場合、それは except または else ブロックで処理されます。 しかし、どのような順番で実行が流れても、エラーがあってもFinally-blockが実行されるので安心である。 これはリソースの後始末に便利です。

Pythonプログラミングの例外処理について詳しく見る

for

forはループ処理に使用されます。 一般的には、ループさせたい回数がわかっているときにforを使います。

Pythonでは、リストや文字列などのあらゆるタイプのシーケンスで使用することができます。

names = for i in names: print('Hello '+i)

Output

Hello JohnHello MonicaHello StevenHello Robin

Python for loop についてもっと知る。

from, import

import キーワードは現在のネームスペースにモジュールをインポートするために使用されます。 from…import は、特定の属性や関数を現在の名前空間にインポートするために使用されます。 例えば、

import math

math モジュールをインポートします。 これで、math.cos()としてその中のcos()関数を使用することができます。 しかし、もし cos() 関数だけをインポートしたい場合は、from as

from math import cos

これで cos() 関数だけを使うことができ、 math.cos() と書く必要はありません。

Python モジュールと import 文についてもっと知りたい方はこちら。

global

globalは、関数内の変数がグローバル(関数外)であることを宣言するために使います。

グローバル変数の値を読む必要がある場合、globalと定義する必要はないのです。 これは理解できる。

もし我々が関数内部でグローバル変数の値を変更する必要があるなら、globalで宣言しなければならない。

globvar = 10def read1(): print(globvar)def write1(): global globvar globvar = 5def write2(): globvar = 15read1()write1()read1()write2()read1()

Output

1055

ここで、read1()関数は単にglobvarの値を読み取っています。 そのため、globalと宣言する必要はありません。 しかし、write1()関数は値を変更しているので、変数をglobalと宣言する必要があります。

出力では、変更が行われたことがわかります(10が5に変更されています)。 write2() もこの値を変更しようとしています。 しかし、global.

として宣言していません。したがって、新しいローカル変数globvarが作成され、この関数の外からは見えません。 このローカル変数を15に変更しても、グローバル変数は変更されない。 4240>

in

in はシーケンス(リスト、タプル、文字列など)が値を含んでいるかどうかをテストするために使用されます。 値があれば True を、なければ False を返します。

for i in 'hello': print(i)

Output

hello

is

is は Python でオブジェクトの同一性をテストするために使用されます。 ==演算子が2つの変数が等しいかどうかをテストするために使われるのに対し、isは2つの変数が同じオブジェクトを参照しているかどうかをテストするために使われます。

オブジェクトが同じならTrue、違うならFalseが返されます。

>>> True is TrueTrue>>> False is FalseTrue>>> None is NoneTrue

PythonではTrueFalseNoneのインスタンスは1つだけなので、それらは同一であることがわかっています。

>>> == True>>> is False>>> {} == {}True>>> {} is {}False

空のリストや辞書は別の空のものと等しくなります。 しかし、これらはメモリ上に別々に配置されているため、同一のオブジェクトではありません。

>>> '' == ''True>>> '' is ''True>>> () == ()True>>> () is ()True

リストや辞書と異なり、文字列やタプルは不変(一度定義された値を変更できない)であるためである。 したがって、2つの同じ文字列またはタプルは、同様に同一である。

lambda

lambda は、匿名関数(名前のない関数)を作成するために使用されます。 これは、returnステートメントを含まないインライン関数である。 評価されて返される式で構成されています。 例:

a = lambda x: x*2for i in range(1,6): print(a(i))

Output

246810

ここで、lambdaステートメントを使用して、値を2倍にするインライン関数を作成しました。

Pythonのラムダ関数についてもっと知る

nonlocal

nonlocalキーワードの使用方法はglobalキーワードと非常によく似ています。 nonlocalは、ネストされた関数(関数の中の関数)内の変数がローカルでないこと、つまり外側の包含関数にあることを宣言するために使用されます。 ネストされた関数内の非ローカル変数の値を変更する必要がある場合、nonlocalで宣言する必要がある。 そうしないと、その名前のローカル変数がネストされた関数の中に作られます。

def outer_function(): a = 5 def inner_function(): nonlocal a a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()

Output

Inner function: 10Outer function: 10

ここで、inner_function()outer_functionの中にネストされています。

変数aはouter_function()の中に入っています。 そのため、inner_function()で変更したい場合は、nonlocalで宣言する必要があります。 aはグローバル変数ではないことに注意してください。

したがって、出力から、変数が入れ子のinner_function()内部で正常に変更されたことがわかります。 nonlocal キーワードを使用しない場合の結果は次のようになります:

def outer_function(): a = 5 def inner_function(): a = 10 print("Inner function: ",a) inner_function() print("Outer function: ",a)outer_function()

Output

Inner function: 10Outer function: 5

ここで、ネストした関数内の変数aがnonlocalであることを宣言していません。 したがって、同じ名前の新しいローカル変数が作成されますが、非ローカルaは出力に見られるように変更されません。

pass

pass は Python の null 文です。 これが実行されると何も起こりません。 これはプレースホルダーとして使用されます。

まだ実装されていないが、将来的に実装したい関数があるとします。 プログラムの途中に,

def function(args):

と書くだけでは、IndentationErrorとなる。 その代わりにpass文で空白のボディを構成する。

def function(args): pass

空のclassでも同じことができる。

class example: pass

return

return 文は関数内でそれを終了し値を返すために使われる。

値を明確に返さない場合は自動的にNoneが返される。

def func_return(): a = 10 return adef no_return(): a = 10print(func_return())print(no_return())

Output

10None

while

while はPythonのループ処理に使われる。

while ループ内の文は while ループの条件が False になるか break 文に遭遇するまで実行を継続され続ける。

i = 5while(i): print(i) i = i – 1

Output

54321

0はFalseに等しいことに注意。

Python whileループについてもっと知りたい方はこちら。

with

with 文は、コンテキストマネージャによって定義されたメソッドの中でコードブロックの実行をラップするために使われます。

コンテキストマネージャは、__enter____exit__ メソッドを実装するクラスです。 with ステートメントの使用は、__exit__ メソッドがネストされたブロックの最後で呼び出されることを保証します。 この考え方は、try…finallyブロックの使い方と似ている。 4240>

with open('example.txt', 'w') as my_file: my_file.write('Hello world!')

この例では、テキスト Hello world! をファイル example.txt に書き込んでいます。 Fileオブジェクトには__enter____exit__メソッドが定義されているので、それ自体がコンテキスト・マネージャとして機能する。

最初に__enter__メソッドが呼ばれ、次にwith文の中のコードが実行され、最後に__exit__メソッドが呼ばれる。 __exit__メソッドはエラーがあっても呼び出されます。

yield

yieldreturn 文のように関数内で使用されます。 しかし、yieldはジェネレータを返します。

ジェネレータは、一度に1つのアイテムを生成するイテレータです。 大きな値のリストは多くのメモリを消費します。 ジェネレータはこのような状況で、すべての値をメモリに格納する代わりに、一度に1つの値だけを生成するので便利です。 例えば、

>>> g = (2**x for x in range(100))

とすると、2の99乗までの累乗を生成するジェネレータgが生成される。

>>> next(g)1>>> next(g)2>>> next(g)4>>> next(g)8>>> next(g)16

のように、next()関数を使って数字を生成することができる。このタイプのジェネレータは、関数からyieldステートメントで返される。 以下はその例です。

def generator(): for i in range(6): yield i*ig = generator()for i in g: print(i)

Output

コメントを残す

メールアドレスが公開されることはありません。