2-1. 数
数には、1、150、2048などの数(整数)と、0.1、1.125、123.456などの数(小数部を持つ数、実数、浮動小数点数)があります。Pythonが処理できる整数の最大値は、基本的に限度がありません。小数点以下の桁数については、多くの場合15~16桁まで正確に処理できる場合が多いです(小数第17~18位を四捨五入し16~17位表示)。それでは100桁の整数と小数点以下が100桁の数をprint関数でいくつまでの数値として表示できるか確かめてみましょう。
print(1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)
▼プログラミングセル2-1.
print(0.1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890)
2-2. 数値演算
Pythonには、整数や実数などを入力した数値を計算する演算子として以下の7つがあります。なお、整数除算とは割り算の整数部のことです。+や-が演算子であり、演算子の前後にくる要素を被演算子(オペランド)と呼びます。オペランドなどに設定される値のことをリテラルと呼びます。
演算子 | 算術 |
+ | 足し算 |
- | 引き算 |
* | 掛け算 |
/ | 割り算 |
// | 整数除算 |
% | 割り算の余り |
** | べき乗 |
print(10+3)
print(10-3)
print(10*3)
print(10/3)
print(10//3)
print(10%3)
▼プログラミングセル2-2.
print(10**3)
2-3. 数値と変数
変数はデータを格納する箱のようなものです。簡単なイメージではその認識でよいのですが、実際にはデータを格納している場所情報(アドレス)が箱の中に入っています。変数にデータを格納するには演算子=を用いてa=10のような形で使用し、右から左に代入されます。
a = 10
print(a)
a = 10
b = 20
print(a,b)
a = 10
b = 20
print(a+b)
a = 10
print(a+3)
▼プログラミングセル2-3.
a = 10
b = 20
c = 33.3
print(a+b+c)
2-4. 変数の順番の注意
Pythonはプログラムの上から順番に実行されるので、変数を利用する順番には注意が必要です。定義される前に利用しようとするとエラーになるので注意しましょう。
ただし、本サイトのような対話モードの場合、変数を定義する場所が変数を利用する位置より下だとしても、プログラムセルが異なっていて先に実行することができれば、利用する位置より下でも大丈夫です。
▼プログラミングセル2-4.
print(a) # エラー
a = 10
※複数のプログラムセルで同じ変数名を利用していた場合、前のプログラムセルの変数の中身を参照している場合があるので注意しましょう。
print(a) # 先に下の2-5bを実行しておけばエラーにならない
▼プログラミングセル2-5b.
a = 10 # 先にこちらを実行しておけば上の2-5aはエラーにならない
2-6. 演算の短縮表現
a=a+1などの式はa+=1のような形に短縮して記述できます。演算の短縮表現の一覧は次のようになります。
短縮表現 | 記述例 | 通常表記 |
+= | a+=b | a=a+b |
-= | a-=b | a=a-b |
*= | a*=b | a=a*b |
/= | a/=b | a=a/b |
//= | a//=b | a=a//b |
%= | a%=b | a=a%b |
**= | a**=b | a=a**b |
a=10
a+=3
print(a)
a=10
a-=3
print(a)
a=10
a*=3
print(a)
a=10
a/=3
print(a)
a=10
a//=3
print(a)
a=10
a%=3
print(a)
▼プログラミングセル2-6.
a=10
a**=3
print(a)
2-7. 数値の型
数値の型は、整数の型であるint型と、浮動小数点数の型であるfloat型の2つがあります。Pythonのfloat型はC言語のdouble型と同じものになります(C言語のfloat型とは異なるので名前が同じでも注意してください)。それではtype関数を使って確認してみましょう。
print(type(10))
print(type(1.23))
print(type(10+3))
print(type(10-3))
print(type(10*3))
print(type(10/3))
print(type(10//3))
print(type(10%3))
print(type(10**3))
▼プログラミングセル2-7.
print(type(9/3))
2-8. 型の変換
数値の型は、int関数とfloat関数を使って変換することができます。整数の数値をfloat型に変換した場合、整数値に.0が付く点に注意してください。
a=float(10)
print(a)
print(type(a))
▼プログラミングセル2-8.
a=int(1.23)
print(a)
print(type(a))
2-9. 演算子の優先順位
算術演算子を含め、主な演算子の優先順位の一覧表を紹介します。以下の表では、優先順位の最も高い (結合が最も強い) ものから最も低い (結合が最も弱い) ものに並べてあります。同じセル内の演算子の優先順位は同じです。同じボックス内の演算子は、左から右へとグループ化されます (例外として、べき乗および条件式は右から左にグループ化されます)。
演算子 | 説明 |
( ), [ ], {key: value }, { } | 結合式または括弧式、リスト表示、辞書表示、集合表示 |
x[i], x[i:j], x(***), x.*** | 添字指定、スライス操作、呼び出し、属性参照 |
await x | Await式 ※コルーチン関数内で使う特殊な式 |
+x, -x, ~x | 正数、負数、ビット単位 NOT |
*, @, /, //, % | 乗算、行列乗算、除算、切り捨て除算、剰余 |
+, - | 加算および減算 |
<<, >> | シフト演算 |
& | ビット単位 AND |
^ | ビット単位 XOR |
| | ビット単位 OR |
in, not in, is, is not, <, <=, >, >=, !=, == | 所属や同一性のテストを含む比較 |
not x | ブール演算 NOT |
and | ブール演算 AND |
or | ブール演算 OR |
if -- else | 条件式 |
lambda | ラムダ式 |
:= | 代入式 |
問題
以下の問題に解答しましょう。