Python基礎(01):數字型別

Ryan_Bai發表於2019-01-30

一、數字

Python中數字型別包括:

  • 整數

  • 浮點數

  • 複數

  • 固定精度的十進位制數

  • 有理分數

  • 集合

  • 布林型別

  • 無窮的整數精度

  • 各種數字內建函式和模組

二、內建數學工具

表示式運算子:

運算子 描述
yield 生成器函式傳送協議
lambda args:expression 生成匿名函式
x if y else z 三元表示式
x or y 邏輯或(存在短路演算法)
x and y 邏輯與(存在短路演算法)
not x 邏輯非
x in y , x not in y 成員關係
x is y ,x is not y 物件實體測試
x<y,x<=y,x>y,x>=y,x==y,x!=y 比較大小
x|y 位或,集合並集
x^y 位異或,集合對稱差
x&y 位與,集合交集
x<<y,x>>y 左移或者右移y位
x+y,x-y 加減法、合併刪除
x*y,x%y,x/y,x//y 乘,取餘數,除,地板除
-x,+x 一元減法
~x 按位求補(取反)
x**y 冪運算
x[i] 索引,函式呼叫
x[i:j:k] 分片
x(...) 呼叫函式
x.attr 呼叫屬性
() 元組,表示式,生成器
[] 列表,列表解析
{} 字典,集合,集合和字典解析

內建數學函式

  • math

    函式|常量 說明 例項
    e 自然常數e math.e
    2.718281828459045
    inf 預設值:inf
    nan 預設值:nan
    pi 圓周率π math.pi
    3.141592653589793
    tau 6.283185307179586
    acos(x) 返回x的反三角餘弦值 math.acos(math.sqrt(2)/2)
    0.7853981633974483
    acosh(x) 返回x的反雙曲餘弦函式
    asin(x) 返回x的反三角正弦值 math.asin(0.5)
    0.5235987755982989
    asinh(x) 返回x的反雙曲正弦函式
    atan(x) 返回x的反三角正切值 math.atan(1.7320508075688767)
    1.0471975511965976
    atan2(y, x) 返回x/y的反三角正切值 math.atan2(2,1)
    1.1071487177940904
    atanh(x) 返回x的反雙曲正切函式
    ceil(x) 這個方法對i向上取整 math.ceil(5.2)
    6.0
    copysign(x, y) 若y<0,返回-1乘以x的絕對值;
    否則,返回x的絕對值
    math.copysign(5.2, -1)
    -5.2
    cos(x) 返回x(弧度)的三角餘弦值 math.cos(math.radians(45))
    0.7071067811865476
    cosh(x) 返回x的雙曲餘弦函式
    degrees(x) 弧度轉度 math.degrees(math.pi)
    180.0
    erf(x) 返回x的誤差函式
    erfc(x) 返回x的餘誤差函式
    exp(x) 返回e的x次方 math.exp(2)
    7.38905609893065
    expm1(x) 返回e的x次方減1 math.expm1(2)
    6.38905609893065
    fabs(x) 返回x的絕對值 math.fabs(-5)
    5.0
    factorial(x) 返回x的階乘 math.factorial(5)
    120
    floor(x) 向下取整。 math.floor(5.8)
    5.0
    fmod(x, y) 返回x%y(取餘) math.fmod(5,2)
    1.0
    frexp(x) 返回m和i,滿足m乘以2的i次方 math.frexp(3)
    (0.75, 2)
    fsum(iterable) 返回無損精度的和
    • 0.1+0.2+0.3
      0.6000000000000001

    • math.fsum([0.1, 0.2, 0.3])
      0.6

    gamma(x) 返回x的伽瑪函式
    hypot(x, y) 返回以x和y為直角邊的斜邊長 math.hypot(3,4)
    5.0
    isinf(x) 若x為無窮大,返回True;否則,返回False
    • math.isinf(1.0e+308)
      False

    • math.isinf(1.0e+309)
      True

    isnan(x) 若x不是數字,返回True;否則,返回False math.isnan(1.2e3)
    False
    ldexp(x, i) 返回x乘以2的i次方 math.ldexp(0.75, 2)
    3.0
    lgamma(x) 返回x的絕對值的自然對數的伽瑪函式
    log(x, base=None) 返回x的以base為底的對數,base預設為e
    • math.log(math.e)
      1.0

    • math.log(2, 10)
      0.30102999566398114

    log10(x) 返回x的以10為底的對數 math.log10(2)
    0.30102999566398114
    log1p(x) 返回1+x的自然對數(以e為底) math.log1p(math.e-1)
    1.0
    log2(x)
    modf(x) 返回x的小數和整數 math.modf(5.2)
    (0.20000000000000018, 5.0)
    pow(x, y) 返回x的y次方 math.pow(5,3)
    125.0
    radians(x) 度轉弧度 math.radians(45)
    0.7853981633974483
    sin(x) 返回x(弧度)的三角正弦值 math.sin(math.radians(30))
    0.49999999999999994
    sinh(x) 返回x的雙曲正弦函式
    sqrt(x) 返回x的平方根 math.sqrt(3)
    1.7320508075688772
    tan(x) 返回x(弧度)的三角正切值 math.tan(math.radians(60))
    1.7320508075688767
    tanh(x) 返回x的雙曲正切函式
    trunc(x) 返回x的整數部分 math.trunc(5.8)
    5
  • random

    函式|常量 說明 例項
    random 用於生成一個0到1的隨機符點數: 0 <= n < 1.0
    uniform random.uniform的函式原型為:random.uniform(a, b),用於生成一個指定範圍內的隨機符點數,兩個引數其中一個是上限,一個是下限。如果a > b,則生成的隨機數n: a <= n <= b。如果 a <b, 則 b <= n <= a。 print random.uniform(10, 20)
    print random.uniform(20, 10)
    #---- 結果(不同機器上的結果不一樣)
    #18.7356606526
    #12.5798298022
    randint random.randint()的函式原型為:random.randint(a, b),用於生成一個指定範圍內的整數。其中引數a是下限,引數b是上限,生成的隨機數n: a <= n <= b print random.randint(12, 20)  #生成的隨機數n: 12 <= n <= 20
    print random.randint(20, 20)  #結果永遠是20
    #print random.randint(20, 10)  #該語句是錯誤的。下限必須小於上限。 
    randrange random.randrange的函式原型為:random.randrange([start], stop[, step]),從指定範圍內,按指定基數遞增的集合中 獲取一個隨機數。 random.randrange(10, 100, 2)
    結果相當於從[10, 12, 14, 16, ... 96, 98]序列中獲取一個隨機數。
    在結果上與 random.choice(range(10, 100, 2) 等效。
    choice random.choice從序列中獲取一個隨機元素。其函式原型為:random.choice(sequence)。引數sequence表示一個有序型別。這裡要說明 一下:sequence在python不是一種特定的型別,而是泛指一系列的型別。list, tuple, 字串都屬於sequence。 print random.choice("學習Python")
    print random.choice(["JGood", "is", "a", "handsome", "boy"])
    print random.choice(("Tuple", "List", "Dict"))
    shuffle random.shuffle的函式原型為:random.shuffle(x[, random]),用於將一個列表中的元素打亂。 p = ["Python", "is", "powerful", "simple", "and so on..."]
    random.shuffle(p)
    print p
    #---- 結果(不同機器上的結果可能不一樣。)
    #['powerful', 'simple', 'is', 'Python', 'and so on...'] 
    sample random.sample的函式原型為:random.sample(sequence, k),從指定序列中隨機獲取指定長度的片斷。sample函式不會修改原有序列。 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    slice = random.sample(list, 5)  #從list中隨機獲取5個元素,作為一個片斷返回
    print slice
    print list #原有序列並沒有改變。

三、分數

from fractions import Fraction

x = Fraction(1, 3)

1/3

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31490526/viewspace-2565231/,如需轉載,請註明出處,否則將追究法律責任。

相關文章