目录
1. eval 函数
格式:eval(表达式,globals参数,locals参数)
作用:将字符串当成有效的表达式来求值并且返回结果
- 表达式:该位置放置字符串表达式
- globals参数:该部分一定是字典,否则会出错,表达式中的参数值会被限定在globals参数中
- locals参数:该参数控制局部的命名空间,必须是字典,当glogals参数和locals参数冲突时,优先选择locals参数
注意:globals参数和locals参数默认是空的
示例:
# 表达式示例
a = 10
print(eval("a + 1")) # 输出11
# globals参数使用
g = {'a': 1}
# 这里globals参数与表达式中的参数同名,会选择字典中的参数值作为a的值
print(eval("a + 1", g)) # 输出2
# locals参数使用
b = 20
c = 30
f = {"a": 1, "b": 3}
t = {"b": 2, "c": 3}
# b参数在globals参数和locals参数中都出现了,选择了locals参数中的值作为b的值
print(eval("a + b + c", f, t))
2. chr函数
格式:chr(数值表达式)
作用:返回当前整数的ASCII字符,数值范围在0-1114111
示例:
# chr() 使用
a = chr(97) # 把97对应的字符返回
print(a) # 输出a
3. ord函数
格式:ord("字符串")
作用:把对应的字符转换为对应的十进制整数,只能传一个字符
示例:
# ord() 用法
a = ord("a") # 把 a 对应的十进制整数返回
print(a) # 输出97
4. format函数
格式:字符串.format(参数,...)
作用:通过字符串中的 {} 来识别替换字符串中的字符
- 通过 {} 默认替换:
# {} 数量决定参数数量,{} 数量不可以多于参数数量
str1 = '我叫{}'
up = str1.format('李白', '韩信')
print(up) # 输出 我叫李白
- 通过索引拿到参数:
# 替换字段可以重复,数字形式的简单字段名相当于把字段当成一个序列形式,通过索引的形式进行一一取值 print('我喜欢{1},我不喜欢{2},我是{0}'.format('李白', '酒', '美女'))
- 使用关键字拿到参数:
# 可以用关键字传递 print('我喜欢{t},我不喜欢{hobby},我是{name}'.format(name='李白', hobby='酒', t='美女'))
- 关键字和索引混合使用:
# 关键字参数必须位于位置参数之后 # 混合使用时,可以省略数字 # 省略字段名{}不能和数字形式的字段名同时使用 print('我是{0},我爱{1},我想成为{t}'.format('陈平安', '喝酒', t = '剑圣')) print('我是{},我爱{},我想成为{t}'.format('陈平安', '喝酒', t = '剑圣')) # 可以省略数字
- 使用列表和字典传参:
# 列表的使用 list1 = ['英雄', '正义的人', '保护世界'] print('我是一名{},我要成为{},我想{}'.format(*list1)) print('我是一名{2},我要成为{0},我想{1}'.format(*list1)) # 可以加上参数 # 使用字典 dict1 = {'name': '李白', 'age': 20, 'hobby': '唱歌'} # 一个 * 拿到的是key值,两个 * 拿到的才是 values print('我叫{name}, 今年{age}, 我喜欢{hobby}'.format(**dict1)) # 需要使用两个 *
- 列表和字典混合使用时也可以使用索引和关键字:
# 混合使用 关键字和数字可以随意使用 print('我是一名{1},我要成为{name},我想{2}, 我叫{name}, 今年{age}, 我喜欢{hobby}'.format(*list1, **dict1))
- 对齐字符串
1. ^ :居中对齐 ,后面接宽度
2. <:左对齐,后面接宽度
3. >:右对齐,后面接宽度
print("{:>5}".format(1)) # 向右对齐
print("{:^5}".format(1)) # 居中对齐
5. join函数
格式:字符串.join(字符串)
作用:将字符序列,按指定的字符串进行连接
- 对列表进行操作(即连接各个字符串):
seq1 = ['hello', 'good', 'boy', 'doiido'] print(' '.join(seq1)) # 以空格分割,组成一个新的长字符串 print(':'.join(seq1)) # 输出 hello:good:boy:doiido
- 对字符串进行操作(即分割字符串):
# 对字符串进行操作 seq2 = 'hello word' l = ':'.join(seq2) # 把字符串每个字符按指定字符分割 print(l) # 输出 h:e:l:l:o: :w:o:r:d
- 对元组进行操作(即合并元组中的字符串):
# 对元组进行操作 seq3 = ('hello', 'good', 'boy', 'doiido') print(':'.join(seq3)) # 输出 hello:good:boy:doiido
- 合并目录:
# 合并目录 import os li = os.path.join('/hello/', 'goodboy/') print(li) # 输出 /hello/goodboy/
6. 进制转换
- 转换成二进制函数:bin(数字)
- 转换成八进制函数:oct(数字)
- 转换成十六进制函数:hex(数字)
注意:各进制数转换出来返回的结果是字符串
示例:
a = 8
# 十进制转二进制
print(a,'二进制数:', bin(a))
# 十进制转八进制
print(a, '八进制数:', oct(a))
# 十进制转十六进制
print(a, '十六进制:', hex(a))
b = 0o300
# 八进制转换为二进制
print(b, '二进制数:', bin(b))
# 二进制转换为十进制
print(int('1001', 2)) # 这里需要指定
print(0b1001) # 这里需要指定为二进制
# 指定二进制的位数输出
print(format(int(33), '08b')) # 输出八位二进制数 00100001
print(format(int(13), '04b')) # 输出四位二进制数 1101
# 直接转换成十进制
print(0o300) # 八进制转十进制
print(0x200) # 十六进制转十进制
7. strip函数
格式:字符串.strip(字符)
作用:移除开头结尾指定的字符
示例:
# strip 用于移除头尾指定的字符
str = '//haklg/fig/gj,jaig\i/g|ioar '
print(str.strip('/ ')) # 输出 haklg/fig/gj,jaig\i/g|ioar
8. split函数
格式:字符串.split(字符,参数)
作用:按指定字符进行分割,返回的是字典,参数控制分割的次数
示例:
str = '//haklg/fig/gj,jaig\i/g|ioar '
# split 通过指定分隔符对字符串进行切片,如果参数num有指定值,则仅分割num个子字符串
print(str.split('/')) # 输出 ['', '', 'haklg', 'fig', 'gj,jaig\\i', 'g|ioar ']
print(str.split('/', 3)) # 输出 ['', '', 'haklg', 'fig/gj,jaig\\i/g|ioar ']