eval是Python的一个内置函数,这个函数的作用是,返回传入字符串的表达式的结果。想象一下变量赋值时,将等号右边的表达式写成字符串的格式,将这个字符串作为eval的参数,eval的返回值就是这个表达式的结果。
eval的语法格式如下:
eval(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中的变量。
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]]
a="{1:'a',2:'b'}"
print(type(a)) //
b=eval(a)
print(type(b))//
print(b) // {1: 'a', 2: 'b'}
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):计算 x y x^y xy,想算多大算多大
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()结果为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秒后退出 |
函数 | 描述 |
---|---|
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<参数>:<表达式>
举例:
f=lambda x,y:x+y
print(f(10,15)) #25
f=lambda :"lambda函数" #无参数的函数
print(f())
谨慎使用lambda函数
def
定义的普通函数