pythonベース(一)

22699 ワード

一、数値タイプ:
1、数値タイプの表示
1.type(  ) #         , :a=2,type(a)

2、モジュール導入と十進法精度計算モジュール使用
 
2.import      # import     
3.import decimal # decimal            
 :
a=decimal.Decimal('2.4')
b=decimal.Decimal('2')
a-b
  :Decimal('0.4') #  decimal.Decimal()        
#          ,           ; 
#     :             ,    decimal.getcontext().prec=x    ,             
#   :            (       )

 
 
decimal   :

      、         decimal.Decimal,                

decimal context:

decimal      context   ,    getcontext       。           decimal.getcontext().prec        (   28)

可以通过整数、字符串或者元组构建decimal.Decimal,对于浮点数需要先将其转换为字符串

decimal的context:

decimal在一个独立的context下工作,可以通过getcontext来获取当前环境。例如前面提到的可以通过decimal.getcontext().prec来设定小数点精度(默认为28)

 

 

 

from  decimal import Decimal
from  decimal import getcontext

d_context = getcontext()
d_context.prec = 6
print(d_context)

d = Decimal(1) / Decimal(3)
print(type(d), d)

  : 0.333333
from  decimal import Decimal
from  decimal import getcontext

d_context = getcontext()
d_context.prec = 6
print(d_context)

d = Decimal(1) / Decimal(3)
print(type(d), d)

结果: 0.333333

 

3、math模块使用

 

import math
math.ceil(  ) # cail     
math.floor(  ) # floor     

————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
math             :

ceil:     x       ,  x     ,   x

math模块其它函数的常用方法说明:

ceil:取大于等于x的最小的整数值,如果x是一个整数,则返回x

#     x       ,  x     ,   x
ceil(x)
Return the ceiling of x as an int.
This is the smallest integral value >= x.
>>> math.ceil(4.01)
5
>>> math.ceil(4.99)
5
>>> math.ceil(-3.99)
-3
>>> math.ceil(-3.01)
-3

copysign:yの正負をxの前に加算し、0を使用できます.
# y      x  ,    0
copysign(x, y)
Return a float with the magnitude (absolute value) of x but the sign 
of y. On platforms that support signed zeros, copysign(1.0, -0.0) 
returns -1.0.
>>> math.copysign(2,3)
2.0
>>> math.copysign(2,-3)
-2.0
>>> math.copysign(3,8)
3.0
>>> math.copysign(3,-8)
-3.0

cos:xの余弦を求めて、xは弧でなければなりません
# x   ,x     
cos(x)
Return the cosine of x (measured in radians).
#math.pi/4    ,      45 
>>> math.cos(math.pi/4)
0.7071067811865476
math.pi/3    ,      60 
>>> math.cos(math.pi/3)
0.5000000000000001
math.pi/6    ,      30 
>>> math.cos(math.pi/6)
0.8660254037844387

degrees:xをアークから角度に変換する
# x        
degrees(x)
Convert angle x from radians to degrees.
>>> math.degrees(math.pi/4)
45.0
>>> math.degrees(math.pi)
180.0
>>> math.degrees(math.pi/6)
29.999999999999996
>>> math.degrees(math.pi/3)
59.99999999999999

e:定数を表す
#      
>>> math.e
2.718281828459045

exp:mathを返します.e,すなわち2.71828のx次方
#  math.e,   2.71828 x  
exp(x)
Return e raised to the power of x.
>>> math.exp(1)
2.718281828459045
>>> math.exp(2)
7.38905609893065
>>> math.exp(3)
20.085536923187668

expm 1:mathを返す.eのx(その値は2.71828)次の方の値から1を減らす
#  math.e x(   2.71828)     1
expm1(x)
Return exp(x)-1.
This function avoids the loss of precision involved in the direct evaluation of exp(x)-1 for small x.
>>> math.expm1(1)
1.718281828459045
>>> math.expm1(2)
6.38905609893065
>>> math.expm1(3)
19.085536923187668

fabs:xの絶対値を返す
#  x    
fabs(x)
Return the absolute value of the float x.
>>> math.fabs(-0.003)
0.003
>>> math.fabs(-110)
110.0
>>> math.fabs(100)
100.0

factorial:xの乗算値をとる
# x     
factorial(x) -> Integral
Find x!. Raise a ValueError if x is negative or non-integral.
>>> math.factorial(1)
1
>>> math.factorial(2)
2
>>> math.factorial(3)
6
>>> math.factorial(5)
120
>>> math.factorial(10)
3628800

floor:x以下の最大整数値をとり、xが整数であれば自身を返します.
#     x       ,  x     ,     
floor(x)
Return the floor of x as an int.
This is the largest integral value <= x.
>>> math.floor(4.1)
4
>>> math.floor(4.999)
4
>>> math.floor(-4.999)
-5
>>> math.floor(-4.01)
-5

fmod:x/yの残数が得られ、その値は浮動小数点数である
#  x/y   ,        
fmod(x, y)
Return fmod(x, y), according to platform C.  x % y may differ.
>>> math.fmod(20,3)
2.0
>>> math.fmod(20,7)
6.0

frexp:xがそれぞれ0.5と1を除いて1つの値の範囲を得るメタグループ(m,e)を返します.
#      (m,e),      :x   0.5 1,        ,
#2**e        ,e           ,  x/(2**e),  m  
#  x  0, m e    0,m        (0.5,1)  ,   0.5 1
frexp(x)
Return the mantissa and exponent of x, as pair (m, e).
m is a float and e is an int, such that x = m * 2.**e.
If x is 0, m and e are both 0.  Else 0.5 <= abs(m) < 1.0.
>>> math.frexp(10)
(0.625, 4)
>>> math.frexp(75)
(0.5859375, 7)
>>> math.frexp(-40)
(-0.625, 6)
>>> math.frexp(-100)
(-0.78125, 7)
>>> math.frexp(100)
(0.78125, 7)

fsum:反復器の各要素の和を求める操作
#                
fsum(iterable)
Return an accurate floating point sum of values in the iterable.
Assumes IEEE-754 floating point arithmetic.
>>> math.fsum([1,2,3,4])
10.0
>>> math.fsum((1,2,3,4))
10.0
>>> math.fsum((-1,-2,-3,-4))
-10.0
>>> math.fsum([-1,-2,-3,-4])
-10.0

gcd:xとyの最大公約数を返す
#  x y      
gcd(x, y) -> int
greatest common divisor of x and y
>>> math.gcd(8,6)
2
>>> math.gcd(40,20)
20
>>> math.gcd(8,12)
4

Hypot:xが無限大の数字であるかどうかはTrue、そうでない場合Falseを返します
#  (x**2+y**2),    
hypot(x, y)
Return the Euclidean distance, sqrt(x*x + y*y).
>>> math.hypot(3,4)
5.0
>>> math.hypot(6,8)
10.0

isfinite:xが正の無限大または負の無限大の場合はTrueを返します.そうでない場合はFalseを返します.
#  x         ,   True,    False
isfinite(x) -> bool
Return True if x is neither an infinity nor a NaN, and False otherwise.
>>> math.isfinite(100)
True
>>> math.isfinite(0)
True
>>> math.isfinite(0.1)
True
>>> math.isfinite("a")
>>> math.isfinite(0.0001)
True

isinf:xが正の無限大または負の無限大の場合はTrueを返し、そうでない場合はFalseを返します.
#  x          ,   True,    False
isinf(x) -> bool
Return True if x is a positive or negative infinity, and False otherwise.
>>> math.isinf(234)
False
>>> math.isinf(0.1)
False

isnan:xが数値Trueでない場合、Falseを返します.
#  x    True,    False
isnan(x) -> bool
Return True if x is a NaN (not a number), and False otherwise.
>>> math.isnan(23)
False
>>> math.isnan(0.01)
False

ldexp:x*(2**i)の値を返します.
#  x*(2**i)  
ldexp(x, i)
Return x * (2**i).
>>> math.ldexp(5,5)
160.0
>>> math.ldexp(3,5)
96.0

log:xの自然対数を返し、デフォルトはeを基数とし、baseパラメータはタイミングを与え、xの対数を与えられたbaseに返し、計算式はlog(x)/log(base)である.
#  x     ,   e   ,base     , x        base,    :log(x)/log(base)
log(x[, base])
Return the logarithm of x to the given base.
If the base not specified, returns the natural logarithm (base e) of x.
>>> math.log(10)
2.302585092994046
>>> math.log(11)
2.3978952727983707
>>> math.log(20)
2.995732273553991

log 10:xの10をベースとした対数を返す
#  x  10     
log10(x)
Return the base 10 logarithm of x.
>>> math.log10(10)
1.0
>>> math.log10(100)
2.0
# 10 1.3      20
>>> math.log10(20)
1.3010299956639813

log 1 p:x+1の自然対数(基数e)を返す値
#  x+1     (   e)  
log1p(x)
Return the natural logarithm of 1+x (base e).
The result is computed in a way which is accurate for x near zero.
>>> math.log(10)
2.302585092994046
>>> math.log1p(10)
2.3978952727983707
>>> math.log(11)
2.3978952727983707

log 2:xを返すベース2対数
#  x  2  
log2(x)
Return the base 2 logarithm of x.
>>> math.log2(32)
5.0
>>> math.log2(20)
4.321928094887363
>>> math.log2(16)
4.0

modf:xの小数部と整数部からなるメタグループを返す
#   x               
modf(x)
Return the fractional and integer parts of x.  Both results carry the sign
of x and are floats.
>>> math.modf(math.pi)
(0.14159265358979312, 3.0)
>>> math.modf(12.34)
(0.33999999999999986, 12.0)

pi:数値定数、円周率
#    ,   
>>> print(math.pi)
3.141592653589793

pow:xのy次方、すなわちx**yを返す
#  x y  , x**y
pow(x, y)
Return x**y (x to the power of y).
>>> math.pow(3,4)
81.0
>>> 
>>> math.pow(2,7)
128.0

radians:角度xを円弧に変換する
#   x     
radians(x)
Convert angle x from degrees to radians.
>>> math.radians(45)
0.7853981633974483
>>> math.radians(60)
1.0471975511965976

sin:x(xは弧)の正弦波値を求める
# x(x   )    
sin(x)
Return the sine of x (measured in radians).
>>> math.sin(math.pi/4)
0.7071067811865475
>>> math.sin(math.pi/2)
1.0
>>> math.sin(math.pi/3)
0.8660254037844386

sqrt:xの平方根を求めます
# x    
sqrt(x)
Return the square root of x.
>>> math.sqrt(100)
10.0
>>> math.sqrt(16)
4.0
>>> math.sqrt(20)
4.47213595499958

tan:x(xは円弧)の正接値を返します
#  x(x   )    
tan(x)
Return the tangent of x (measured in radians).
>>> math.tan(math.pi/4)
0.9999999999999999
>>> math.tan(math.pi/6)
0.5773502691896257
>>> math.tan(math.pi/3)
1.7320508075688767

trunc:xの整数部分を返す
#  x     
trunc(x:Real) -> Integral
Truncates x to the nearest Integral toward 0. Uses the __trunc__ magic method.
>>> math.trunc(6.789)
6
>>> math.trunc(math.pi)
3
>>> math.trunc(2.567)
2

 
二、シーケンスタイプ:
 
リスト:list如:A=[1,2,3,45,6,'A']元祖:tuple如:A=(1,2,1,3,4,5,6)文字列str如:A='ゴシップ陣'
インデックス値:いずれも「0」から計算されます.
 :A(1、2、3、4、56)
A[2]
  :3
               ,      ‘0’   

シーケンスタイプのスライス【左閉右開、包前不包後】
 :
A=(11,22,88,999,33,44,55,66,77)
B=(11,22,88,999,33,44,55,66,77)
A[1:2]  #A【  :  :    】         ‘1’
B[1::3] #B[  :  :    ]  +1      
  :A:22;B:22,33

シーケンスタイプ変換:
元祖をリストに変換
 :
A=(1,2,3,4,5,6)
list(A)
  :[1,2,3,4,5,6]

 
リストを元祖に変換
 
 :
B = [1,2,3,'DD',5,6]
tuple(B)
  :(1,2,3,'DD',5,6)

 
文字列に変換
 :
C = (1,2,AA,'DD',5,6)
str(C)
  :"(1,2,AA,'DD',5,6)"

 
文字列を元祖またはリストに変換
 
 :

D ='7388Hhah    '
list(D)

  :['7', '3', '8', '8', 'H', 'h', 'a', 'h', ' ', ' ', ' ', ' ']

 
タイプ変換:
A='2'
B='3'
A+B    :'23'
int(A+B)   :23
int(A)+int(B)   :5

 
リストと元祖の違い:
 
変更可能なリスト
 :
E =[1,3,4,5,6,7,'DDD']
E[6]='9DR89'
  :[1,3,4,5,6,7,'9DR89']

元祖と文字列は内容を変更できません