オブジェクトと型

# float型の特性を表示

import sys

print(sys.float_info)

C:>python xxx.py
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

# aとbの同一性の判定

a = int(input('整数a:'))
b = int(input('整数b:'))

print('a is b =', a is b)

C:>python xxx.py
整数a:10
整数b:5
a is b = False

# Noneと論理値(その1)

x = None
if x:
    print('成立')
else:
    print('不成立')

C:>python xxx.py
不成立

# Noneと論理値(その2:is演算子)

x = None
if x is None:
    print('成立')
else:
    print('不成立')

C:>python xxx.py
成立

# 偽とみなされる値の判定(その1)

x = 0
if x:
    print('成立')
else:
    print('不成立')

C:>python xxx.py
不成立

# 偽とみなされる値の判定(その2)

x = 0
if x is None:
    print('成立')
else:
    print('不成立')

C:>python xxx.py
不成立

# 算術演算用の組込み関数の利用例

x = float(input('実数x:'))
y = float(input('実数y:'))
z = float(input('実数z:'))

print(f'abs(x)         = {abs(x)}')
print(f'bool(x)        = {bool(x)}')
print(f'divmod(x, y)   = {divmod(x, y)}')
print(f'max(x, y)      = {max(x, y)}')
print(f'min(x, y)      = {min(x, y)}')
print(f'pow(x, y)      = {pow(x, y)}')
print(f'round(x, 2)    = {round(x, 2)}')
print(f'round(x, 3)    = {round(x, 3)}')
print(f'sum((x, y, z)) = {sum((x, y, z))}')

C:>python xxx.py
実数x:5
実数y:8
実数z:3
abs(x) = 5.0
bool(x) = True
divmod(x, y) = (0.0, 5.0)
max(x, y) = 8.0
min(x, y) = 5.0
pow(x, y) = 390625.0
round(x, 2) = 5.0
round(x, 3) = 5.0
sum((x, y, z)) = 16.0

# ビット単位の論理積・論理和・排他的論理和・反転を表示

a = int(input('正の整数a:'))
b = int(input('正の整数b:'))
w = int(input('表示桁数:'))

m = 2 ** w - 1      # w桁すべてが1の2進数に相当

print(f'a     = {a:0{w}b}')
print(f'b     = {b:0{w}b}')
print(f'a & b = {a & b:0{w}b}')
print(f'a | b = {a | b:0{w}b}')
print(f'a ^ b = {a ^ b:0{w}b}')
print(f'~a    = {~a & m:0{w}b}')
print(f'~b    = {~b & m:0{w}b}')

C:>python xxx.py
正の整数a:10
正の整数b:5
表示桁数:3
a = 1010
b = 101
a & b = 000
a | b = 1111
a ^ b = 1111
~a = 101
~b = 010

# 下位4ビットのリセット/セット/反転

a = int(input('0~255:'))

print(f'その値  = {a:08b}')
print(f'リセット = {a & 0b11110000:08b}')
print(f'セット  = {a | 0b00001111:08b}')
print(f'反転   = {a ^ 0b00001111:08b}')

C:>python xxx.py
0~255:11
その値  = 00001011
リセット = 00000000
セット  = 00001111
反転   = 00000100

# 整数値を左右にシフトした値を2進数で表示

x = int(input('整数:'))
n = int(input('シフトするビット数:'))

print(f'x      = {x:b}')
print(f'x << n = {x << n:b}')
print(f'x >> n = {x >> n:b}')

C:>python xxx.py
整数:6
シフトするビット数:1
x = 110
x << n = 1100 x >> n = 11

# 整数値を左右にシフトした値を10進数で表示

x = int(input('整数:'))
n = int(input('シフトするビット数:'))

print(f'x << n      = {x << n:d}')
print(f'x *  2のn乗 = {x *  2 ** n:d}')
print(f'x >> n      = {x >> n:d}')
print(f'x // 2のn乗 = {x // 2 ** n:d}')

C:>python xxx.py
整数:10
シフトするビット数:2
x << n = 40 x * 2のn乗 = 40 x >> n = 2
x // 2のn乗 = 2

この記事は役に立ちましたか?

もし参考になりましたら、下記のボタンで教えてください。

関連記事

コメント

この記事へのコメントはありません。