Python基础教程笔记——使用字符串
来源:互联网 发布:js prompt 使用方法 编辑:程序博客网 时间:2024/06/05 15:58
使用字符串
Table of Contents
- 1 基本字符串操作
- 2 字符串格式化:精简版
- 2.1 用字符串格式化操作符
- 2.2 用string的Template格式化字符串
- 3 字符串格式化:完整版
- 3.1 转换说明符
- 3.2 简单转换
- 3.3 字段宽度和精度
- 3.4 符号,对齐和 0 填充
- 4 字符串方法
- 4.1 find
- 4.2 join
- 4.3 lower
- 4.4 replace
- 4.5 split
- 4.6 strip
- 4.7 translate
1 基本字符串操作
- 说明:字符串也是序列的一种,所以分片,乘法,索引,求长度,最大, 最小,判断成员资格等都可以应用在字符串上;
- 注意:字符串是不可变的,所以不能对其进行赋值;
- 例子
1: >>> mystr="Test string"2: >>> mystr[0] = 't'3: Traceback (most recent call last):4: File "<pyshell#1>", line 1, in <module>5: mystr[0] = 't'6: TypeError: 'str' object does not support item assignment7: >>>
2 字符串格式化:精简版
2.1 用字符串格式化操作符
- 说明:字符串格式化使用字符串格式化操作符百分号( % )实现,在操作符的左侧是格式化字符串,右侧是希望被格式化的值;
- 注意:
- 只有元组和字典可以被格式化为一个以上的值,列表和其他序列会被格式化为一个值;
- 转换说明符,用于标记需要插入转换值的位置;
- 如果在格式化字符串中要输出百分号,则需要使用 %%
- 例子:
1: #一般格式化 2: >>> myformat = "Hello, my name is %s %s" 3: >>> name = ('Bill','Gunn') 4: >>> print (myformat % name) 5: Hello, my name is Bill Gunn 6: >>> 7: 8: #用列表格式化 9: >>> myformat = 'Hello, my name is %s'10: >>> name=['Bill', 'Gunn']11: >>> print(myformat % name)12: Hello, my name is ['Bill', 'Gunn']13: 14: #打印浮点数15: >>> import math16: >>> print ("PI = %.5f" % pi)17: PI = 3.1415918: 19: #打印百分号20: >>> print("%.2f%%"% 22.3)21: 22.30%22: >>>
2.2 用string的Template格式化字符串
- 说明:类似于Unix Shell中的变量替换,使用substitute方法,将字符串 模板中的$foo替换为传递进来的参数foo
- 例子:
1: #从string模块中导入Template 2: >>> from string import Template 3: #创建模板 4: >>> myformat = Template("My name is $name") 5: #替换变量并打印 6: >>> print(myformat.substitute(name="Bill Gunn")) 7: My name is Bill Gunn 8: >>> 9: 10: #输出美元符号的方法,在模板里输入两个$11: >>> mytemplate = Template("The price is $$$price")12: >>> mytemplate.substitute(price=100)13: 'The price is $100'14: >>>15: 16: #如果参数与后面的字符串相连,需要用大括号将其括起来17: >>> from string import Template18: >>> mytemplate = Template("It's ${x}tastic!")19: >>> mytemplate.substitute(x='slum')20: "It's slumtastic!"21: >>>22: 23: #使用字典替换参数24: >>> mytemplate = Template("My $property is $value")25: >>> name = {}26: >>> name["property"] = "name"27: >>> name["value"] = "Bill Gunn"28: >>> mytemplate.substitute(name)29: 'My name is Bill Gunn'30: >>>31:
3 字符串格式化:完整版
- 说明:字符串格式化操作符的右操作数如果是元组,那么在格式化字符串 中必须将元组中的各个元素都有对应的转义说明符。
- 例子:
1: >>> data = tuple(list("123")) 2: >>> data 3: ('1', '2', '3') 4: #格式化字符串中只有一个转义说明符,而元组中有三个元素,转换会报错 5: >>> print ("data is %s" % data) 6: Traceback (most recent call last): 7: File "<pyshell#18>", line 1, in <module> 8: print ("data is %s" % data) 9: TypeError: not all arguments converted during string formatting10: #显示元组中的全部元素11: >>> print ("data is %s %s %s" % data)12: data is 1 2 313: >>>14:
3.1 转换说明符
- 转换说明符
转义说明符 含义 d,i带符号的十进制整数o不带符号的八进制u不带符号的十进制x不带符号的十六进制(小写)X不带符号的十六进制(大写)e科学计数法的浮点数(小写)E科学计数法的浮点数(大写)f,F十进制浮点数g如果指数大于-4或者小于精度值则和e相同,否则和f相同G如果指数大于-4或者小于精度值则和E相同,否则和F相同C单字符(接受整数或者单字符字符串)r字符串(使用repr转换任意Python对象)s字符串(使用str转换任意Python对象)
3.2 简单转换
- 例子:
1: #十进制整数 2: >>> print ("The price is $%d" % 12) 3: The price is $12 4: 5: #十六进制整数 6: >>> print ("Hex %x" % 12) 7: Hex c 8: 9: #八进制整数10: >>> print ("Oct %o" % 12)11: Oct 1412: >>>13:
3.3 字段宽度和精度
- 说明:
- 字段宽度:转换后的值所保留的最小字符个数;
- 字段精度:转换后,结果中应该的小数位数;
- 可以使用*作为字段宽度或者精度
- 例子:
1: #限制宽度 2: >>> "%10f" % math.pi 3: ' 3.141593' 4: 5: #限制小数位数 6: >>> "%5.2f" % math.pi 7: ' 3.14' 8: 9: #用星号限制宽度和精度,下例中,宽度为10,精度为510: >>> '%*.*s' % (10, 5, 'adfasdfadsfasdfasdfasdf')11: ' adfas'12: >>>13:
3.4 符号,对齐和 0 填充
- 说明:
- 零:宽度不够时用数字0填充;
- 负号:左对齐;
- 正号:不管是正数还是负数都标记出符号
- 空格:宽度不够时用空格填充;
- 例子:
1: #空白补0 2: >>> print ("%010f" % math.pi) 3: 003.141593 4: 5: #左对齐 6: >>> "%-10.2f" % math.pi 7: '3.14 ' 8: 9: #空白右对齐10: >>> print("% 5d\n% 5d" % (123, 12))11: 12312: 1213: 14: #显示正负符号15: >>> print ("%+5d\n%+5d" % (123, -123))16: +12317: -12318: >>>19:
4 字符串方法
4.1 find
- 说明:用于在长字符串中查找子字符串,如果找到,则返回子字符串在左 侧第一次出现的索引,没找到返回-1,在查找时,还可以指定在长字符串 中查找的范围,提供起始索引和结束索引作为查找的参数;
- 注意:查找时,包括起始索引位置,但是不包括结束索引的位置;
- 例子:
1: >>> string.ascii_letters 2: 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' 3: >>> letters = string.ascii_letters 4: >>> letters.find('AB') 5: 26 6: >>> letters.find('X',30,-1) 7: 49 8: >>> letters.find("AB",26) 9: 2610:
4.2 join
- 说明:将队列中的元素用字符串连接起来,并且列表中的元素必须是字符 串;
- 例子:
1: >>> data = list('123456')2: >>> data3: ['1', '2', '3', '4', '5', '6']4: >>> "AB".join(data)5: '1AB2AB3AB4AB5AB6'6: >>> 7:
4.3 lower
- 说明:将字符串转换成小写字母,并返回,但是原字符串不改变;
- 例子:
1: >>> mystr="ABCD"2: >>> mystr.lower()3: 'abcd'4: >>> mystr5: 'ABCD'6: >>> 7:
4.4 replace
- 说明:返回所有匹配项都被替换之后的字符串
- 例子:
1: >>> mystr = "My name is Geng Qi"2: >>> mystr.replace("Geng Qi", "Bill Gunn")3: 'My name is Bill Gunn'4: >>>
4.5 split
- 说明:将字符串分割成序列;
- 注意:如果不提供分割符,则会将空白符当作分割符;
- 例子
1: #以加号为分割符 2: >>> mystr = "1+2+3+4+5+6" 3: >>> mystr.split('+') 4: ['1', '2', '3', '4', '5', '6'] 5: 6: #不提供分割符时,以空白符为分割符 7: >>> mystr = "This is a test string" 8: >>> mystr.split() 9: ['This', 'is', 'a', 'test', 'string']10: >>> 11:
4.6 strip
- 说明:去除两侧的空白,也可以去除指定的字符;
- 例子:
1: >>> mystr = " asdfad adfasf asdf " 2: >>> mystr 3: ' \tasdfad adfasf asdf \t\t' 4: #去除空白符 5: >>> mystr.strip() 6: 'asdfad adfasf asdf' 7: 8: #去除指定字符 9: >>> mystr.strip('\t')10: ' \tasdfad adfasf' asdf '11: >>> 12:
4.7 translate
- 说明:translate是单字替换,可以同时替换多个字符
- 例子:
1: >>> table = str.maketrans('cs', 'kz')2: >>> table3: {115: 122, 99: 107}4: >>> "Please don't knock at my door!".translate(table)5: "Pleaze don't knokk at my door!"6:
0 0
- Python基础教程笔记——使用字符串
- Python基础教程笔记——使用字符串
- Python基础教程笔记——使用字符串
- Python学习笔记【三】——《python基础教程》:: 使用字符串
- 《Python基础教程》学习笔记——字符串
- Python基础教程——3使用字符串
- 《Python基础教程》学习笔记 Chap3 使用字符串
- 第三章-使用字符串——python基础教程(第二版)笔记
- Python基础教程——第三章 使用字符串
- Python基础教程第三章——使用字符串
- 《Python基础教程》学习笔记之[D3]字符串的使用
- 学习《Python基础教程(第二版)》笔记4---使用字符串
- Python基础教程学习笔记----第三章 字符串
- python基础教程_学习笔记5:字符串
- python基础教程学习笔记 第三章 字符串
- Python基础教程笔记——基础知识
- Python基础教程笔记——抽象
- 《Python 基础教程》学习笔记——字典
- RTP timestamp与帧率及时钟频率的关系
- 远程数据库导入本地(10W)
- 重命名列(字段名)
- jQuery 取值、赋值的基本方法
- jsp中路径的总结
- Python基础教程笔记——使用字符串
- 关于微信营销的实施 转载
- Oracle 归档模式的打开及关闭
- UITabBar -- 定制
- (二)被拒 之 马虎问题
- C8051F系列单片机技术问答
- 时间string转化
- android adb pull
- 文件时间戳的编译错误