Pythonで遊ぼう! 基礎編 ⑤ 重要度順!組み込み関数・メソッド その2

アイキャッチ 基礎編
千本ノック!

この記事には、PR部分にUdemyのアフィリエイトリンクを含みますが、記事の内容は筆者が独自に作成したものです。記事の作成についてUdemy様から報酬等を受け取って作成したものではありません。

スポンサーリンク

イントロダクション

前回に引き続き、Pythonの組み込み関数・メソッドの紹介を続けます。基礎練習の続きです。頑張っていきましょう!

前回の記事はこちら

PR

プログラミング言語の人気オンラインコース
ITとソフトウェアの人気オンラインコース

max()関数

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()関数は、引数として与えられた数値や文字列、リストなどから最小の要素を返す役割を果たします。最小値を素早く見つけ出すために活用できます。

#%%
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

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

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()メソッド

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

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

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()メソッド

fotmat

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()メソッド

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

プログラミング言語の人気オンラインコース
ITとソフトウェアの人気オンラインコース

コメント

タイトルとURLをコピーしました