Chapter 1 - §05 関数 # 1
関数
関数とは
それを呼び出すだけで決まった処理をしてくれるコードです。 関数にはたくさんの種類があり、自分で作る(定義する)こともできます。 今回は、数値・文字列・入出力に関わる関数を見ていきます。
まずはどのようなものがあるか表と例を載せます。
呼び出しなしで使える関数
数値に関係する関数
| 関数 | 説明 |
|---|---|
| max(a, b, ・・・) | ()内のすべての数字の中から最も大きい値を返す |
| min(a, b, ・・・) | ()内のすべての数字の中から最も小さい値を返す |
| pow(x, y) | x の y乗の値を返す |
| pow(x, y, z) | x の y乗を zで割った余り |
| round(x, n) | x を n桁で偶数側に近づけて丸めた値 |
| abs(x) | x の絶対値 |
例:
max(1, 3, 5, 7, 9) 9 min(1, 3, 5, 7, 9) 1 pow(5, 2) 25 round(5.5555, 3) 5.5 abs(-3.14) 3.14
文字列に関係する関数
| 関数 | 説明 |
|---|---|
| chr(i) | 数値 i が示す Unicode を返す |
| ord("文字") | 文字の Unicode を返す |
| len("文字列") | 文字列の長さを数値にして返す(日本語も可) |
| str("数値") | 数値を文字列に直して返す |
例:
chr(12354) あ ord("あ") 12354 len("peco2282のブログ") 12 str(123) '123'
入出力に関する関数
| 関数 | 説明 |
|---|---|
| input() | (変数)=input()と使い、入力された文字・数値を変数に代入 |
| print("") | () の中の文字を出力 |
例:
a = input("文字を入れてください。:") >>> 関数 # 変数 a に '関数' という文字列を代入 print(a) '関数'
モジュールから読み込む関数
これは、新しく外部モジュールから呼び出す必要のある関数です。
一例として mathモジュール、randomモジュール の2つを挙げます
呼び出し方と使い方
プログラムの初めに import [モジュール名](, [モジュール名], ・・・複数ある場合) と書いで呼び出します。
呼び出したモジュールを内部で名前を変えて使用したいときは、
import [モジュール名] as [別名] と書く
使い方は [モジュール名].[関数]()
mathモジュール
具体的な詳細はこちら
| 関数 | 説明 |
|---|---|
| ceil(x) | 小数点以下を切り上げて整数にする |
| fabs(x) | xの絶対値 |
| copysign(x, y) | その数値の正負を逆転させたもの |
| factorial(x) | xの階乗 |
| floor(x) | 小数点以下を切り捨てて整数にする |
| fmod(x, y) | xをyで割った余り |
| fsum(iterable) | iterable(タプル、リスト、辞書、集合など)などの値の浮動小数点数の和 |
| gcd(a, b) | 整数(a, b)の最大公約数 |
| exp(x) | e の x 乗 |
| log(x, base) | base を底とした x の対数 |
| log2(x) | log(x, 2) と同義 |
| log10(x) | log(x, 10) と同義 |
| pow(x, y) | x の y 乗 |
| sqrt(x) | x の平方根 |
| e | 自然対数(exponential: 2.7182; ネイピア数) |
| inf | いわゆる無限大 (infinity) |
| nan | 非数(not a number) |
Chapter 1 - §04 文字のスライス, 比較・論理演算子
文字のスライス
スライスとは
文字列の中から文字の範囲を指定して、その部分だけ切り取るという手法です。
使い方
1. 文字列を変数に代入します。
2. (変数名)[開始位置:終了位置:ステップ] で抜き出したい範囲を指定する。
これだけです。
注意点として、開始位置の文字は0文字目とカウントすること!
(終了位置は始めの文字を1としてカウントしてください)
例:
a = "I get up early to go to school"
#全ての文字
a[:]
I get up early to go to school
#6文字目から
a[6:]
up early to go to school
#14文字目まで
a[:14]
I get up early
#6文字目から14文字目まで
a[6:14]
up early
#6文字目から8文字
a[6:6+8]
up early
#後ろの10文字目の手前まで
a[:-10]
I get up early to go
#ステップあり
#全ての文字を2文字飛ばし(2文字ステップ)で
a[::2]
Igtu al og osho
#2文字目から17文字目までを2文字ステップ
a[2:17:2]
gtu al o
#6文字目から2文字ステップ
a[6::2]
u al og osho
#14文字目までを2文字ステップ
a[:14:2]
Igtu al
#逆順に並び替える
a[::-1]
loohcs ot og ot ylrae pu teg I
#後ろの文字から5文字ステップ
a[::-5]
lso et
このようにすると、上手に使えば、文字列の自分の欲しい部分だけ引用することができます。
演算子
比較演算子
比較演算子とは
2つのものの大小などの比較を行う記号のことです。
| a == b | a と bは互いに等しい |
| a != b | a と bは互いに異なる |
| a >= b | a は b以上 |
| a > b | a は bより大きい |
| a <= b | a は b以下 |
| a < b | a は bより小さい |
論理演算子
論理演算子とは
and、not、or の3つのことを指します。True と False を使って結果を出力します。
条件文 if で比較演算子とともによく使われます。
x and y : ともに True の時、Trueを返します。
| x | y | 返す結果 |
| True | True | True |
| True | False | False |
| False | True | False |
| False | False | False |
x or y : ともに True、又はどちらかが True のとき、True を返します。
| x | y | 返す結果 |
| True | True | True |
| True | False | True |
| False | True | True |
| False | False | False |
not x : 反対の結果を返します。
| x | 返す結果 |
| True | False |
| False | True |
Chapter 1 - §03 文字列・数値
文字列
§01でも紹介したように、 `print()`の中には変数以外に直接文字を入れることができます。print() 文でできることを上げていきます。
・変数に代入した文字列を連結させて表示する
文字列を変数に代入して、それをつなげ合わせるとき、 , を使います。
例えば、a = 明日は, b = 晴れます
この二つの単語を`明日は晴れます`にするために a と b の文字列を繋げるとします。
この時、
print(a, b)
明日は晴れます
・print()文でできること (+α)
空白行を作る
文字通り、空白の行を入れることができます。
print("100")
print("200")
print("300")
# これを実行すると
100
200
300
これを、それぞれの文の間に print() をもう一つ入れることで、
print("100")
print()
print("200")
print()
print("300")
# これを実行すると
100
200
300
となり、少し見やすくすることができます。
これは、100 と 200、200 と 300 の間に print() の中身 (何もない) が挟まっているので空白の行を作ることができます。
区切り文字・文末文字を指定
本来、print() はprint(値a, 値b, …, sep = "", end = "") という形で使いますが、普段は sep="", end="" は使わないので省略されています。(オプションとして付けることができる、という考え方でOKです)
使い方は、
sep = "" :値a と 値b の間に入れる区切り文字 (sepはseparator の略)end = "" :最後の値の後につける文末としての文字
です
使用例:
a = 100
b = 200
c = 300
d = 400
print(a, b, c, d, sep = ",", end = ".")
#実行結果
100,200,300,400.
このように、値の間を,、文末を. で終わらせることができます。
数値
pythonでは、整数、n進数、小数、複素数を扱うことができます。
整数の扱い方は前回説明したので省略します。
なので、n進数・小数・複素数について説明します。
ちなみに、これらはすべて計算に用いることができます。
n進数
普段の生活の中ではあまりよく使われませんが、pcなどでの電子機器では2,8,16進数で動いています。
なのでこの3つについて説明します。
2進数
2進数表記は、数字の前に '0b'(b は binary) を付けます
print(0b1010) を実行すると、10 という値が出てきます。これは、1010 という2進数を10進数に直すと 10
という値になるからです。
他にも、0b1111 は 150b11001100 は 204
という結果が出ます。
8進数
8進数は、数字の前に '0o'(o は octal) を付けます。
0o1257 は 6870o15214 は 6796
という結果が出ます。
16進数
16進数は、数字の前に '0x'(x は hexadecimal) を付けます。0xfff は 40950x195af は 103855
です。
小数
小数同士・小数と整数の計算ができます。
例:
10.5 + 0.2 = 10.7
15 - 1.55 = 13.45
1.1 * 1000 = 1100.0
100 * 0.2 = 20
しかし、//という演算子を使うと、小数点以下を切り捨てた数値を返します。
また、/ を使うと、割り切れる場合は、基本的に小数点第1位まで表示されます。
小数点以下を丸めるには、round() を使います。
これは四捨五入とは少し違い、小数点以下が.5の時はいちばん近い偶数に丸めます。
例えば2.5に近い整数は2または3ですが、どちらも0.5の違いなので、round(2.5) のときは偶数の2に丸めます。また、round(3.5) の時は偶数に近づけるので、4になります。
丸める桁数を指定したいときは、round(数値, 桁数) の順に並べます。
使用例:
print(round(1.4))
1
print(round(9.584, 2))
9.58
複素数
(複素数とは、虚数単位を2乗すると -1 になる数のこと)
複素数は 実部 + 虚部 を使って表します。
数学では、虚数単位は i を使いますが、pythonでは j を使います。
計算例:
print(1j * 1j)
(-1 + 0j)
a = 2.6 + 0.5j
b = 0.5 + 0.8j
print(a + b)
(3.1 + 1.3j)
print(a * b)
(0.9+2.33j)
また、複素数から実部、虚部をそれぞれ取り出すこともできます。
v = 3.1 + 1.3j とします
実部:(変数).real
虚部:(変数).imag
v = 3.1 + 1.3j
print(v.real)
3.1
print(v.imag)
1.3
また、complex() を使うことで、逆に数を2つ与えて複素数を作ることもできます。complex(実部, 虚部) のように使います。
complex(2, 5)
(2 + 5j)
今回は以上です。
前回:Chapter 1 - §02 計算・コメント - peco2282のブログ
間違いなどのご指摘がございましたら、修正依頼を出していただけたら幸いです。
Chapter 1 - §02 計算・コメント
Pythonで計算してみよう
今回から、開発環境を使って作っていきたいと思います。
自分は Pycharm を使いますが、VSCode などご自分が使われているものであればかまいません。
文字列以外はすべて半角小文字です。
簡単な計算
1 + 1 = 2 を計算してみましょう。
print(1 + 1)を入れて実行すると、
2
と出てきます。
↓ このようになれば成功です。

掛け算・割り算・累乗(羃乗)などの複雑な計算もできます。
print(6 - 4)
print(2 * 5)
print(10 / 2)
print(2 ** 3) # 累乗(累乗)は**で表せます。
print(50 / (5 ** 2))
print((50 / 5) ** 2)
結果は
2
10
5.0
8
2.0
100.0
となります。割り算が入っているとき、結果が整数の時は小数第1位まで表されます。
変数を使った計算
変数とは
変数とは数字や文字などを一時的に保管しておくための箱のようなものです。
変数の大きな役割は、ある値を入れてもその中身を自由に変えられる点です。
変数を使った計算
aに2、bに6を入れて足してみましょう。
a = 2
b = 6
sum = a + b
print(sum)
答えは
8
となります。
変数は、後からでも変更できます。
a = 2
b = 6
sum = a + b
print(sum)
a = 4
sum = a + b
print(sum)
8
10
となります。
どうしてこうなるかというと、
1. a = 2, b = 6
1. a + b = 2 + 6 = 8
1. ここで a = 4 に上書きする。
1. a + b = 4 + 6 = 10
の順にプログラムは実行します。
コードの書き方
・文の改行
例えば、
print(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 15 + 16 + 17 + 18 + 19 + 20)
と書きたくても、長すぎてみるのが大変になることもありそうです。
こういう時に改行すると分かりやすいと思います。
改行する時は、\ (バックスラッシュ)を付けます。
print(1 + 2 + 3 + 4 + 5 \
+ 6 + 7 + 8 + 9 + 10 \
+ 11 + 12 + 13 + 14 + 15 \
+ 16 + 17 + 18 + 19 + 20)
・コメント
プログラムを書いているときに、途中から何を書いているのか分からなくなる時もあると思います。
そういうときのために、 コメント という機能があります。
使い方:文の初めに # を置くだけです。
また、2行を超える場合、""を使って囲うことで、複数行のコメントをすることができます。
print(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10) #これは1~10までの合計を求める。
print(1 + 2 + 3 + 4 + 5 \
+ 6 + 7 + 8 + 9 + 10 \
+ 11 + 12 + 13 + 14 + 15 \
+ 16 + 17 + 18 + 19 + 20)
"""
これは
1~20までを
足している。
"""
ちなみに、\ の後ろにも、# で始まるコメントを書くことができます。
今回はこれで以上です。
前回:Chapter 1 - §01 Python 3 の準備 - peco2282のブログ
次回:Chapter 1 - §03 文字列・数値 - peco2282のブログ
間違いなどのご指摘がございましたら、修正依頼を出していただけたら幸いです。
Chapter 1 - §01 Python 3 の準備
1. Python3のインストール
PythonにはPython 2 と Python 3 がありますが、Python 2 はこれからはバージョンアップされることはないので、Python 3 で解説していきます。
Python 3 のオフィシャルサイト
Python 3 のオフィシャルサイト
ここからPythonを無料でダウンロードできます。
インストールの仕方はこのサイトを参考にしてください。
2. 統合開発環境の用意
おすすめは、Visual Studio CodeまたはPycharmです。
どちらかをインストールしてください。
・Visual Studio Code(VScode)のインストール
・Pycharmのインストール
3. Pythonを起動してみる
インストールが完了したら、画面の左下のwindowsロゴマークをクリックして一番上にPython 3.x.x (64bit) と書かれたプログラムがあるのでそれをクリックします。
↓この画面が出ればOK

4. コードを書いて動かしてみる
この画面が出たことで、pythonは動かせるようになりました。
定番の"Hello World!!"を表示させましょう。
print("Hello World!!")
これを
>>>
の後に打って、Enterを押してみましょう。

このようになれば成功です。
今回はこれで終わりにします。
次回からは開発環境を使います。
お疲れ様でした。
次回:Chapter 1 - §02 計算・コメント - peco2282のブログ
間違いなどのご指摘がございましたら、修正依頼を出していただけたら幸いです。
余談
pythonは十分な機能がありますが、それでも足りないものが出てくることがあります。
それで、よく使われる外部ライブラリを最初から組み込んである状態で配布されているものもあります。
その一例として、Anacondaというものがあります。
このリンクからダウンロードできます。
Windowsでのインストール方法はこちら。