69個の常用python関数(一)——数学演算

21102 ワード

この文章はCSDN学院のある課程の簡略なノートです.
abs()
数の絶対値を返します.パラメータは、整数、浮動小数点数、または実装された_abs__()のオブジェクト.パラメータが複数の場合は、そのモジュールを返します.
print(abs(12))     # 12
print(abs(-1.2))   # 1.2

#      ,   
print(abs(-3+4j))    # 5.0
print(abs(-1.2+1.6j))     # 2.0

#        __abs__()    
class TestClass:
    def __abs__(self):
        return 123
print('abs(TestClass()) = ',abs(TestClass()))     # abs(TestClass()) =  123

divmod()
division(求商)とmodulus(余剰数を取る)の2つの単語の略語で、2つの数字(非複素数)を実パラメータとして、商と余剰数を含む1つのメタグループを返します.すなわち、結果は(a//b、a%b)です.
a = 10  #    
b = 2   #   
print('divmod(a, b) = ',divmod(a, b))  # divmod(a, b) =  (3, 1)
print('(a//b, a%b) = ',(a//b, a%b))    # (a//b, a%b) =  (3, 1)

a = 2.0  #    
b = 0.3  #   
print(f' divmod(a, b) = ',divmod(a, b))  # divmod(a, b) =  (6.0, 0.20000000000000007)
print('(a//b, a%b) = ',(a//b, a%b))      # (a//b, a%b) =  (6.0, 0.20000000000000007)

#          ,          
# 2.0    0.4  
a = 2.0  #    
b = 0.4  #   
print(f' divmod(a, b) = ',divmod(a, b))  # divmod(a, b) =  (4.0, 0.3999999999999999)
print('(a//b, a%b) = ',(a//b, a%b))      # (a//b, a%b) =  (4.0, 0.3999999999999999)

max()
反復可能なオブジェクトの最大要素を返すか、2つ以上の実パラメータの最大要素を返します.
位置パラメータが1つしか指定されていない場合は、空でない反復可能オブジェクトでなければなりません.反復可能オブジェクトの最大要素を返します.2つ以上の位置パラメータが指定されている場合は、最大の位置パラメータが返されます.
max()には、オプションのキーワードパラメータが2つあります.keyパラメータソート関数用のパラメータを指定します.defaultパラメータは、反復可能オブジェクトが空の場合に返される値です.反復可能なオブジェクトが空であり、defaultが与えられていない場合、ValueErrorが報告されます.
#       ,             
print(f'{ max([1,2,4,5,3]) = }')                 # max([1,2,4,5,3]) = 5
#           ,          。
print(f'{ max(1,2,4,5,3) = }')                   # max(1,2,4,5,3) = 5
#      key,      ,   list.sort,abs  
print(f'{ max([3, 9, -20, 15], key=abs) = }')    # max([1, 2, -3, 2], key=abs) = -3
#    default,                    
print(f'{ max([], default=None) = }')            # max([], default=None) = None
#          ,      default ,   ValueError。
# print(f'{ max([]) = }')
#          ,             
print(f'{ max([1, 2, -3, 2, 3], key=abs) = }')   # max([1, 2, -3, 2, 3], key=abs) = -3
print(f'{ max([1,2,4,5,3]) = }')この書き方はpython 3.6で親測ではサポートされていませんが、3.8バージョンで使用できます.
min()
min()はmax()構造と同様に最小値を返すだけである.max()を参考にして理解できます.
pow()
フォーマット:pow(base,exp[,mod])
機能:baseのexp次べき乗を返します.modが存在する場合、baseのexp次べき乗はmodに対して残りを取ります(pow(base,exp)%modより効率的です).
#    base   exp   ;
print(f'{ pow(10, 2) = }')         # pow(10, 2) = 100

#    mod   ,    base   exp     mod   (  pow(base, exp) % mod    )
print(f'{ pow(12, 34, 56) = }')    # pow(12, 34, 56) = 16

#           。           ,                    。    int    ,             (     ),          ;      ,                    。
print(f'{ pow(10, 2) = }')         # pow(10, 2) = 100
print(f'{ pow(10, -2) = }')        # pow(10, -2) = 0.01

#           
#           ,                    。
print(f'{ pow(2.0, 3) = }')        # pow(2.0, 3) = 8.0

#    int    ,             (     ),          ;      ,                    。
print(f'{ pow(2, 3) = }')          # pow(2, 3) = 8
print(f'{ pow(2, -3) = }')         # pow(2, -3) = 0.125

#    int     base   exp,     mod,  mod           mod      。      mod    exp    ,  base       mod   (  1      )。

#        20      47   :
print(pow(20, -1, mod=47))         # 40
print(40 * 20 % 47 == 1)           # True
#              :https://wenku.baidu.com/view/6f2879cca1c7aa00b52acb5f.html

#   3.8    : (1)   int    ,       pow             ,          。(2)       ,         。

round()
フォーマット:round(number[,ndigits])
機能:numberが小数点に切り込まれた後のndigitsビット精度の値を返します.ndigitsが省略またはNoneの場合、入力値に最も近い整数が返されます.2倍の距離が等しい場合は偶数を選択します(したがって、round(0.5)およびround(-0.5)はいずれも0であり、round(1.5)2であります).任意の整数値は、有効なndigits(正、ゼロ、または負)として使用できます.ndigitsが省略またはNoneの場合、戻り値は整数になります.そうでない場合、戻り値はnumberのタイプと同じです.
#    number         ndigits      。
print(f'{ round(123.456, 2) = }')

#    ndigits       None,            。
print(f'{ round(123.456) = }')               # round(123.456, 2) = 123.46
print(f'{ round(123.456, None) = }')         # round(123.456, None) = 123

#             ,      (  ,round(0.5)   round(-0.5)    0   round(1.5) 2)。
numbers = [-0.5, 0.5, 1.5, 2.5, 3.5]
for num in numbers:
    print(f'{ num = } { round(num) = }')
#    :
# num = -0.5  round(num) = 0
# num = 0.5  round(num) = 0
# num = 1.5  round(num) = 2
# num = 2.5  round(num) = 2
# num = 3.5  round(num) = 4
#     ,round()               ,                ,       (  )

#              ndigits (  、    )。
print(f'{ round(123.456, 2) = }')        # round(123.456, 2) = 123.46
print(f'{ round(123.456, 0) = }')        # round(123.456, 0) = 123.0
print(f'{ round(123.456, -2) = }')       # round(123.456, -2) = 100.0
print(f'{ round(193.456, -2) = }')       # round(193.456, -2) = 200.0

#    ndigits       None         。        number      。
print(f'{ round(123.456) = }')           # round(123.456) = 123
print(f'{ round(123.456, None) = }')     # round(123.456, None) = 123
print(f'{ round(123.456, 2) = }')        # round(123.456, 2) = 123.46

#       Python    number, round      number.__round__。
print(f'{ round(123.456, 2) = }')        # round(123.456, 2) = 123.46
print(f'{ 123.456.__round__(2) = }')     # 123.456.__round__(2) = 123.46

#        round()           :  ,round(2.675, 2)     2.67        2.68。         :                              。
print(f'{ round(2.675, 2) = }')          # round(2.675, 2) = 2.67
print(f'{ round(0.125, 2) = }')          # round(0.125, 2) = 0.12

sum()
書式:sum(iterable,start)
機能:startから左から右へiterableのアイテムを合計し、合計値を返します.iterableの項目は通常数値であり、start値は文字列では許可されません.
#  start         iterable           。
print(f'{ sum([1, 2, 3]) = }')                      # sum([1, 2, 3]) = 6
print(f'{ sum([1, 2, 3], 10) = }')                  # sum([1, 2, 3], 10) = 16
print(f'{ sum([1, 2, 3], 100) = }')                 # sum([1, 2, 3], 100) = 106
print(f'{ sum([1, 2, 3], start=100) = }')           # sum([1, 2, 3], start=100) = 106
#  :iterable       ,        

#        ,   sum()      。                   ''.join(sequence)。             ,    math.fsum()。            ,      itertools.chain()。

#   3.8    : start               。

#                   ''.join(sequence)。
print(f'{ "a" + "b" + "c" = }')                     # "a" + "b" + "c" = 'abc'
# print(f'{ sum(["a", "b", "c"]) = }')
print(f'{ "".join(["a", "b", "c"]) = }')            # "".join(["a", "b", "c"]) = 'abc'