乙Py先生のプログラミング教室

乙Py先生のプログラミング教室
初学者のためのプログラミング学習サイト

予約語とは
あらかじめプログラミング言語で登録されている単語で
コード中では特別な意味を持つので
変数名に使えない単語です 

これを実行してもらうと 、予約語一覧が出ます
__import__('keyword').kwlist
['False',
 'None',
 'True',
 'and',
 'as',
 'assert',
 'break',
 'class',
 'continue',
 'def',
 'del',
 'elif',
 'else',
 'except',
 'finally',
 'for',
 'from',
 'global',
 'if',
 'import',
 'in',
 'is',
 'lambda',
 'nonlocal',
 'not',
 'or',
 'pass',
 'raise',
 'return',
 'try',
 'while',
 'with',
 'yield']

これらの単語は意味を持つので
使えない単語として覚えておきましょう

その他にも気をつけたい単語があります

list は変数名としても使えますが
組み込み関数として使われているので
変数名にしてしまうと上書きしてしまい
list関数が使えなくなってしまいます

関数一覧はこれで見れます
dir(__builtins__)
'ArithmeticError',
 'AssertionError',
 'AttributeError',
 'BaseException',
 'BlockingIOError',
 'BrokenPipeError',
 'BufferError',
 'BytesWarning',
 'ChildProcessError',
 'ConnectionAbortedError',
 'ConnectionError',
 'ConnectionRefusedError',
 'ConnectionResetError',
 'DeprecationWarning',
 'EOFError',
 'Ellipsis',
 'EnvironmentError',
 'Exception',
 'False',
 'FileExistsError',
 'FileNotFoundError',
 'FloatingPointError',
 'FutureWarning',
 'GeneratorExit',
 'IOError',
 'ImportError',
 'ImportWarning',
 'IndentationError',
 'IndexError',
 'InterruptedError',
 'IsADirectoryError',
 'KeyError',
 'KeyboardInterrupt',
 'LookupError',
 'MemoryError',
 'NameError',
 'None',
 'NotADirectoryError',
 'NotImplemented',
 'NotImplementedError',
 'OSError',
 'OverflowError',
 'PendingDeprecationWarning',
 'PermissionError',
 'ProcessLookupError',
 'RecursionError',
 'ReferenceError',
 'ResourceWarning',
 'RuntimeError',
 'RuntimeWarning',
 'StopAsyncIteration',
 'StopIteration',
 'SyntaxError',
 'SyntaxWarning',
 'SystemError',
 'SystemExit',
 'TabError',
 'TimeoutError',
 'True',
 'TypeError',
 'UnboundLocalError',
 'UnicodeDecodeError',
 'UnicodeEncodeError',
 'UnicodeError',
 'UnicodeTranslateError',
 'UnicodeWarning',
 'UserWarning',
 'ValueError',
 'Warning',
 'ZeroDivisionError',
 '__IPYTHON__',
 '__IPYTHON__active',
 '__build_class__',
 '__debug__',
 '__doc__',
 '__import__',
 '__loader__',
 '__name__',
 '__package__',
 '__spec__',
 'abs',
 'all',
 'any',
 'ascii',
 'bin',
 'bool',
 'bytearray',
 'bytes',
 'callable',
 'chr',
 'classmethod',
 'compile',
 'complex',
 'copyright',
 'credits',
 'delattr',
 'dict',
 'dir',
 'divmod',
 'dreload',
 'enumerate',
 'eval',
 'exec',
 'filter',
 'float',
 'format',
 'frozenset',
 'get_ipython',
 'getattr',
 'globals',
 'hasattr',
 'hash',
 'help',
 'hex',
 'id',
 'input',
 'int',
 'isinstance',
 'issubclass',
 'iter',
 'len',
 'license',
 'list',
 'locals',
 'map',
 'max',
 'memoryview',
 'min',
 'next',
 'object',
 'oct',
 'open',
 'ord',
 'pow',
 'print',
 'property',
 'range',
 'repr',
 'reversed',
 'round',
 'set',
 'setattr',
 'slice',
 'sorted',
 'staticmethod',
 'str',
 'sum',
 'super',
 'tuple',
 'type',
 'vars',
 'zip']

これらの単語を変数名に使うと
思わぬところでエラーが発生し実行できなくなるので
使わないようにしましょう

もし使ってしまって
実行寺にエラーが発生した場合は
jupyter notebook を再起動しましょう

Pythonではdictionary型として
他の言語にもあるものが使えます

辞書型は
キー(key) : 値(value)
構造で出来ており
キーは一意でなければいけません

値をなんらかのキーで関連付けて保持するために使います

作り方は
変数名 = { 'key' : 'value'}
とします

変数に値を格納する際は
変数名[ 'key' ] = value
同じキーの場合は上書き、無ければ追加になります
>>> otu = {'ja': 409, 'sa': 413}
>>> otu['gu'] = 412
>>> otu
{'sa': 413, 'gu': 412, 'ja': 409}
 
リスト型から辞書型を作ることもできます
2つのリストをzip関数とdict関数で変換します
この場合はキーと値が同じ個数しか変換されません
>>> keys = ['cat', 'dog', 'mouse']
>>> values = ['nyan', 'wan', 'chu']
>>> dict(zip(keys, values))
{'cat': 'nyan', 'dog': 'wan', 'mouse': 'chu'}
リストでなくタプルからでも変換は可能です

辞書からリストにする場合は
keysメソッドを使います
>>> otu = {'ja': 409, 'ir': 412 ,'sa': 413}
>>> otu
{'ir': 412, 'ja': 409, 'sa': 413} >>> list(otu.keys()) ['sa', 'ir', 'ja'] >>> sorted(otu.keys()) ['ir', 'ja', 'sa']

要素から値を取り出す場合は
変数名[ 'key' ]
items()メソッドを使うことでキーと要素を同時に取り出せます
>>> otu = {'ja': 409, 'ir': 412 ,'sa': 413}
>>> for k, v in otu.items():
>>> 	print(k, v)
sa 413
ir 412
ja 409





 

Pythonでは集合を扱うためのデータ型があります

和 (union)
積 (intersection)
差 (difference)
対称差 (symmetric difference)

これらを扱うためのデータセットで
値の重複が有りません

set型を作る際は set([ 値,値 ]) とします 
>>> aa = set([2,2,3,4,5]) #重複は排除される
>>> aa
{2,3,4,5}
集合の計算を行う場合はこうなります
a = set([1,2,3,4,3,2])
b = set([3,4,5]) 
print (a - b) # 差集合:aにあってbにないもの
print (a | b) # 和集合:aとbの和
print (a & b )# 積集合:aとb双方にあるもの
print (a ^ b) # 商集合:aとbどちらかにしかないもの
{1, 2}
{1, 2, 3, 4, 5}
{3, 4}
{1, 2, 5}







このページのトップヘ