「Pythonの基礎 - 組み込み関数」の版間の差分

ナビゲーションに移動 検索に移動
(ページの作成:「== 概要 == Pythonの組み込み関数について記載する。<br> <br><br> == print関数 (文字列を出力) == ==== 基本と書式 ==== print関数の書式は…」)
 
249行目: 249行目:
  2
  2
  3
  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>
  </syntaxhighlight>
<br><br>
<br><br>

案内メニュー