MochiuWiki : SUSE, EC, PCB
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
Pythonの基礎 - 組み込み関数のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
Pythonの基礎 - 組み込み関数
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Pythonの組み込み関数について記載する。<br> <br><br> == print関数 (文字列を出力) == ==== 基本と書式 ==== print関数の書式は、以下の通りである。<br> <syntaxhighlight lang="python"> print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) </syntaxhighlight> <br> 最も基本的な使用方法は、引数に文字列を指定して実行することにより、標準出力に対して引数に指定した文字列を出力する。<br> この時、デフォルトでは、自動的に最後に改行が出力される。<br> <br> 引数に文字列ではない数値等を指定する場合、<code>str</code>関数により文字列に変換されて出力される。<br> <br> 引数には、カンマ区切りで複数の文字列を指定することもできる。<br> デフォルトでは、空白で区切られて出力される。<br> <syntaxhighlight lang="python"> print("Hello") print(100) print("Blue", "Red", "Green") # 出力 Hello 100 Blue Red Green </syntaxhighlight> <br> ==== 区切り文字の変更 ==== 引数にカンマ区切り複数の文字列を指定する場合、デフォルトでは空白で区切られて出力される。<br> 別の区切り文字に変更したり、区切り文字無しで出力する場合は、<code>sep="区切り文字"</code>を指定する。<br> <syntaxhighlight lang="python"> print(*objects, sep='区切り文字') </syntaxhighlight> <br> 例えば、区切り文字を+にする場合は<code>seq='+'</code>、区切り文字無しの場合は<code>seq=''</code>と記述する。<br> <syntaxhighlight lang="python"> # デフォルトの区切り文字 print("Blue", "Red", "Green") # 区切り文字を"+"に変更 print("Blue", "Red", "Green", sep="+") # 区切り文字無し print("Blue", "Red", "Green", sep="") # 出力 Blue Red Green Blue+Red+Green BlueRedGreen </syntaxhighlight> <br> ==== 改行無し ==== print関数を実行する時、自動的に改行が行われる。(デフォルトは、最後に自動で改行を出力するように設定されているため)<br> <br> print関数を実行した時、最後に改行しないようにする場合は<code>end=''</code>を指定する。(デフォルトは、<code>end='\n'</code>)<br> <code>end</code>には最後に出力する文字列を指定する。<br> なお、改行以外の別の文字列を指定することもできる。<br> <syntaxhighlight lang="python"> print(*objects, end='') </syntaxhighlight> <br> <syntaxhighlight lang="python"> # デフォルトの設定 print("Hello");print("Python") # 改行しないように設定: print("Hello", end="");print("Python") # 最後に任意の文字列を出力するように設定 print("Hello", end="[end]\n") # 出力 Hello Python HelloPython Hello[end] </syntaxhighlight> <br> ==== ファイルへ出力する ==== print関数は、デフォルトでは標準出力に対して出力されるが、画面ではなくファイルに対して出力することもできる。<br> <syntaxhighlight lang="python"> print(*objects, file=sys.stdout) </syntaxhighlight> <br> 出力先である<code>file</code>引数は、<code>write(string)</code>メソッドを持つオブジェクトである必要がある。<br> 以下の例では、ファイルに対して出力している。<br> <syntaxhighlight lang="python"> myfile = open("output.txt", "w") print("Hello", file=myfile) print("Bye", file=myfile) myfile.close() </syntaxhighlight> <br> 上記のソースコードを実行する時、output.txtファイルが作成される。<br> output.txtファイルを開いて、文字列がファイルに保存されていることを確認する。<br> <br><br> == str関数 (文字列に変換) == <code>str</code>関数は、引数に指定したオブジェクトを文字列に変換して取得する。<br> <br> 引数には、数値、リスト、タプル等のオブジェクトが指定できる。<br> <syntaxhighlight lang="python"> class str(object='') </syntaxhighlight> <br> <syntaxhighlight lang="python"> str(100) str([10, 20, 30]) str(True) </syntaxhighlight> <br> 数値を文字列と連結する場合や数値から文字列を取得する場合等に使用する。<br> <syntaxhighlight lang="python"> print("My age is " + str(100)) print("Value = " + str([10, 20, 30])) print("Result is " + str(True)) # 出力 My age is 100 Value = [10, 20, 30] Result is True </syntaxhighlight> <br><br> == int関数とfloat関数 (文字列を数値に変換する) == ==== int関数 ==== <code>int</code>関数は、引数に指定した数値または文字列を整数に変換して取得する。<br> <syntaxhighlight lang="python"> class int([x]) class int(x, base=10) </syntaxhighlight> <br> 第1引数は、引数に指定した数値または文字列を整数として取得する。<br> 整数が指定された場合はそのままの値が返されて、浮動小数点数が指定された場合は0に近い値に丸められて整数として取得する。<br> 引数を省略した場合、0が返る。<br> <syntaxhighlight lang="python"> a = int(15) b = int(3.14) c = int() print(a) print(b) print(c) # 出力 15 3 0 </syntaxhighlight> <br> 引数に文字列を指定した場合は、文字列を整数に変換して取得する。<br> 文字列として指定できる値は、整数形式の文字列のみである。<br> <br> 基数を省略した場合、第1引数の値を10進数として整数に変換する。<br> 基数を指定すた場合、第1引数の値が第2引数で指定した値を基数として、整数に変換する。<br> 基数として指定できる値は、<code>0</code>、<code>2〜36</code>である。<br> <br> また、基数の指定において、値のみの指定、または、 <code>base=<基数></code>の形式で記述してもよい。<br> <syntaxhighlight lang="python"> a = int('28') b = int("28", 10) c = int("1011", 2) d = int("3F", 16) e = int("24", base=8) print(a) print(b) print(c) print(d) print(e) print(int(17.58)) print(int("A4", base=16)) # 出力 28 28 11 63 20 17 164 </syntaxhighlight> <br> ==== float関数 ==== float関数は、引数に指定した数値または文字列を浮動小数点数に変換して取得する。<br> <syntaxhighlight lang="python"> class float([x]) </syntaxhighlight> <br> 整数または浮動小数点数を指定した場合、同じ値の浮動小数点数が返る。<br> 文字列を指定する場合、10進数の値が含まれる文字列を指定すること。<br> 引数を省略した場合は、<code>0.0</code>が返る。<br> <br> また、指数表記での指定も可能である。<br> <syntaxhighlight lang="python"> a = float(15) b = float(3.14) c = float() d = float("5.755") e = float("8.5e+5") f = float("2.34e-4") print(a) print(b) print(c) print(d) print(e) print(f) print(float(19)) print(float("78.225")) print(float("-7.52e-3")) # 出力 15.0 3.14 0.0 5.755 850000.0 0.000234 19.0 78.225 -0.00752 </syntaxhighlight> <br><br> == len関数 == <code>len</code>関数は、引数に指定したオブジェクトの長さや要素の数を取得する。<br> <syntaxhighlight lang="python"> len(s) </syntaxhighlight> <br> 引数には、文字列やバイト列、リスト、タプル、辞書等のオブジェクトが指定できる。<br> <syntaxhighlight lang="python"> a = len("Hello") b = len(["red", "blue", "green"]) # リスト型 c = len({"s":150, "m":160, "l":170, "xl":180}) # 辞書型 print(a) print(b) print(c) print(len("Next week is a trip")) print(len(["Yes", "No"])) print(len({"Yamada":94, "Suzuki":82, "Nishi":64})) # 出力 5 3 4 19 2 3 </syntaxhighlight> <br><br> == bool関数 (オブジェクトの真偽判定) == <code>bool</code>関数は、引数に指定したオブジェクトの真偽を返す。<br> <br> 引数には、文字列、バイト列、リスト、タプル、辞書等のオブジェクトが指定できる。<br> 戻り値として、ブール値のTrueまたはFalseを返す。<br> <syntaxhighlight lang="python"> bool([x]) </syntaxhighlight> <br> <syntaxhighlight lang="python"> a = bool("Hello") b = bool("") c = bool(1) d = bool(0) e = bool({"s":150, "m":160, "l":170, "xl":180}) f = bool({}) print(a) print(b) print(c) print(d) print(e) print(f) print(bool("Hello")) print(bool(["A", "B"])) print(bool([])) # 出力 True False True False True False True True False </syntaxhighlight> <br><br> == range関数 == <code>range</code>関数は、引数に指定した開始値から終了値までの連続した値を要素として持つ<code>range</code>型のオブジェクトを生成する。<br> <br> <code>start</code>に指定した値から順に<code>step</code>に指定した値を順に加算して、<code>stop</code>に指定した<u>値未満</u>までの連続した数値を要素として持つオブジェクトを生成する。<br> <code>step</code>を省略した場合は<code>1</code>が指定されたものとみなされ、<code>start</code>を省略した場合は<code>0</code>が指定されたものとみなされる。<br> <br> <u><code>range</code>関数は、<code>stop</code>の値は含まれないことに注意すること。</u><br> <syntaxhighlight lang="python"> range(stop) range(start, stop[, step]) </syntaxhighlight> <br> <syntaxhighlight lang="python"> range(5) range(0, 5) range(4,7) range(0, 5, 1) range(0, 10, 2) # 出力 0 1 2 3 4 0 1 2 3 4 4 5 6 0 1 2 3 4 0 2 4 6 8 </syntaxhighlight> <br> <code>step</code>に負の値を指定することにより、開始値から終了値まで逆順に連続した値を持つオブジェクトを生成することができる。<br> <code>range</code>型オブジェクトを<code>print</code>関数の引数に指定しても要素の一覧は表示されないが、<br> <code>range</code>型オブジェクトから<code>list</code>型オブジェクトを生成した後、<code>print</code>関数で出力すると要素の一覧を確認することができる。<br> <syntaxhighlight lang="python"> r1 = range(10, 0, -1) r2 = range(0, -8, -2) print(r1) print(list(r1)) print(list(r2)) # 出力 range(10, 0, -1) [10, 9, 8, 7, 6, 5, 4, 3, 2, 1] [0, -2, -4, -6] </syntaxhighlight> <br> インデックスを指定して要素を取得することもできる。<br> また、スライスを指定する場合、スライスに対応した<code>range</code>型のオブジェクトを取得できる。<br> <syntaxhighlight lang="python"> r = range(0, 10, 2) print(r[0]) print(r[4]) print(r[2:4]) # 出力 0 8 range(4, 8) </syntaxhighlight> <br> <code>range</code>関数は、連続した値を要素として持つリストやタプルを生成するために使用されたり、<br> <code>for</code>文で繰り返し処理を実行する時に繰り返し回数を指定するため等に使用されることが多い。<br> <syntaxhighlight lang="python"> r = range(10) for i in r: print("num : " + str(i)) num : 0 num : 1 num : 2 num : 3 num : 4 num : 5 num : 6 num : 7 num : 8 num : 9 </syntaxhighlight> <br><br> == type関数 == <code>type</code>関数は、引数に指定したオブジェクトのデータ型を表す型オブジェクトを返す。<br> <syntaxhighlight lang="python"> type(object) </syntaxhighlight> <br> 以下の例では、Pythonで使用される主なデータ型について、<code>type</code>関数でどのような値が取得できるかを確認している。<br> <syntaxhighlight lang="python"> t1 = type("Hello") t2 = type(123) print(t1) print(t2) print(type("str")) print(type(100)) print(type(14.5)) print(type(7.0 + 5j)) print(type([1, 2, 3])) print(type((1, 2, 3))) print(type({1:"A", 2:"B", 3:"C"})) print(type(True)) print(type(None)) # 出力 <class 'str'> <class 'int'> <class 'str'> <class 'int'> <class 'float'> <class 'complex'> <class 'list'> <class 'tuple'> <class 'dict'> <class 'bool'> <class 'NoneType'> </syntaxhighlight> <br> <code>type</code>関数で取得した型オブジェクトは、<code>is</code>演算子を使用することにより、指定したデータ型と同じかどうかを確認することができる。<br> <syntaxhighlight lang="python"> print(type("Hello") is str) print(type("Hello") is int) print(type(123) is int) print(type(123.4) is int) # 出力 True False True False </syntaxhighlight> <br> 複数のデータ型と比較する場合は、<code>in</code>演算子を使用することにより確認することができる。<br> <syntaxhighlight lang="python"> print(type("Hello") in (str, int)) print(type(123) in (str, int)) print(type(123.4) in (str, int)) # 出力 True True False </syntaxhighlight> <br> このように、<code>type</code>関数を使用して、引数に指定したオブジェクトのデータ型を取得、および、指定したデータ型と同じかどうかを判定することができる。<br> <br> 以下の例では、リストに格納された値のデータ型を取得して、整数型または浮動小数点数型の場合は値を出力して合計を計算している。<br> <syntaxhighlight lang="python"> mylist = [2, "ab", 3.5, True, 4] total = 0 for val in mylist: if type(val) in (int, float): print("val: " + str(val)) total += val print("total: " + str(total)) # 出力 val: 2 val: 3.5 val: 4 total: 9.5 </syntaxhighlight> <br><br> == isinstance関数 (オブジェクトのデータ型の判定) == <code>isinstance</code>関数は、第1引数に指定したオブジェクトが第2引数に指定したデータ型と等しいかどうかを返す。<br> <syntaxhighlight lang="python"> isinstance(object, classinfo) </syntaxhighlight> <br> 第1引数に指定したオブジェクトが第2引数に指定したデータ型のオブジェクトの場合、または、サブクラスのオブジェクトの場合に<code>True</code>を返す。<br> <syntaxhighlight lang="python"> print(isinstance(1, int)) print(isinstance(1, str)) print(isinstance("abc", str)) print(isinstance("abc", int)) # 出力 True False True False </syntaxhighlight> <br> 複数のデータ型と比較する場合、第2引数に複数のデータ型を持つタプルを指定する。<br> 複数のデータ型のいずれかと一致する場合、<code>True</code>を返す。<br> <syntaxhighlight lang="python"> print(isinstance(1, (int, float))) print(isinstance(2.5, (int, float))) print(isinstance("ab", (int, float))) # 出力 True True False </syntaxhighlight> <br> <code>isinstance</code>関数と<code>type</code>関数の違いとして、<code>isinstance</code>関数は、第2引数がデータ型のサブクラスのオブジェクトの場合でも<code>True</code>となる。<br> そのため、サブクラスも含めて同じデータ型かどうか確認する場合は、<code>isinstance</code>関数を使用するとよい。<br> <br> 以下の例では、<code>bool</code>型は<code>int</code>型のサブクラスのため、<code>bool</code>型のオブジェクトである<code>True</code>は<code>int</code>型と同じため、<code>True</code>となる。<br> <syntaxhighlight lang="python"> print(isinstance(3, int)) print(isinstance(True, int)) print(isinstance(True, bool)) # 出力 True True True </syntaxhighlight> <br> 以下の例では、リストに格納された値のデータ型を判定して、整数型または浮動小数点数型の場合は値を出力して合計を計算している。<br> <code>True</code>も整数型として識別されている。(<code>True</code>は、数値の<code>1</code>として扱われる)<br> <syntaxhighlight lang="python"> mylist = [2, "ab", 3.5, True, 4] total = 0 for val in mylist: if isinstance(val, (int, float)): print("val: " + str(val)) total += val print("total: " + str(total)) # 出力 val: 2 val: 3.5 val: True val: 4 total: 10.5 </syntaxhighlight> <br><br> __FORCETOC__ [[カテゴリ:Python]]
Pythonの基礎 - 組み込み関数
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse