(1) 関数の基礎
データを与えると、何かしらの結果を返す機能を関数といいます。与えるデータを引数(ひきすう)といい、返ってくる結果を戻り値といいます。これまでには画面に結果を出力するprint関数を扱いました。
print関数
print関数は、print(...)の引数(カッコ内に指定した内容)を画面に表示します。
print("Hello, World!")
Hello, World!
type関数‡
type関数は、type(...)の引数の型を戻り値として返します。変数の型については、1-2. 変数と画面出力 > 3. 変数の型を参照してください。
type(18)
int
type("18") # ダブルクォートで囲まれた数字は文字列(str型)として扱う
str
type(1.66)
float
type("Hydrogen")
str
a = 123
print(type(a)) # 変数aの型を出力
<class 'int'> # type関数の結果をprintするとこのような表示になる
a = 123
a = str(a) # 変数aをstr型に変換
print(type(a)) # 変数aの型を出力[
<class 'str'> # type関数の結果をprintするとこのような表示になる
input関数
input関数は、ユーザーからデータを入力してもらうときに使います。input("入力を促すメッセージ")の引数が画面に表示されます。
name = input("あなたのなまえは?") # ユーザーからの入力を変数nameに代入
print("\n") # 入力と出力のあいだに空行を入れる
message = "ふむ・・・\n" + name + " と いうんだな!"
print(message)
あなたの なまえは? # <ここでは「サトシ」と入力>
ふむ・・・
サトシ と いうんだな!
input関数の戻り値は文字列型となります。
a = input("整数を入力してください: ")
type(a)
str
整数値(int型)を入力させたい場合は、次のようにint関数と組み合わせて使います。int関数は引数の値をint型に変換する関数です。もしfloat型として扱いたい場合はfloat関数を組み合わせて使います。
a = int(input("整数を入力してください: "))
type(a)
int
a = float(input("実数値を入力してください: "))
type(a)
float
(2) 組み込み関数
Pythonが標準で持っている関数です。
入出力に関する関数
関数 |
説明 |
呼び出し例 |
結果 |
print |
引数に受け取ったものを画面に出力する |
print("Hello!") |
Hello! |
input |
ユーザーから入力を受け取る |
str = input("...") |
|
型変換に関する関数
関数 |
説明 |
呼び出し例 |
結果 |
int |
数値を整数値にする |
int("123") |
123 |
int("22.4") |
22 |
int("22.8") |
22 ※ |
int("-22.8") |
-22 ※ |
float |
数値を浮動小数点数にする |
float("123") |
123.0 |
float("22.4") |
22.4 |
str |
文字列に変換する |
str(123) |
"123" |
※実数をint関数で整数値に変換すると、小数点以下は切り捨てられる(負の値は0に近づく)。
文字列に関する関数
関数 |
説明 |
呼び出し例 |
結果 |
len |
文字列の文字数やリストの要素数を返す |
len("Hello!") |
6 |
ord |
文字のコードポイントを返す |
ord("A") |
65 |
chr |
コードポイントから文字を返す |
chr(65) |
"A" |
format |
文字列を特定の書式にする |
format(101, "0>8d") |
00000101(右詰8桁) |
format(6.022140, '.2f') |
6.02(小数第2桁位まで) |
その他
関数 |
説明 |
呼び出し例 |
結果 |
type |
変数の型を返す |
type(1) |
int |
type("A") |
str |
type(1.414) |
float |
max |
複数の数値の中の最大値を返す |
max(1, 6, 9, 0, 7, 2) |
9 |
文字は辞書順の最後のものを返す |
max("K", "A", "I", "J", "O") |
"O" |
min |
複数の数値の中の最小値を返す |
min(1, 6, 9, 0, 7, 2) |
0 |
文字は辞書順の最初のものを返す |
min("K", "A", "I", "J", "O") |
"A" |
abs |
絶対値を返す |
abs(-273) |
273 |
pow(x,y) |
xのy乗を返す |
pow(2,10) |
1024 |
pow(x,y,z) |
xのy乗をzで割った余りを返す |
pow(2,10,7) |
2 |
round(x,y) |
xをyの桁で丸めた値を返す |
round(123.456, 1) |
123.5 |
round(123.456, 0) |
123.0 |
round(234.5, 0) |
234.0 ※ |
※round関数は、端数が0.5未満は切り捨て,0.5より大きいなら切り上げ,0.5なら近い偶数の方へ丸める(四捨五入ではないので注意)
eval関数‡
eval関数は、文字列として与えられたコードを実行し、その結果を返す関数です。
x = eval("2 * 4 + 3") # "2 * 4 + 3"値をxに代入
print(x)
11
引数に変数を指定することも可能です。
x = 5
y = eval("2 * x + 3") # "2 * x + 3"値をyに代入
print(y)
13
(3) モジュールとライブラリ
標準の組み込み関数にない関数はモジュールやライブラリを読み込んでから利用することができます。モジュールは外部のファイルに定義されている関数の集まりのことで、ライブラリはモジュールの集まりのことです。
モジュールの使い方①
import モジュール名でモジュールを読み込むことができます。次の例では、randomというモジュールの中のrandint関数を使って、1〜10の整数の乱数を発生させています。
import random # 乱数を発生させるモジュールを読み込む
num = random.randint(1,10) # 1〜10の間の数値をランダムに発生させる
print(num)
6 # 結果は毎回変わります。
モジュールの使い方②
次の例では、mathモジュールの中のceil関数を使って、小数点以下を切り上げています。
import math # mathモジュールを読み込む
value = 3.14
num = math.ceil(value) # 3.14の小数点以下を切り上げる
print(num)
4
モジュールに別名をつける†
import モジュール名 as 別名でモジュールに別名をつけることができます。モジュールの名前が長かったりすると不便なので、別名をつけてプログラムの可読性を向上させます。次の例では、randomというモジュール名をrと短くしてから、randint関数を使って1〜10の乱数を発生させています。
import random as r # 乱数を発生させるモジュールを読み込む
num = r.randint(1,10) # 1〜10の間の数値をランダムに発生させる
print(num)
3 # 結果は毎回変わります。
モジュール名をつけずに関数を直接使用する①‡
from モジュール名 import 関数名で特定の関数をモジュール名を指定せずに使うことができます。
from random import randint # 乱数を発生させるモジュールを読み込む
num = randint(1,10) # 1〜10の間の数値をランダムに発生させる
print(num)
8 # 結果は毎回変わります。
モジュール名をつけずに関数を直接使用する②‡
上記の例では関数ごとに読み込む必要があるため、ワイルドカード(*)を用いてモジュール内のすべての関数を一度に読み込む方法もあります。from モジュール名 import *ですべての関数を読み込みます(ただし、アンダースコア(_)から始まるものは除きます)。
from math import * # mathモジュールのすべての関数を読み込む
print(sqrt(2)) # sqrt:平方根を返す
print(pi) # piは円周率πの値
print(sin(pi/6)) # sin関数:サインsinの値を返す。引数の単位はラジアン。
print(cos(pi/6)) # cos関数:コサインの値を返す。引数の単位はラジアン。
print(log(32, 2)) # log(真数,底):対数を返す。この例は2を底とする32の対数を返す。
1.4142135623730951
3.141592653589793
0.49999999999999994 # コンピュータの計算は小数点以下では誤差ができます。
0.8660254037844387
5.0