この記事には、PR部分にUdemyのアフィリエイトリンクを含みますが、記事の内容は筆者が独自に作成したものです。記事の作成についてUdemy様から報酬等を受け取って作成したものではありません。
イントロダクション
前回に引き続き、Pythonの組み込み関数・メソッドの紹介を続けます。基礎練習の続きです。頑張っていきましょう!
前回の記事はこちら
PR
max()関数
max()関数は、引数として与えられた数値や文字列、リストなどから最大の要素を返します。最大値を素早く見つけ出すために活用できます。
#%%
max_value = max(1, 2, 3)
print(max_value) # 出力:3
max()関数に3つの引数(1, 2, 3)を与えました。関数はこの中から最大の値(この場合は3)を返します。
リストやタプルでの使用
リストやタプルなどのイテラブル(iterable,反復可能な)オブジェクトから最大値を取得することも可能です。
#%%
numbers = [1, 2, 3, 4, 5]
max_value = max(numbers)
print(max_value) # 出力:5
# タプル
numbers_2 = (1, 2, 3, 4, 5)
max_value_2 = max(numbers_2)
print(max_value) # 出力:5
リストnumbersから最大値を取得しています。
文字列での使用
文字列に対してmax()関数を使用すると、アルファベット順(実際にはASCIIコード順)で最も後ろに来る文字が返されます。
#%%
WORD = "python"
max_char = max(WORD)
print(max_char) # 出力:'y'
文字列”python”から最も後ろに来る文字’y’が返されています。
min()関数
min()関数は、引数として与えられた数値や文字列、リストなどから最小の要素を返す役割を果たします。最小値を素早く見つけ出すために活用できます。
#%%
min_value = min(1, 2, 3)
print(min_value) # 出力:1
min()関数に3つの引数(1, 2, 3)を与えました。関数はこれらの中から最小の値(この場合は1)を返します。
リストやタプルでの使用
リストやタプルなどのイテラブル(iterable,反復可能な)オブジェクトから最小値を取得することも可能です。
#%%
numbers = [1, 2, 3, 4, 5]
min_value = min(numbers)
print(min_value) # 出力:1
# タプル
numbers_2 = (1,2,3,4,5)
min_value_2 = min(numbers_2)
print(min_value_2)
リストnumbersから最小値を取得します。
文字列での使用
文字列に対して使用すると、アルファベット順(実際にはASCIIコード順)で最も前に来る文字が返されます。
#%%
WORD = "python"
min_char = min(WORD)
print(min_char) # 出力:'h'
文字列”python”から最も前に来る文字’h’が返されます。
sum()関数
sum()関数は、数値のリストやタプルなどのイテラブル(iterable,反復可能な)オブジェクトの全ての要素を合計するために使用されます。
#%%
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total) # 出力:15
numbersリストを作成し、5つの数字(1, 2, 3, 4, 5)を格納します。sum()関数で、リスト内の数字を合計し、結果をtotal変数に格納します。最後に、print()関数を使用して出力します。
sum()関数とstartパラメータ
sum()関数はオプションで第二引数を取ることができます。この引数は「start」パラメータと呼ばれ、合計を計算する際の初期値を設定することができます。
#%%
numbers = [1, 2, 3, 4, 5]
total = sum(numbers, 10)
print(total) # 出力:25
「start」パラメータに10を設定しています。そのため、sum()関数はリスト内の全ての数字を合計する前に、初期値として10を加えます。その結果、出力は25となります。
sum()関数の注意点
sum()関数は数値だけでなく、浮動小数点数も含むことができます。
文字列や他の非数値型のデータクラスを含むリストやタプルを合計しようとするとエラーが発生します。
abs()関数
abs()関数は、数値の絶対値を返すために使用されます。
#%%
NUMBER = -5
absolute_number = abs(NUMBER)
print(absolute_number) # 出力:5
NUMBER変数を作成し、-5を格納します。abs()関数で絶対値を計算し、結果をabsolute_number変数に格納します。最後に、print()関数を使用して出力します。
abs()関数と浮動小数点数
abs()関数は整数だけでなく、浮動小数点数(実数)にも使用することができます。
#%%
NUMBER = -3.14
absolute_number = abs(NUMBER)
print(absolute_number) # 出力:3.14
「NUMBER」変数に-3.14という浮動小数点数を格納します。abs()関数で絶対値を計算し、結果を「absolute_number」変数に格納します。最後に、print()関数を使用して出力します。
abs()関数の注意点
abs()関数は複素数にも適用することができますが、その場合は絶対値ではなく複素数の大きさ(ノルム)を返します。
sort()メソッド
Pythonの sort() メソッドは、リストの要素を並べ替えます。数値や文字列などのリストを昇順(小さいものから大きいもの)または降順(大きいものから小さいもの)に並べ替えることができます。
この関数は、既存のリストを並べ替えて変更を行います。これに対して、次に説明するsorted()関数は、新しいリストを作成します。二つの違いに注意してください。
numbers = [5, 2, 3, 1, 4]
numbers.sort()
print(numbers) # Output: [1, 2, 3, 4, 5]
sort()
関数にreverse=True
を指定すると、リストを降順に並べ替えることができます。
numbers = [5, 2, 3, 1, 4]
numbers.sort(reverse=True)
print(numbers) # Output: [5, 4, 3, 2, 1]
sort()
関数のkey
引数を使用すると、カスタム並べ替えを行うことができます。例えば、文字列のリストを長さで並べ替えることができます。
words = ["apple", "banana", "cherry", "date"]
words.sort(key=len)
print(words) # Output: ['date', 'apple', 'cherry', 'banana']
この例では、len
関数をkey
引数に指定して、文字列の長さで並べ替えています。
sorted()関数
sorted()関数は、イテラブル(iterable,反復可能な)オブジェクトの要素をソート(並べ替え)した新しいリストを返すために使用されます。
#%%
numbers = [5, 2, 3, 1, 4]
sorted_numbers = sorted(numbers)
print(sorted_numbers) # 出力:[1, 2, 3, 4, 5]
numbersリストを作成し、5つの数字(5, 2, 3, 1, 4)を格納します。sorted()関数を使用して、リスト内の数字をソートし、結果をsorted_numbers変数に格納します。print()関数を使用してソートされたリストを出力します。
sorted()関数とreverseパラメータ
sorted()関数はオプションで第二引数を取ることができます。この引数は「reverse」パラメータと呼ばれ、ソートする順序を逆にすることができます。
#%%
numbers = [5, 2, 3, 1, 4]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers) # 出力:[5, 4, 3, 2, 1]
この例では、「reverse」パラメータにTrueを設定しています。そのため、sorted()関数はリスト内の全ての数字を逆順(降順)でソートします。その結果、出力は[5, 4, 3, 2, 1]となります。
sorted()関数の注意点
sorted()関数は文字列や他の非数値型のデータクラスを含むリストやタプルもソートすることができます。
sorted()関数は元のリストを変更せず、新しいソートされたリストを返します。
split()メソッド
split()メソッドは、文字列を特定の区切り文字で分割し、結果をリストとして返すメソッドです。文章を単語に分割したり、CSV形式のデータを解析したりすることが容易になります。
文字列.split(区切り文字)
文字列は分割したい文字列を指し、区切り文字はその文字列をどの文字で分割するかを指定します。
#%%
TEXT = "Hello, World!"
print(TEXT.split(","))
この例では、split()メソッドは文字列 “Hello, World!” をカンマ (,) で分割し、結果をリストとして返しています。
区切り文字を指定しない場合の挙動
split()メソッドに区切り文字を指定しない場合、すなわち
文字列.split()
とした場合、空白(スペース、タブ、改行など)で文字列が分割されます。これは、文章を単語に分割する際に便利です。
#%%
TEXT = "Hello World! How are you?"
print(TEXT.split()) # ['Hello', 'World!', 'How', 'are', 'you?']
split()メソッドは空白で文字列を分割し、結果をリストとして返しています。
join()メソッド
join()メソッドは、リストやタプルなどのイテラブル(iterable,繰り返し可能な)オブジェクトの要素を特定の文字列で連結し、結果を新たな文字列として返すメソッドです。単語リストから文章を作成したり、複数の文字列を一つにまとめたりするのに便利です。
'連結文字'.join(イテラブル)
ここで、連結文字は各要素を連結する際に挿入する文字列を指し、イテラブルは連結したい要素を持つイテラブル(リストやタプルなど)を指定します。
#%%
words = ['Hello', 'World!']
print(' '.join(words)) # Hello World!
join()メソッドはリスト wordsの各要素をスペースで連結し、結果を新たな文字列として返しています。
空文字を連結文字とする場合
join()メソッドに空文字(‘’)を連結文字として指定すると、各要素が何も挿入されずに直接連結されます。これは、複数の文字列を一つにまとめる際に便利です。
#%%
words = ['H', 'e', 'l', 'l', 'o']
print(''.join(words)) # Hello
リスト words の各要素を空文字で連結し、結果を新たな文字列として返しています。
format()メソッド
format()メソッドは、特定の形式に従って文字列を整形するメソッドです。動的に内容が変わるメッセージを作成したり、複雑な出力を整形したりすることが容易になります。
'書式文字列'.format(値1, 値2, ...)
‘書式文字列’は整形したい文字列を指し、値1, 値2, …はその文字列内に挿入したい値を指定します。値はカンマで区切って複数指定することができます。
#%%
MOJI = 'Hello,{}!'
MOJI.format('World') # 出力 'Hello, World!'
format()メソッドは文字列 “Hello, {}!” の中の {} を ‘World’ で置き換え、結果を新たな文字列として返しています。
複数の値を挿入する場合
#%%
MOJI = 'Hello, {} and {}!'
MOJI.format('Alice','Bob') # 出力 Hello, Alice and Bob!
format()メソッドは文字列 “Hello, {} and {}!” の中の最初の {} を ‘Alice’ で、次の {} を ‘Bob’ で置き換え、その結果を新たな文字列として返しています。
f-stringによるformat()メソッドの置き換え
Python3.6以降、format()メソッドよりも、直感的に理解しやすいf-stringの使用が推奨されています。format()メソッドでは、置き換え対象である{}を先に記述し、あとから.format(値)を追記するので、少し気持ち悪さが残ります。
f-stringでは、先に変数を設定し、あとの文章に単純に入れ込むだけの構造なので、直感的に理解しやすいようです。記述方法は、 f’This is a {変数名}.’ のように、文章の中に変数を{}で括って入れ込んであげるだけです。
以下の例を見てみましょう。変数が一つの場合です。
#%%
NAME = 'World' # 'World'を()で囲む必要はありません
f'Hello, {NAME}!'
# 出力 Hello, World!
変数が二つの場合は以下のようになります。
#%%
NAMES = ("Alice","Bob") # 変数が複数ある場合は、()で囲みます(タプル)
f'Hello, {NAMES[0]} and {NAMES[1]}!' # 変数のカウントは[0][1]...と 0から始まります
# 出力 Hello, Alice and Bob!
{変数名[0]},{変数名[1]},{変数名[2]}… という記述方法を覚えましょう。
open()関数, close()メソッド, read()メソッド
Pythonでファイル操作を行う際には、open(), close(), read()といった関数・メソッドが頻繁に使用されます。適切な方法でファイルを開き、必要なデータを読み込んだ後は必ずファイルを閉じるようにしましょう。
下準備として、VSCodeのディレクトリに、Hello, World!とだけ記載した、hello.txt を作成して保存しておいてください。
open()関数
open()関数は、ファイルを開くための関数です。
ファイルオブジェクト = open(ファイル名, モード)
ここで、ファイル名
は開きたいファイルの名前(パスを含む)を指し、モード
はそのファイルをどのように開くかを指定します。モードには以下のような種類があります。
- ‘r’: 読み込みモード(デフォルト)
- ‘w’: 書き込みモード(既存のファイルは削除されます)
- ‘a’: 追記モード(既存のファイルに追記します)
- ‘x’: 新規作成モード(既存のファイルがある場合はエラーになります)
close()メソッド
close()メソッドは、開いたファイルを閉じるためのメソッドです。
ファイルオブジェクト.close()
このメソッドを呼び出すことで、ファイルへの変更が保存され、その後そのファイルへのアクセスができなくなります。
read()メソッド
read()メソッドは、開いたファイルからデータを読み込むためのメソッドです。
データ = ファイルオブジェクト.read()
データ = ファイルオブジェクト.read(バイト数) # 指定バイト数だけデータを読み込む
テキストファイルからデータを読み込む
これらの関数・メソッドを組み合わせて、テキストファイルからデータを読み込む基本的なコードは以下のようになります。
#%%
# ファイルを開く
f = open('hello.txt', 'r')
# データを読み込む
data = f.read()
# データを表示する
print(data)
# ファイルを閉じる
f.close()
このコードでは、’hello.txt’という名前のファイルを読み込みモード(‘r’)で開き、その内容を読み込んで表示しています。最後にclose()メソッドを呼び出してファイルを閉じています。
with文と組み合わせる
open()関数,close()メソッド,read()メソッドは通常、with文と組み合わせて使用されます。これにより、ファイル操作が終了した時点で自動的にファイルが閉じられ、close()メソッドを記述する必要がなくなります。
#%%
with open('hello.txt', 'r') as f:
print(f.read())
コードでは、’hello.txt’を読み込みモードで開き、その内容を表示しています。with文のブロックを抜けると自動的にファイルが閉じられます。
まとめ
お疲れさまでした!
組み込み関数・メソッドの基礎練習はひとまず終了です。VSCodeとJupyter Notebookの有用さもコードを打ち込んでみることで実感できてきたと思います。
一般的な参考書・入門書では、知識を詰め込む方法ではなく、クラス・オブジェクト・メソッドなどの抽象的な説明から始めているものが大半です。
しかし、初めに具体的な関数やメソッドを叩き込んでから、概念の説明をした方が理解が早いと思います。次回は、基本的なクラスを学んだ後、挫折しがちなPythonのクラス・オブジェクト・メソッド・関数について学習します。
PR
コメント