程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 更多關於編程 >> Python中Random和Math模塊學習筆記

Python中Random和Math模塊學習筆記

編輯:更多關於編程

       這篇文章主要介紹了Python中Random和Math模塊學習筆記,本文講解了math模塊的數學常量、常用簡單函數、三角函數等,講解了random模塊的常用函數、隨機挑選和排序等內容,需要的朋友可以參考下

      由於最近經常使用到Python中random,math和time``datetime模塊, 所以決定花時間系統的學習一下

      1. math模塊

      math中的函數不可以用於太過復雜的數的運算, 如果需要復雜數的運行最好使用cmath模塊中同名函數, 如果想要更加高級的數學功能,可以考慮選擇標准庫之外的numpy和scipy模塊,它們不但支持數組和矩陣運算,還有豐富的數學和物理方程可供使用

      1.1. 數學常量

      math.pi 這個數學常量等於 3.141592...

      math.e 這個數學常量 e = 2.718281...,

      1.2. 常用簡單函數

      math.ceil(x) : 對x向上取整,返回最小整數值大於或者等於x

       代碼如下:

      # -*- coding:utf-8 -*-

      import math #僅在第一次聲明, 以下都將省略

      print math.ceil(math.pi) #math.pi是圓周率pi, 類似於C/C++中的宏

      //輸出4

      math.floor(x) : 對x向下取整, 返回整數值小於或者等於x

       代碼如下:

      >>> import math

      >>> math.floor(math.pi)

      3.0

      math.pow(x,y) : 指數運算,得到x的y次方

       代碼如下:

      >>> math.pow(2, 3)

      8.0

      math.log(x[, base]) : 對數運算,默認基底為e的對數運算。使用base參數時,改變對數的基底, 變為以base為底的對數運算

       代碼如下:

      >>> math.log(10)

      2.302585092994046

      >>> math.log(8, 2) #log(x)/log(base).

      3.0

      math.sqrt(x) 平方根計算

       代碼如下:

      >>> math.sqrt(4)

      2.0

      math.fabs(x) 取絕對值

      math.factorial(x) 求階乘, 即x!

      math.exp(x) 求e的x次方

      1.3. 三角函數

      以下函數都接收一個弧度(radian)為單位的x作為參數

       代碼如下:

      math.acos(x) #求arccos(x)

      math.asin(x) #求arcsin(x)

      math.atan(x) #求arctan(x)

      math.cos(x) #求cos(x)

      math.sin(x) #求sin(x)

      math.tan(x) #求tan(x)

      math.degrees(x) 角度制轉化為弧度制

      math.radians(x) 弧度制轉化為角度制

       代碼如下:

      >>> math.degrees(math.pi / 2)

      90.0

      1.5. 雙曲函數和特殊函數

      math.sinh(x), math.cosh(x), math.tanh(x), math.asinh(x), math.acosh(x), math.atanh(x)

      還有些函數基本沒用過

      2. random模塊

      random模塊的作用是產生隨機數, 這個模塊實現了偽隨機數產生器

      1.1. 常用函數

      random.seed([x]) 用戶初始化一個隨機數種子, 可選參數可以是任何hashtable對象,默認使用系統時間

      random.randint(a, b) 返回一個a到b之間的整數

      random.randrange([start], stop[, step]) 從指定范圍內,按指定基數遞增的集合中 獲取一個隨機數。如:random.randrange(10, 100, 2),結果相當於從[10, 12, 14, 16, … 96, 98]序列中獲取一個隨機數。random.randrange(10, 100, 2)在結果上與 random.choice(range(10, 100, 2) 等效。

      random.randrange(start, stop, step)等價於random.choice(range(start, stop, step))

       代碼如下:

      >>> random.randrange(10, 100, 2)

      90

      1.2. 隨機挑選和排序

      random.choice(sequence) : 從序列中獲取一個隨機元素. 參數sequence表示一個有序類型。這裡要說明 一下:sequence在python不是一種特定的類型,而是泛指一系列的類型。list, tuple, 字符串都屬於sequence

      代碼如下:

      >>> random.choice(range(10))

      1

      >>> random.choice((1, 2, 3, 4))

      3

      random.sample(sequence, k) # 從指定序列中隨機獲取指定長度k的片斷。sample函數不會修改原有序列

       代碼如下:

      >>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

      >>> new_lst = random.sample(lst, 6)

      >>> print new_lst

      [8, 9, 2, 1, 5, 4]

      >>> print lst

      [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

      random.shuffle(x[, random]),用於將一個列表中的元素打亂, 不會生成新的列表

      代碼如下:

      >>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

      >>> random.shuffle(lst)

      >>> print lst

      [10, 5, 2, 7, 3, 9, 4, 8, 6, 1]

      1.3. 隨機生成實數

      生成的實數符合均勻分布(uniform distribution)

      random.random() 隨機生成下一個實數,它在[0,1)范圍內。

      random.uniform(a,b) 隨機生成下一個實數,它在[a,b]范圍內。

       代碼如下:

      >>> random.random()

      0.019433835195078797

      >>> random.uniform(3, 8)

      6.830376841208885

      random.gauss(mu,sigma) 隨機生成符合高斯分布的隨機數,mu,sigma為高斯分布的兩個參數。

      random.expovariate(lambd) 隨機生成符合指數分布的隨機數,lambd為指數分布的參數。

    1. 上一頁:
    2. 下一頁:
    Copyright © 程式師世界 All Rights Reserved