(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