Python数値処理

Pythonで数値処理する際に利用するトピックを記載します。

| 算術演算子

Pythonで利用する算術演算子です。
「+」「-」「*」「/」:四則演算
「//」:割った結果の整数部分が残る
「%」 :割った結果の余りが残る
「**」:べき乗(指数)

# 算術演算のサンプルです.
a = 10
b = 8

print('a // b = {}'.format(a // b)) # 割り切れる数
print('a %  b = {}'.format(a % b))  # 余り
print('a ** b = {}'.format(a ** b)) # べき乗(10の8乗)
# 算術の簡略化は「a += b」で記述する
a += b
print('a +  b = {}'.format(a))

出力結果

a // b = 1
a %  b = 2
a ** b = 100000000
a +  b = 18

 

なお、ゼロ除算(a / 0)は下記のように例外が発生し、エラーになります。

a /= 0
ZeroDivisionError: division by zero

 

 

| インクリメント

Pythonでは「i++」のようなインクリメントがありません。’i += 1’のように記述します.ただ、for文などではインクリメント処理する必要はないので使う場面はあまりないかもしれません。

for i in range(5):
    print('i={}'.format(i))

上記記述で「i」はインクリメントされ、下記のように表示されます。

出力結果

i=0
i=1
i=2
i=3
i=4

 

余談ですが、range()の指定では1-12までで処理したい場合、
次のように最大値+1(12ではなく13)を指定する必要があるので注意。

# 1-12月までの処理.
for month in range(1, 13):
    print('{}月'.format(month))

 

 

| 数値範囲チェック

Pythonの数値範囲チェックの記法として、例えば1~10かどうかを判定する場合、
以下のように記述できます。

i = 10

if 1 <= i <= 10:
    print('1-10の範囲内です')
else:
    print('範囲外です')

 

 

| 乱数値

乱数値の生成には「random」モジュールを利用します。

import random
x = random.randint(1, 10) # 1-10のランダム値
print('random value={}(1-10)'.format(x))

出力結果

random value=10(1-10)

 

 

| 数値表現

何もつけないと10進数で表現されます。各基数で表現する場合の表現方法は以下です。

# 数値表現サンプル

#10進数
a10 = 17
#2進数
a02 = 0b00010001
#8進数
a08 = 0o21
#16進数
a16 = 0x11

print('10進数(17) : {}'.format(a10))
print(' 2進数(0b1101): {}'.format(a02))
print(' 8進数(0o23) : {}'.format(a08))
print('16進数(0xff) : {}'.format(a16))

出力結果

10進数(17)    : 17
 2進数(0b1101): 17
 8進数(0o23)  : 17
16進数(0xff)  : 17

 

| 数値への変換

int()関数やfloat()関数を用いると数値変換できます。
int(x) : 整数に変換する
float(x) : 浮動小数点に変換する

第2引数に基数(何進数で表現するか)を指定することができます。
第1引数で渡された文字を、第2引数で渡されたX進数で解釈する。

int('16', 10) # 10進数で16を変換.結果は16 
int('16', 8) # 8進数で16を変換.結果は14 
int('16', 16) # 16進数で16を変換.結果は22 
int('16', 2) # 2進数で16を変換.結果はエラー(16表現不可) 

2進数の文字列を変換したい場合は下記のように記載します。

int('1010', 2) # 文字列を2進数で解釈して変換.結果は10.

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です