使用字符串
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 assignment
7: >>>
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 math
16: >>> print ("PI = %.5f" % pi)
17: PI = 3.14159
18:
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 Template
18: >>> 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 formatting
10: #显示元组中的全部元素
11: >>> print ("data is %s %s %s" % data)
12: data is 1 2 3
13: >>>
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 14
12: >>>
13:
3.3 字段宽度和精度
- 说明:
- 字段宽度:转换后的值所保留的最小字符个数;
- 字段精度:转换后,结果中应该的小数位数;
- 可以使用*作为字段宽度或者精度
- 例子:
1: #限制宽度
2: >>> "%10f" % math.pi
3: ' 3.141593'
4:
5: #限制小数位数
6: >>> "%5.2f" % math.pi
7: ' 3.14'
8:
9: #用星号限制宽度和精度,下例中,宽度为10,精度为5
10: >>> '%*.*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: 123
12: 12
13:
14: #显示正负符号
15: >>> print ("%+5d\n%+5d" % (123, -123))
16: +123
17: -123
18: >>>
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: 26
10:
4.2 join
- 说明:将队列中的元素用字符串连接起来,并且列表中的元素必须是字符 串;
- 例子:
1: >>> data = list('123456')
2: >>> data
3: ['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: >>> mystr
5: '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: >>> table
3: {115: 122, 99: 107}
4: >>> "Please don't knock at my door!".translate(table)
5: "Pleaze don't knokk at my door!"
6:
Date: 2011-11-15 23:24:43
Author:
Org version 7.7 with Emacs version 23
Validate XHTML 1.0
分享到:
相关推荐
这份“Python基础教程——学习笔记”涵盖了Python编程的基础知识,旨在帮助初学者快速入门。 1. **变量与数据类型** Python中的变量无需预先声明,可以直接赋值。支持的数据类型包括整型(int)、浮点型(float)...
5. **字符串与列表操作:** 字符串和列表的基本操作,包括索引、切片、连接、迭代等,以及内置函数和方法的使用。 6. **字典与集合:** 掌握字典的键值对结构,集合的特性和操作,了解它们在数据存储和检索中的应用...
本讲主要聚焦于一种非常重要的数据类型——字符串。字符串在各种编程语言中都有着广泛的应用,包括Python、Java、C++等。它们用于存储和操作文本信息,如姓名、地址、文章段落等。 字符串在Python中被定义为一串...
"Python学习笔记第二版"是一本专门针对Python编程的教程,旨在帮助读者理解Python的基本编码操作,适用于初学者和有一定基础的学习者进行日常复习。这本书的作者鼓励读者结合其他深入源码分析的书籍,比如《蟒原——...
**Python入门笔记——李金详解** 本篇笔记是基于作者李金的《python入门笔记-李金(强烈推荐)》的解析,旨在为初学者提供一份详尽的Python语言学习指南。这份笔记采用Jupyter Notebook的形式,使得学习过程更加...
初学者应该首先掌握Python的基本数据类型,如整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。此外,了解列表(list)、元组(tuple)、字典(dict)和集合(set)等复合数据结构的使用至关重要。 变量在Python中是...
### 知识点详解 #### 一、Python基础 Python是一种高级编程语言,以...以上就是“全套百度云教程:python基础+进阶+项目篇 (含Django和Tornado)”的主要知识点概述。希望对您学习Python及相关的Web开发技术有所帮助。
《Flask框架基础教程——基于2019千锋教育视频源码与笔记解析》 Flask是一款轻量级的Web服务程序框架,以其简洁、灵活的特点,在Python Web开发领域广受欢迎。本教程将结合2019年千锋教育的Flask框架入门视频源码与...
1. **变量与数据类型**:Python中的基本数据类型包括整型(int)、浮点型(float)、字符串(str)和布尔型(bool)。此外,还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据结构。 2. **...
1. **基础语法**:Python的基础包括变量赋值、数据类型(整型、浮点型、字符串、布尔型、列表、元组、字典、集合)、流程控制(条件语句、循环语句、异常处理)。 2. **函数与模块**:函数是组织代码的基本单位,...
2. **数据类型**:包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)等。 3. **控制流**:包括条件语句(if-else)、循环(for、while)。 4. **函数(Functions)**:自定义函数使用`def`关键字,...