Python常用库函数

文章目录

  • eval函数
    • eval函数实现list、dict、tuple与str之间的转化
  • pow(x,y)函数
  • round(x,d)函数
  • 字符串操作函数
  • 字符串处理方法
  • time库函数
    • 时间获取
    • 时间格式化
    • 程序计时
  • random库
    • 基本随机数函数
    • 扩展随机数函数
  • lambda函数

eval函数

eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表达式的结果。

eval的语法格式如下:

eval(expression[, globals[, locals]])
  • expression : 字符串
  • globals : 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
  • locals : 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。

传递globals参数值为{“age”:1822}

print(eval("{'name':'linux','age':age}",{"age":1822}))
//{'name': 'linux', 'age': 1822}

再加上locals变量

age=18
print(eval("{'name':'linux','age':age}",{"age":1822},locals()))
// {'name': 'linux', 'age': 18}

可以看到当locals参数为空,globals参数不为空时,查找globals参数中是否存在变量,并计算。

当两个参数都不为空时,先查找locals参数,再查找globals参数,locals参数中同名变量会覆盖globals中的变量。

eval函数实现list、dict、tuple与str之间的转化

  1. 字符串转换成列表
a = "[[1,2], [3,4], [5,6], [7,8], [9,0]]"
print(type(a))  // 
b = eval(a) 
print(type(b)) //  
print(b)      //  [[1, 2], [3, 4], [5, 6], [7, 8], [9, 0]]
  1. 字符串转换成字典
a="{1:'a',2:'b'}"
print(type(a)) //
b=eval(a)
print(type(b))// 
print(b)      // {1: 'a', 2: 'b'}
  1. 字符串转换成元组
a = "([1,2], [3,4], [5,6], [7,8], (9,0))"
print(type(a))  // 
b=eval(a)
print(type(b))  //
print(b)       //([1, 2], [3, 4], [5, 6], [7, 8], (9, 0))

pow(x,y)函数

pow(x,y):计算 x y x^y xy,想算多大算多大

round(x,d)函数

round(x,d):对x四舍五入,d是小数截取位数
作用:浮点数间运算及比较用round()函数辅助,因为浮点数间运算存在不确定尾数

字符串操作函数

方法及使用 描述
chr(u):u为Unicode编码,返回其对应的字符 print(chr(255))结果是ÿ
ord(x):x为字符,返回其对应的Unicode编码 print(ord(‘c’))结果是99
len(x):返回x(字符、列表、元组等)长度或项目个数 print(len((1,2,3,4)))结果为4
str(x):返回一个对象的string格式 dict = {‘runoob’: ‘runoob.com’, ‘google’: ‘google.com’} print(str(dict))结果为{‘runoob’: ‘runoob.com’, ‘google’: ‘google.com’}
hex(x):x为10进制整数,hex() 函数用于将10进制整数转换成16进制,以字符串形式表示。 hex(255)结果为0xff
oct(x):将一个整数转换成8进制字符串 oct(255)结果为0o377

字符串处理方法

方法及使用 描述
str.lower()或str.upper() 返回字符串的副本,全部字符小写/大写 “AbCdEfGh”.lower()结果为“abcdefgh”
str.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成 “A,B,C”.split(",")结果为[‘A’,‘B’,‘C’]
str.count(sub) 返回子串sub在str中出现的次数 “an apple a day”.count(a)结果为4
str.replace(old,new) 返回字符串str副本,所有old子串被替换为new “python”.replace(“n”,“n123.io”)结果为“pytho123.io”
str.center(width[,fillchar]) 字符串str根据宽度width居中,fillchar可选 “python”.center(20,"=")结果为‘=======python=======’
str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符 “= python= ”.strip(" =np")结果为"ytho"
str.join(iter) 在iter变量除最后一个元素外每个元素后增加一个str “,”.join(“123456”)结果为“1,2,3,4,5” #主要用于字符串分隔等

time库函数

时间获取

函数 描述
time() 获取当前时间戳,即计算机内部时间值,浮点数 。time.time()结果为1576661636.3347044
ctime() 获取当前时间并以易读方式表示,返回字符串 。time.ctime()结果为 Wed Dec 18 17:37:27 2019
gmtime() 获取当前时间,表示为计算机可处理的时间格式 。 time.gmtime()结果为time.struct_time(tm_year=2019, tm_mon=12, tm_mday=18, tm_hour=9, tm_min=39, tm_sec=23, tm_wday=2, tm_yday=352, tm_isdst=0)

时间格式化

函数 描述
strftime(tpl,ts) tpl是格式化模板字符串,用来定义输出效果,ts是计算机内部时间类型变量 t=time.gmtime() print(time.strftime("%Y-%m-%d %H:%M:%S",t))结果是2019-12-18 09:44:15
strptime(str,tpl) str是字符串形式的时间值,tpl是格式化模板字符串,用来定义输入效果。 timestr=‘2019-12-18 09:45:20’ print(time.strptime(timestr,"%Y-%m-%d %H:%M:%S"))结果为 time.struct_time(tm_year=2019, tm_mon=12, tm_mday=18, tm_hour=9, tm_min=45, tm_sec=20, tm_wday=2, tm_yday=352, tm_isdst=-1)
格式化字符串 日期/时间说明 值范围和实例
%Y 年份 0000~9999,例如:1900
%m 月份 01-12,例如:10
%B 月份名称 January~December,例如:April
%b 月份名称缩写 Jan~Dec,例如:Apr
%d 日期 01~31,例如:25
%A 星期 Monday~Sunday,例如:Wednesday
%a 星期缩写 Mon~Sun,例如:Wed
%H 小时(24h制) 00~23,例如:12
%I 小时(12h制) 01~12,例如:7
%p 上/下午 AM,PM 例如:PM
%M 分钟 00~59,例如:26
%S 00~59,例如:26

程序计时

函数 描述
perf_counter() 返回一个CPU级别的精确时间计数值,单位为秒。由于这个计数值起点不确定,连续调用差值才有意义start=time.perf_counter() print(start) end=time.perf_counter() print(end) print(end-start) 结果为0.0224495 0.0225381 8.859999999999771e-05
sleep(s) s拟休眠的时间,单位是秒,可以是浮点数。def wait(): time.sleep(3.3) wait()#程序将等待3.3秒后退出

random库

  • 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
  • random库主要用于生成随机数
    -使用random库 :import random

基本随机数函数

  • 随机数种子确定了随机数序列的产生。
  • 如果不给种子,默认的种子是当前第一次调用random所对应的系统时间
  • 只要种子相同,每次产生的随机数就是相同的
  • 如果程序需要再现随机过程,就设置随机种子
  • 如果只是用随机数,不关心程序复现结果,可以不设定种子
函数 描述
seed(a=None) 初始化给定的随机数种子,默认为当前系统时间 random.seed(1) #产生种子1对应的随机序列
random() 生成一个[0.0,1.0)之间的随机小数 random.random()

扩展随机数函数

函数 描述
randint(a,b) 生成一个[a,b]之间的整数 random.randint(10,20) # 20
randrange(m,n[,k]) 生成一个[m,n)之间以k为步长的随机整数 random.randrange(10,100,10) #70
getrandbits(k) 生成一个k比特长的随机整数 random.getrandbits(16) #15505
uniform(a,b) 生成一个[a,b]之间的随机小数 random.uniform(10,100) # 47.21093237790465
choice(seq) 从序列seq中随机选择一个元素 random.choice([1,2,3,4,5,6]) # 3
shuffle(seq) 将序列seq中元素随机排列,返回打乱后的序列 s=[1,2,3,4,5];random.shuffle(s);print(s) # [5, 4, 2, 3, 1]

lambda函数

lambda函数返回函数名作为结果

  • lambda函数是一种匿名函数,即没有名字的函数
  • 使用lambda保留字定义,函数名是返回结果
  • lambda函数用于定义简单的、能够在一行内表示的函数

定义:<函数名>=lambda<参数>:<表达式>

举例:

f=lambda x,y:x+y
print(f(10,15)) #25

f=lambda :"lambda函数"  #无参数的函数
print(f())

谨慎使用lambda函数

  • lambda函数主要用作一些特定函数或方法的参数
  • lambda函数有一些固定使用方式
  • 一般情况下,建议使用def定义的普通函数

你可能感兴趣的:(Python)