max()【最大値】・min()【最小値】
abs()【絶対値】
round()【丸め】3.0
divmod()【商・剰余】
pow()【べき乗・剰余 (xy % z)】
sum()【合計】

max()【最大値】・min()【最小値】

メモ

構文

max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])

戻り値最大値 または 最小値
iterable対象イテラブル オブジェクト
args対象要素 (2個以上)
key (キーワード引数)順序関数 (引数が1つで、戻り値が比較キー)
default (キーワード引数)iterableが空の場合のデフォルト返却値 (未指定:ValueError 例外)

※ 上側の構文の * は、キーワード引数との区切り (def【関数定義】 参照)

print(max(2, -4, 6), min(2, -4, 6))

lst = [-1, 3, -5, 7, -9]
print(max(lst), min(lst))

tpl = (-3, 6, -9, 12, -15)
print(max(tpl), min(tpl))

dic = {'A': 3, 'B': 2, 'C': 1}
print(max(dic), min(dic))  # キーで比較
【出力例】
6 -4
7 -9
12 -15
C A
# 順序関数 (1/2)
def func_abs(n):
    return abs(n)  # 絶対値で比較

lst = [-1, 3, -5, 7, -9]
print(max(lst), min(lst))
max_abs = max(lst, key=func_abs)
min_abs = min(lst, key=func_abs)
print(max_abs, min_abs)

print(max(-2, 4, -6, 8, -10), min(-2, 4, -6, 8, -10))
max_abs = max(-2, 4, -6, 8, -10, key=func_abs)
min_abs = min(-2, 4, -6, 8, -10, key=func_abs)
print(max_abs, min_abs)
【出力例】
7 -9
-9 -1
8 -10
-10 -2
# 順序関数 (2/2)
def func_dict(k):  # k:キー
    return abs(dic[k])  # 値の絶対値で比較

dic = {'MaxZ': -9, 'MaxA': +9, 'MinZ': +1, 'MinA': -1}
print(max(dic), min(dic))

max_dict = max(dic, key=func_dict)  # 先に現れた要素
min_dict = min(dic, key=func_dict)  # 先に現れた要素
print(max_dict, min_dict)
【出力例】
MinZ MaxA
MaxZ MinZ
# 空のオブジェクト
list_empty = []
try:
    print(max(list_empty))
except ValueError as e:
    print(type(e), e)

try:
    print(min(list_empty))
except ValueError as e:
    print(type(e), e)

max_empty = max(list_empty, default=99)
min_empty = min(list_empty, default=-99)
print(max_empty, min_empty)
【出力例】
<class 'ValueError'> max() arg is an empty sequence
<class 'ValueError'> min() arg is an empty sequence
99 -99

abs()【絶対値】

メモ

構文

abs(x)

戻り値絶対値
x対象値 (数値型)

data = [1, 1.1, -2, -2.2]
for x in data:
    print(abs(x))
【出力例】
1
1.1
2
2.2

round()【丸め】3.0

メモ

構文

round(number[, ndigits])

戻り値丸め値
number対象値 (整数・浮動小数点数)
ndigits小数部の桁数 (省略:整数値へ丸め / 0≦:小数部を丸め / <0:整数部を丸め)

# 偶数値を優先
data = [-1.5, -0.5, 0.5, 1.5, 2.5]
for x in data:
    print(round(x))
【出力例】
-2
0
0
2
2
# 浮動小数点数の不正確性 (2.675 -> 2.67)
data = [0.674, 0.675, 0.676, 2.674, 2.675, 2.676]
for x in data:
    print(round(x, 2))
【出力例】
0.67
0.68
0.68
2.67
2.67
2.68
# 小数部の桁数
x = 123.456
print(round(x, 2))
print(round(x, 1))
print(round(x, 0))
print(round(x, -1))
print(round(x, -2))
【出力例】
123.46
123.5
123.0
120.0
100.0
# 誤差検証
# 0.0 + 0.1 + ... + 9.8 + 9.9
sum1 = 0  # そのまま合計
sum2 = 0  # 丸めて合計
sum3 = 0  # 四捨五入して合計
for n in range(100):
    x = n / 10
    sum1 += x
    x2 = round(x)
    sum2 += x2
    if (n % 5) == 0:
        x3 = round((x + 0.01))
    else:
        x3 = round(x)
    sum3 += x3
    print(x, x2, x3)
    
print(sum1, sum2, sum3)
【出力例】
0.0 0 0
0.1 0 0
0.2 0 0
0.3 0 0
0.4 0 0
0.5 0 1
0.6 1 1
0.7 1 1
0.8 1 1
0.9 1 1
1.0 1 1
1.1 1 1
1.2 1 1
1.3 1 1
1.4 1 1
1.5 2 2
1.6 2 2
1.7 2 2
1.8 2 2
1.9 2 2

(省略)

8.0 8 8
8.1 8 8
8.2 8 8
8.3 8 8
8.4 8 8
8.5 8 9
8.6 9 9
8.7 9 9
8.8 9 9
8.9 9 9
9.0 9 9
9.1 9 9
9.2 9 9
9.3 9 9
9.4 9 9
9.5 10 10
9.6 10 10
9.7 10 10
9.8 10 10
9.9 10 10
495.0 495 500

divmod()【商・剰余】

メモ

構文

divmod(a, b)

戻り値商と剰余の対
a被除数 (整数・浮動小数点数)
b除数 (整数・浮動小数点数)

a = 7
b = 3
print(divmod(a, b))
div, mod = divmod(a, b)
print(div, mod)
print((a // b), (a % b))

print(divmod(7.7, 3.3))
【出力例】
(2, 1)
2 1
2 1
(2.0, 1.1000000000000005)

pow()【べき乗・剰余 (xy % z)】

メモ

構文

pow(x, y[,z])

戻り値べき乗 (xy) または べき乗の剰余 (xy % z)
x底 (数値型) z (除数)指定の場合は整数
yべき指数 (数値型) z (除数)指定の場合は非負整数
z除数 (数値型)y (べき指数)が負の場合は指定不可

x = 2
y = 3
z = 4
print(pow(x, y))
print(pow(x, y, z))

print(pow(5, -1))
print(pow(5, 0))

print(pow(1.5, 0.5))
【出力例】
8
0
0.2
1
1.224744871391589

sum()【合計】

メモ

構文

sum(iterable[, 初期値] )

戻り値合計値等
iterable対象イテラブル オブジェクト (通常は数値要素)
start初期値 (デフォルト:0)

data1 = [1, 2, 3]
print(sum(data1))
print(sum(data1, 10))

data2 = [1.1, 2.2, 3.3]
print(sum(data2))

# 非推奨
data3 = [[1, 2], [3, 4]]
print(sum(data3, []))
【出力例】
6
16
6.6
[1, 2, 3, 4]