Python基礎:常用系統模組
Python 的標準庫包含許多模組,每個模組定義了很多有用的函式,這些函式稱為系統函式
模組的匯入
方法一
格式:import 模組名
該語句將模組中定義的函式程式碼複製到自己的程式中,然後就可以訪問改模組中的任何函式,方式是 模組名.函式名
例:
import math
print(math.sqrt(2)) # 輸出1.4142135623730951
方法二
from 模組名 import 函式名
從模組中匯入指定函式,呼叫模組中函式時,不需要加上模組名。匯入多個模組時用逗號分隔,匯入全部模組時函式名用 * 代替
from math import sqrt,pow
print(sqrt(2)) # 輸出1.4142135623730951
print(pow(2,3)) # 輸出8.0
math 模組
功能:處理數學相關運算,其中定義的常用數學常量和函式如下
數學常量
符號 | 意義 |
---|---|
e | 返回常數e(自然對數的底) |
pi | 返回圓周率π |
import math
print(math.e)
print(math.pi)
# 輸出
# 2.718281828459045
# 3.141592653589793
絕對值和平方根函式
函式名 | 功能 |
---|---|
fabs(x) | 返回x的絕對值(浮點型) |
sqrt(x) | 返回x的平方根(x>0) 返回值浮點型 |
import math
print(math.fabs(-6)) # 輸出 6.0
print(math.sqrt(9)) # 輸出 3.0
冪函式和對數函式
函式名 | 功能 |
---|---|
pow(x,y) | 返回x的y次冪(浮點型) |
exp(x) | 返回e(自然對數的底)的x次冪 |
log(x[,base]) | 返回x的自然對數,base為可選引數修改對數的底,預設為e |
log10(x) | 返回x的常用對數(浮點型) |
import math
print(math.pow(2,3))
print(math.exp(2))
print(math.log(math.e))
print(math.log(10,10))
print(math.log10(10))
# 輸出:
# 8.0
# 7.38905609893065
# 1.0
# 1.0
# 1.0
取整和求餘函式
函式名 | 功能 |
---|---|
ceil(x) | 對x向上取整 |
floor(x) | 對x向下取整 |
fmod(x,y) | 返回x/y的餘數(浮點型) |
import math
print(math.ceil(4.4)) #輸出5
print(math.floor(4.4)) #輸出4
print(math.fmod(8,4)) #輸出0.0
弧度角度轉換函式
函式名 | 功能 |
---|---|
degress(x) | 將弧度轉換為角度 |
import math
print(math.degrees(math.pi)) 輸出180.0
三角函式和反三角函式
函式名 | 功能 |
---|---|
sin(x) | 返回x的正弦值(x為弧度) |
cos(x) | 返回x的餘弦值(x為弧度) |
tan(x) | 返回x的正切值(x為弧度) |
asin(x) | 返回x的反正弦值(返回值為弧度) |
acos(x) | 返回x的反餘弦值(返回值為弧度) |
atan(x) | 返回x的反正切值(返回值為弧度) |
import math
print(math.sin(math.pi / 2)) # 輸出1.0
print(math.cos(math.pi / 2)) # 輸出6.123233995736766e-17 相當於 0
print(math.tan(math.pi / 4)) # 輸出0.9999999999999999 相當於 1
print(math.asin(1))# 輸出1.5707963267948966
print(math.acos(-1))# 輸出3.141592653589793
print(math.atan(1))# 輸出0.7853981633974483
cmath模組
cmath模組函式與math模組函式基本一致。只是math模組支援對實數運算進行支援,cmath模組對複數運算進行支援
import cmath
print(cmath.pi)
print(cmath.sqrt(-1))
print(cmath.sin(1))
print(cmath.log10(100))
print(cmath.exp(100+10j))
# 輸出
# 3.141592653589793
# 1j
# (0.8414709848078965+0j)
# (2+0j)
# (-2.255522560520288e+43-1.4623924736915717e+43j)
複數特有函式
phase(x)函式
- 功能:返回複數x的幅角
- 示例
from cmath import phase
print(phase(1+1j)) #輸出0.7853981633974483
polar()函式和rect()函式
polar()函式
- 功能:將複數的笛卡爾座標轉換為極座標表示,輸出一個二元組(r,p),r複數的模,即abs(x),p為幅角,即p=phase(x),
rect(r,p)函式
- 將複數的極座標表示轉換為笛卡爾座標表示,
- 輸出r * cos( p )+r *sin( p )*1 j
示例:
from cmath import polar,rect
n = 3 + 4j
r,p = polar(n)
print(r,p)
print(rect(r,p))
# 輸出5
# .0 0.9272952180016122
# (3.0000000000000004+3.9999999999999996j)
random模組
seed(x) 函式
- 設定隨機數生成器種子,通常在呼叫其他隨機模組之前呼叫此函式
- 相同的種子,每次呼叫隨機函式生成的隨機數是相同的。預設將系統時間作為種子值
隨機挑選和排序choice(seq)、sample(seq,k)、shuffle(seq)
choice(seq)函式:
- 功能:從序列(列表,字串,元組)中隨機挑選一個元素
sample(seq,k)函式:
- 功能:從序列中隨機挑選k個元素
shuffle(seq)函式
功能: 將序列的所有元素隨機排序
from random import *
n = list(range(0,10)) #range()函式 生成一個可迭代物件,list()函式生成一個列表
print(choice(n))
print(sample(n,5))
print(n)
shuffle(n) #該函式反回值 None
print(n)
# 輸出:
# 9
# [2, 7, 5, 8, 6]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# [0, 9, 4, 5, 8, 2, 3, 7, 6, 1]
生成隨機數
生成的隨機數符合均勻分佈,意味著某個範圍內的數字出現的概率相等
random()函式
- 功能:隨機生成一個
[0,1)
範圍的實數
uniform(a,b)函式
- 功能:隨機生成一個
[a,b]
範圍的實數
randrange(a,b,c)函式
- 功能:隨機生成一個
[a,b)
範圍內以c遞增的整數
,省略c時,預設為1,省略a時初值為0。
randint(a,b) 函式
- 功能:隨機生成一個[a,b]範圍內的整數
import random
i = 1
# random.seed(1) 隨機數種子相同,產生的隨機是每次都一樣
while i <= 2:
n = random.random()
print(n)
i += 1
# 其他就不演示了
i = 1
while i <= 10:
n = int(random.random()*10) + 2 # 產生一個[2,12)的整數,所以其他可以隨機函式感覺作用不打
print(n)
i += 1
time模組
time()函式
- 功能:返回當前時間的時間戳,時間戳是從Epoch 1970年1月1日00:00:00 UTC開始經過的秒數
localtime([secs])
- 功能:接收Epoch開始的秒數,並返回一個時間元組。時間元組包含9個元素
from time import *
print(localtime())
# 輸出:time.struct_time(tm_year=2020, tm_mon=9, tm_mday=20, tm_hour=23, tm_min=15, tm_sec=49, tm_wday=6, tm_yday=264, tm_isdst=0)
asctime([tupletime])
- 功能:接收一個時間元組,返回一個日期字串。時間元組省略時,返回當前系統日期和時間
import time
print(time.asctime())
print(time.asctime(time.localtime(time.time())))
# 輸出:
# Fri Oct 9 22:27:52 2020
# Fri Oct 9 22:27:52 2020
ctime([secs])
- 功能:類似於asctime(localtime([secs])),不帶引數時與asctime()功能相同
from time import ctime
print(ctime())
# 輸出:Fri Oct 9 22:33:16 2020
strftime(日期格式)
- 功能: 按指定的日期格式返回當前日期
import time
print(time.strftime('%Y-%m-%d %H:%M:%S'))
# 輸出2020-10-09 22:38:00
時間日期格式化符號
符號 | 意義 |
---|---|
%y(小寫) | 表示兩位數的年份(00~~99) |
%Y(大寫) | 表示四位數的年份(000~~9999) |
%m(小寫) | 表示月份(01~~12) |
%d(小寫) | 表示月份中的某一天(0~~31) |
%H(大寫) | 表示24小時制(0~~23) |
%I(大寫) | 表示12小時制(01~~12) |
%M(大寫) | 表示分鐘(00~~59) |
%S(大寫) | 表示秒(00~~59) |
calendar:日曆
預設情況下,日曆把星期一作為一週的第一天,星期日作為最後一天。
setfirstweekday(weekday)
- 功能:設定每個日期的開始工作日程式碼,星期程式碼是0~6,星期一代表0
firstweekday()
- 功能:返回當前設定的每個星期開始工作日。預設為0,代表星期一
isleap(year)
- 功能:如果指定的年分是閏年返回True,否則返回False
leapdays(a,b)
- 功能:返回在[a,b)範圍內的閏年數
calendar(year)
- 功能:返回指定年份的日曆。
import calendar
cal = calendar.calendar(2020)
print(cal)
# 輸出: 2020
#
# January February March
# Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
# 1 2 3 4 5 1 2 1
# 6 7 8 9 10 11 12 3 4 5 6 7 8 9 2 3 4 5 6 7 8
# 13 14 15 16 17 18 19 10 11 12 13 14 15 16 9 10 11 12 13 14 15
# 20 21 22 23 24 25 26 17 18 19 20 21 22 23 16 17 18 19 20 21 22
# 27 28 29 30 31 24 25 26 27 28 29 23 24 25 26 27 28 29
# 30 31
#
# April May June
# Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
# 1 2 3 4 5 1 2 3 1 2 3 4 5 6 7
# 6 7 8 9 10 11 12 4 5 6 7 8 9 10 8 9 10 11 12 13 14
# 13 14 15 16 17 18 19 11 12 13 14 15 16 17 15 16 17 18 19 20 21
# 20 21 22 23 24 25 26 18 19 20 21 22 23 24 22 23 24 25 26 27 28
# 27 28 29 30 25 26 27 28 29 30 31 29 30
#
# July August September
# Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
# 1 2 3 4 5 1 2 1 2 3 4 5 6
# 6 7 8 9 10 11 12 3 4 5 6 7 8 9 7 8 9 10 11 12 13
# 13 14 15 16 17 18 19 10 11 12 13 14 15 16 14 15 16 17 18 19 20
# 20 21 22 23 24 25 26 17 18 19 20 21 22 23 21 22 23 24 25 26 27
# 27 28 29 30 31 24 25 26 27 28 29 30 28 29 30
# 31
#
# October November December
# Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
# 1 2 3 4 1 1 2 3 4 5 6
# 5 6 7 8 9 10 11 2 3 4 5 6 7 8 7 8 9 10 11 12 13
# 12 13 14 15 16 17 18 9 10 11 12 13 14 15 14 15 16 17 18 19 20
# 19 20 21 22 23 24 25 16 17 18 19 20 21 22 21 22 23 24 25 26 27
# 26 27 28 29 30 31 23 24 25 26 27 28 29 28 29 30 31
# 30
month(year,month)
- 功能:返回指定年份的日曆
monthcalendar(year,month)
- 功能:返回一個整數列表,每個子列表表示一個星期(從星期一到星期日)
monthrang(year,month)
- 功能:返回兩個整數,第一個代表指定年和月的第一天是星期幾。第二個代表所指月份的天數。
from calendar import *
cal = month(2020,1)
print(cal)
cal = monthcalendar(2020,1)
print(cal)
print(monthrange(2020,1))
# 輸出: January 2020
# Mo Tu We Th Fr Sa Su
# 1 2 3 4 5
# 6 7 8 9 10 11 12
# 13 14 15 16 17 18 19
# 20 21 22 23 24 25 26
# 27 28 29 30 31
#
# [[0, 0, 1, 2, 3, 4, 5], [6, 7, 8, 9, 10, 11, 12], [13, 14, 15, 16, 17, 18, 19], [20, 21, 22, 23, 24, 25, 26], [27, 28, 29, 30, 31, 0, 0]]
# (2, 31)
相關文章
- python 基礎筆記——常用模組Python筆記
- Python基礎(九) 常用模組彙總Python
- Python 常用系統模組整理Python
- Python中常用模組有哪些?Python基礎教程Python
- Python基礎——模組Python
- 豬行天下之Python基礎——10.2 Python常用模組(下)Python
- 豬行天下之Python基礎——10.1 Python常用模組(上)Python
- Python基礎之模組Python
- python常用標準庫(os系統模組、shutil檔案操作模組)Python
- Python基礎12(模組與datetime模組)Python
- python基礎學習16—-模組Python
- python 基礎之模組與包Python
- 【python基礎】os模組的使用Python
- 掌握Java9模組化系統-基礎部分Java
- Python 常用模組Python
- Python pip(管理模組工具)基礎用法Python
- Python基礎入門(8)- Python模組和包Python
- 常用Python模組3Python
- linux系統基礎的優化以及常用命令Linux優化
- Python基礎知識之常用框架Flask!Python框架Flask
- python基礎--自定義模組、import、from......import......PythonImport
- Python基礎(八) 模組的引入與定義Python
- Python學生資訊管理系統-簡易版(Python基礎)Python
- python基礎之-sys模組、os模組基本介紹(未完成)Python
- Python常用模組之sysPython
- 分散式系統基礎分散式
- 檔案系統基礎
- linux系統基礎Linux
- Python常用GUI框架有哪些?Python基礎入門PythonGUI框架
- 【python系統學習16】編碼基礎知識Python
- 前端模組化基礎前端
- ansible基礎-模組
- python基礎 之 正規表示式和re模組Python
- Python基礎手冊28——模組的高階概念Python
- python中系統資訊模組--psutilPython
- 豬行天下之Python基礎——2.1 Python註釋與模組Python
- ASM常用基礎管理命令[ASM基礎]ASM
- Python字元編碼的常用種類!Python基礎教程Python字元