この記事には、PR部分にUdemyのアフィリエイトリンクを含みますが、記事の内容は筆者が独自に作成したものです。記事の作成についてUdemy様から報酬等を受け取って作成したものではありません。
イントロダクション
VSCodeの基本的な使い方も体験し、本格的なプログラミングを行う準備が整いました。バチバチとコードを書いていきたいところですが、それ以前に、なにをどうすればデータに手を加えられるかについての知識を詰め込む必要があります。
その手段が「関数とメソッド」です。今回は、Pythonにあらかじめ備えられている「組み込み関数・メソッド」を紹介します。
組み込み関数やメソッドをすべて暗記してしまう必要はありませんが、どのようなものがあるのか目を通しておくことが重要です。いわば基礎練習の千本ノックです。紹介する組み込み関数・メソッドは、重要度順に並べています。
関数とメソッドの区別ですが、ひとまず、単独で使われるものが関数で、特定のオブジェクト(クラス)と結びついて使われるものがメソッドと呼ばれると思ってください。
関数() # 関数の具体例 : print()
オブジェクト.メソッド() # メソッドの具体例 : 文字列.split()
下記に紹介していくコード例を、VSCodeで入力して実行してみましょう。関数とメソッドの違いについても、使い方の違いでわかってくるはずです。余裕があれば、引数やオブジェクトをいじくりまわしながら学習してみてください。
PR
print()関数,sep,end
print関数は、プログラムの出力を表示するための関数です。文字列、数値、リストなど、さまざまな種類のデータを表示できます。おなじみの関数ですね。2+2などの原始的なコードをVSCodeで保存して実行しても結果が出力されないのは、print()で出力を命令していないためです。
コード例の「 #%% 」は、Jupyter Notebookを簡易に起動するコードです。便利なのでぜひ活用してください。「セルの実行」を押すだけでコードの実行結果が確認できます。
#%%
print("Hello, World!") # 一番基本的な用法
print("Hello,", "World!") # 複数の引数(関数の()内に入力されたデータ)を受け取れる
コードを実行すると、”Hello, World!”という文字列が出力されます。複数の引数を入力した場合、各引数の間にはスペースが自動的に挿入されます。
sep,end引数(オプション引数)
print()関数には「 sep 」と「 end 」という2つのオプション引数があります。なお、sepは、「separator(セパレータ・区切り記号)」の略です。
#%%
print("Hello", "World!", sep="-") # 出力項目の間に挿入される文字列を指定。デフォルトはスペース(" “)
print("Hello-World", end="!") # 出力の末尾に追加される文字列を指定。デフォルトでは改行(”\n")
print("Hello", "World", sep="-", end="!") # 両方を同時に使うこともできる
input()関数
input()関数は、ユーザーからの入力を受け取るための関数です。この関数は、ユーザーが何かをタイプしてEnterキーを押すまでプログラムの実行を一時停止します。
#%%
name = input("あなたの名前は何ですか? ")
print("こんにちは、" + name + "さん!")
コードを実行すると、”あなたの名前は何ですか? “というプロンプト(入力フォーム)が表示され、ユーザーが入力した名前がname変数に保存されます。その後、”こんにちは、[名前]さん!”というメッセージが出力されます。
入力データを適切なクラスに変換
input()関数は常に文字列を返します。したがって、数値を入力として受け取る場合は、適切なクラスに変換する必要があります。
#%%
age = input("あなたの年齢は何歳ですか? ")
age = int(age) # 文字列から整数に変換
print("あなたは来年、" + str(age + 1) + "歳になりますね。")
コードでは、ユーザーから年齢を入力として受け取り、それを整数に変換しています。その後、来年の年齢を計算し、メッセージとして出力します。
type()関数
type()関数は、引数として与えられたオブジェクトのクラスを返します。変数がどのような種類のデータを保持しているかを知るために使用します。エラーのデバッグやデータ処理の際に役立ちます。
#%%
NUM = 123
print(type(NUM))
コードを実行すると、出力結果は<class ‘int’>となります。これは、変数NUMが整数(int)クラスであることを示しています。
文字列やリストなど他のクラスについても確認することができます。
#%%
STR_VAR = "Hello, World!"
print(type(STR_VAR))
list_var = [1, 2, 3]
print(type(list_var))
コードを実行すると、それぞれ<class ‘str’>と<class ‘list’>が出力されます。これは、STR_VARが文字列(str)クラスであり、list_varがリスト(list)クラスであることを示しています。
int()関数
int()関数は、引数として与えられた数値または文字列を整数(int)クラスに変換します。データを整数に変換する必要がある場合に利用します。なお、intはinteger(インテジャ・整数)の略です。
#%%
NUM_STR = "123"
NUM_INT = int(NUM_STR)
print(type(NUM_INT))
コードを実行すると、出力結果は<class ‘int’>となります。これは、文字列”123”が整数(int)クラスに変換されたことを示しています。
str()関数
str()関数は、引数として与えられたオブジェクトを文字列(str)クラスに変換します。データを文字列に変換する必要がある場合に利用します。なお、strはstring(文字列)の略です。
#%%
NUM_INT = 123
NUM_STR = str(NUM_INT)
print(type(NUM_STR))
出力結果は<class ‘str’>となります。これは、整数123が文字列(str)クラスに変換されたことを示しています。
len()関数
len()関数は、引数として与えられたオブジェクトの長さ(要素の数)を返します。これは、文字列の長さやリスト内の要素数を知るために便利です。
#%%
STR_VAR = "Hello, World!"
print(len(STR_VAR))
コードを実行すると、出力結果は13となります。これは、文字列”Hello, World!”が13文字であることを示しています。
同様に、リストやタプルなど他のデータについても長さを取得することができます。
#%%
list_var = [1, 2, 3, 4, 5]
print(len(list_var))
コードを実行すると、出力結果は5となります。これは、リスト[1, 2, 3, 4, 5]が5つの要素を持っていることを示しています。
range()関数
range()関数は、連続した整数のシーケンスを生成します。これは、特定の回数だけループを実行するのに便利です。ループ処理やリスト生成の際に役立ちます。for文については、別の記事で説明しますが、下記コードでは、iという部分にrange(5)から生成される数値を繰り返して代入するという処理が行われています。
#%%
for i in range(5):
print(i)
コードを実行すると、出力結果は0から4までの整数が順番に表示されます。これは、range(5)が0から始まり5未満の整数を生成することを示しています。
range()関数は2つまたは3つの引数を取ることもできます。
#%%
for i in range(1, 6):
print(i)
コードを実行すると、出力結果は1から5までの整数が順番に表示されます。これは、range(1, 6)が1から始まり6未満の整数を生成することを示しています。
3つの引数を指定すると、それがステップ(間隔)となります。
#%%
for i in range(0, 10, 2):
print(i)
コードを実行すると、出力結果は0, 2, 4, 6, 8が順番に表示されます。これは、range(0, 10, 2)が0から始まり10未満の整数を2つ飛ばしで生成することを示しています。
リストの生成も容易です。
#%%
date = list( range(5) )
print(date)
list()関数
list()関数は、他のデータクラスをリストに変換するための関数です。リストは、Pythonの最も基本的なデータ構造の一つで、複数の要素を一つの変数に格納することができます。
#%%
list( range(5) )
オブジェクトがイテラブル(iterable,反復可能)な場合、list()関数はその要素を取り出して新しいリストを作成します。直前のrange()関数も、イテラブルです。
文字列をリストに変換することもできます。
#%%
S = "Hello, World!"
L = list(S)
print(L)
コードを実行すると、以下のような出力が得られます。
['H', 'e', 'l', 'l', 'o', ',', ' ', 'W', 'o', 'r', 'l', 'd', '!']
文字列中の各文字がリストの要素として取り出されています。
list()関数の注意点
list()関数は新しいリストを作成しますが、元のオブジェクトは変更されません。list()関数を使用しても元のオブジェクトに影響を与えることはありません。
また、list()関数は引数としてイテラブルなオブジェクトを必要とします。イテラブルでないオブジェクト(例えば、整数や浮動小数点数)を引数に渡すとエラーが発生します。
append()メソッド
append()メソッドは、リストの終端に新しい要素を追加するための組み込みメソッドです。このメソッドはリストクラスのオブジェクトで使用できます。
append()メソッドは以下のように使用します。関数と異なり、前にlist.がおかれていることに着目してください。
list.append(element)
ここで、「list」はリストオブジェクト、「element」は追加する要素です。
以下のようにリストに新しい要素を追加することができます。
#%%
numbers = [1, 2, 3]
numbers.append(4)
print(numbers) # [1, 2, 3, 4]
コードを実行すると、リストnumbersの最後に新しい要素4が追加されます。
append()メソッドの注意点
append()メソッドは元のリストを直接変更します。append()メソッドを使用しても新しいリストは作成されません。list()との違いに注意してください。
また、append()メソッドは一度に一つの要素しか追加できません。複数の要素を一度に追加する場合は、forループやリスト内包表記などを使用する必要があります。
つづく
閲覧性の向上のため、記事を二つに分けます。
重要度順!組み込み関数・メソッド その1はここまで。その2に続きます。
PR
コメント