Pythonの基礎 - 組み込み関数
概要
Pythonの組み込み関数について記載する。
print関数 (文字列を出力)
基本と書式
print関数の書式は、以下の通りである。
print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False)
最も基本的な使用方法は、引数に文字列を指定して実行することにより、標準出力に対して引数に指定した文字列を出力する。
この時、デフォルトでは、自動的に最後に改行が出力される。
引数に文字列ではない数値等を指定する場合、str
関数により文字列に変換されて出力される。
引数には、カンマ区切りで複数の文字列を指定することもできる。
デフォルトでは、空白で区切られて出力される。
print("Hello")
print(100)
print("Blue", "Red", "Green")
# 出力
Hello
100
Blue Red Green
区切り文字の変更
引数にカンマ区切り複数の文字列を指定する場合、デフォルトでは空白で区切られて出力される。
別の区切り文字に変更したり、区切り文字無しで出力する場合は、sep="区切り文字"
を指定する。
print(*objects, sep='区切り文字')
例えば、区切り文字を+にする場合はseq='+'
、区切り文字無しの場合はseq=
と記述する。
# デフォルトの区切り文字
print("Blue", "Red", "Green")
# 区切り文字を"+"に変更
print("Blue", "Red", "Green", sep="+")
# 区切り文字無し
print("Blue", "Red", "Green", sep="")
# 出力
Blue Red Green
Blue+Red+Green
BlueRedGreen
改行無し
print関数を実行する時、自動的に改行が行われる。(デフォルトは、最後に自動で改行を出力するように設定されているため)
print関数を実行した時、最後に改行しないようにする場合はend=
を指定する。(デフォルトは、end='\n'
)
end
には最後に出力する文字列を指定する。
なお、改行以外の別の文字列を指定することもできる。
print(*objects, end='')
# デフォルトの設定
print("Hello");print("Python")
# 改行しないように設定:
print("Hello", end="");print("Python")
# 最後に任意の文字列を出力するように設定
print("Hello", end="[end]\n")
# 出力
Hello
Python
HelloPython
Hello[end]
ファイルへ出力する
print関数は、デフォルトでは標準出力に対して出力されるが、画面ではなくファイルに対して出力することもできる。
print(*objects, file=sys.stdout)
出力先であるfile
引数は、write(string)
メソッドを持つオブジェクトである必要がある。
以下の例では、ファイルに対して出力している。
myfile = open("output.txt", "w")
print("Hello", file=myfile)
print("Bye", file=myfile)
myfile.close()
上記のソースコードを実行する時、output.txtファイルが作成される。
output.txtファイルを開いて、文字列がファイルに保存されていることを確認する。
str関数 (文字列に変換)
str
関数は、引数に指定したオブジェクトを文字列に変換して取得する。
引数には、数値、リスト、タプル等のオブジェクトが指定できる。
class str(object='')
str(100)
str([10, 20, 30])
str(True)
数値を文字列と連結する場合や数値から文字列を取得する場合等に使用する。
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
int関数とfloat関数 (文字列を数値に変換する)
int関数
int
関数は、引数に指定した数値または文字列を整数に変換して取得する。
class int([x])
class int(x, base=10)
第1引数は、引数に指定した数値または文字列を整数として取得する。
整数が指定された場合はそのままの値が返されて、浮動小数点数が指定された場合は0に近い値に丸められて整数として取得する。
引数を省略した場合、0が返る。
a = int(15)
b = int(3.14)
c = int()
print(a)
print(b)
print(c)
# 出力
15
3
0
引数に文字列を指定した場合は、文字列を整数に変換して取得する。
文字列として指定できる値は、整数形式の文字列のみである。
基数を省略した場合、第1引数の値を10進数として整数に変換する。
基数を指定すた場合、第1引数の値が第2引数で指定した値を基数として、整数に変換する。
基数として指定できる値は、0
、2〜36
である。
また、基数の指定において、値のみの指定、または、 base=<基数>
の形式で記述してもよい。
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
float関数
float関数は、引数に指定した数値または文字列を浮動小数点数に変換して取得する。
class float([x])
整数または浮動小数点数を指定した場合、同じ値の浮動小数点数が返る。
文字列を指定する場合、10進数の値が含まれる文字列を指定すること。
引数を省略した場合は、0.0
が返る。
また、指数表記での指定も可能である。
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
len関数
len
関数は、引数に指定したオブジェクトの長さや要素の数を取得する。
len(s)
引数には、文字列やバイト列、リスト、タプル、辞書等のオブジェクトが指定できる。
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
bool関数 (オブジェクトの真偽判定)
bool
関数は、引数に指定したオブジェクトの真偽を返す。
引数には、文字列、バイト列、リスト、タプル、辞書等のオブジェクトが指定できる。
戻り値として、ブール値のTrueまたはFalseを返す。
bool([x])
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
range関数
range
関数は、引数に指定した開始値から終了値までの連続した値を要素として持つrange
型のオブジェクトを生成する。
start
に指定した値から順にstep
に指定した値を順に加算して、stop
に指定した値未満までの連続した数値を要素として持つオブジェクトを生成する。
step
を省略した場合は1
が指定されたものとみなされ、start
を省略した場合は0
が指定されたものとみなされる。
range
関数は、stop
の値は含まれないことに注意すること。
range(stop)
range(start, stop[, step])
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
step
に負の値を指定することにより、開始値から終了値まで逆順に連続した値を持つオブジェクトを生成することができる。
range
型オブジェクトをprint
関数の引数に指定しても要素の一覧は表示されないが、
range
型オブジェクトからlist
型オブジェクトを生成した後、print
関数で出力すると要素の一覧を確認することができる。
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]
インデックスを指定して要素を取得することもできる。
また、スライスを指定する場合、スライスに対応したrange
型のオブジェクトを取得できる。
r = range(0, 10, 2)
print(r[0])
print(r[4])
print(r[2:4])
# 出力
0
8
range(4, 8)
range
関数は、連続した値を要素として持つリストやタプルを生成するために使用されたり、
for
文で繰り返し処理を実行する時に繰り返し回数を指定するため等に使用されることが多い。
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
type関数
type
関数は、引数に指定したオブジェクトのデータ型を表す型オブジェクトを返す。
type(object)
以下の例では、Pythonで使用される主なデータ型について、type
関数でどのような値が取得できるかを確認している。
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'>
type
関数で取得した型オブジェクトは、is
演算子を使用することにより、指定したデータ型と同じかどうかを確認することができる。
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
複数のデータ型と比較する場合は、in
演算子を使用することにより確認することができる。
print(type("Hello") in (str, int))
print(type(123) in (str, int))
print(type(123.4) in (str, int))
# 出力
True
True
False
このように、type
関数を使用して、引数に指定したオブジェクトのデータ型を取得、および、指定したデータ型と同じかどうかを判定することができる。
以下の例では、リストに格納された値のデータ型を取得して、整数型または浮動小数点数型の場合は値を出力して合計を計算している。
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