一、字符串:string
定义:
1、单引:''
2、双引:"" 可以包含单引
多行字符串,所见即所得模式,用三个引号。
3、三个单引:''' '''
4、三个双引:""" """ 可以包含单引号
str="""我是所见即所得模式 我需要顶格写 特殊字符不用转义:~!@#$%^&*()''"/,. table: ,空格: . """ print(str)
5、转义符\:
单引下,使用特殊字符要使用转义符,常用的转义
| \' 单引号 | \" 双引号 |
| \n 换行 | \r 回车 |
| \v 纵向制表符 | \t 横向制表符 |
| %% 输出单个%, r'字符' 取消转义 |
运算和读取:
1、字符串读取
str[开始位置:结束位置:步进] 三个都是可选的
[:] [::] 显示所有内容
[n:m] 显示从n开始,数m-n个字符
2、字符串运算
| + 连接两个字符 | *n 重复n次 |
| a in b 字符串b 包含 a | |
| a not in b 字符创b 不包含 a |
3、格式化读取字符串变量
'%s',%(str)
'%r' 忽略后面参数类型。
print ('%num1.num2s'%('counter'))
# num1指定字符占用的字节数,右对齐
# num2指定显示的字符位数。
# s指定参数类型是字符串。
例子:
print ('%.3s'%('counter')) # 3,显示的字符个数
print ('%10.3s'%('counter')) # 10,字符占用的位数
print ('%*.*s'%(6,5,'counter')) # *,在参数中指定数值
print ('%*.5s'%(4,'counter')) # 数字和*混合使用。
# 结果显示:
counter
cou
count
count%d,数字格式化符号
%f ,浮点数格式化符号,可以指定整数位和小数位,用法和string一样
%x,输出16进制整数
%o,输出8进制整数
常用字符串函数
| capitalize() | center()\ljust()\rjust() |
| count(str,开始位置,结束位置) | find(str,开始位置,结束位置) |
| rfind(str,开始位置,结束位置) | isalnum() |
| isdigit() | len(string) |
| lower()\upper() | strip()\rstrip()\lstrip() |
| max()\min() | replace(原来的字符,新字符,替换次数) |
| split(分割符,分割次数) | splitlines(keepends) |
重要!
str.maketrans(keys_str,values_str):
把两个字符串生成对应的ASCII字典,生成的字典可以作为translate方法table参数使用
keys_str:字符串
values_str:字符串
keys_str与values_str字符数必须相等;如果keys_str存在相同的字符,生成的字典取最后一个字符对应的value值。
keys_str = 'abcc'
values_str = '0123'
asc_dict = str.maketrans(keys_str, values_str)
print (asc_dict)
# 结果:
{97:49, 98:50, 99:52} # 存在两个C,只取最后一个,所以对应的2(51)的值被3(52)取代。
translate(table):
table声明一个ASCII码字典,根据字典的映射关系,把字符串中的字符替换成字典的值。
table是一个字符Ascii对应的字典,KEY是元音的ASCII码,对应的Value是数字的ASCII码,比如:
{97: 49, 111: 52, 117: 53, 101: 50, 105: 51}
通过下面这个例子,就能根据字典KEY,把元音的字符转变成对应的VALUE:
# 一、把元音转换成数字
intab = "aeiou hgfmn aeoui"
outtab = {97: 49, 111: 52, 117: 53, 101: 50, 105: 51} # 定义转换字典
d=intab.translate(outtab)
print(d)
# 结果:
12345 hgfmn 124453
# 二、使用maketrans()作为参数。
trans_table = str.maketrans('aeiou','12345')
d = intab.tranlate(trans_table)
print(d)
# 结果是一样的。。。。
















