Python3 学习第二弹: 字符串String
字符串表示问题
常见用法 '' 与 "" 就不提了
一些特殊用法
三引号:接收多行字符串的输入
>>>print('''Oh
my God!''')
Oh
my God!
三引号可以用来
当然直接利用\n也可以表示换行
反斜杠的运用:可以用来连接多行的语句
>>>print("Oh \
my God!")
Oh my God!
>>>1 + 2 + \
4 + 5
12
关于路径用法:
看一个例子:
>>>path = 'C:\nabs'
>>>path
C:\nabs
>>>print(path)
C:
abs
值得注意的是,在idle(python shell)下的输出与print输出不一定相同
因此可以看出path字符串并不是其真正路径,需要转义
>>>print('C:\\nabs')
C:\nabs
然而这样却是要加入很多双反斜杠,解决方法就是在字符串前加一个r,告诉解释器这是一个raw string,转义字符失效
>>>print(r'C:\nabs')
C:\nabs
此外,python3的所有字符串都是unicode编码
若需要输出ASCII编码String,可在字符串前面加 b'hello world'
字符串格式化问题
通过%来格式化字符串:
>>>print("%10.2f" % 10.2)
10.20
解释:
%: 表示说明符的开始
转换符号 -/+/0: -表示左对齐 +表示数字前加正负号 0表示转换后位数不够的位置用0填充
最小字段宽度: 表示“整个”字符串的长度最少要有指定这么宽
点.后表示精度值: 四舍五入
转换类型: 与C++类似
>>>print('%+010.2f' % 10.2)
+000010.20
>>>print('%*.*f' % (10,2,10.2)) #特殊用法,用*表示字段宽度或精度可以从元组参数中读取
10.20
ADD:
此外string模板还提供另一种格式化方法,模板字符串,类似于Unix中shell的变量替换
>>>from string import Template
>>>format = Template('Does $x love $y?')
>>>format.substitute(x = 'cyl', y = 'lwt')
'Does cyl love lwt?'
其中x,y变量名可以任取,但是substitute时变量名必须都有参数,否则报错
字符串常量
string中有许多有用的字符串常量
>>>import string
>>>string.digits
0123456789
同理还有, letters,ascii_lowercase,ascii_uppercase,punctuation
均为字面意思
字符串方法
(注意其中[]表示可选项的意思,python文档经常这样书写)
简要叙述一下,均是比较简单易懂的
1> s.find(substring[, start[, end]]) 查找字串
2> s.join(seq) 用s作为分隔符来合并列表元素为整体字符串
>>>seq = ['1', '2', '3']
>>>'+'.join(seq) #要注意seq规定必须是字符串的列表才可
'1+2+3'
3> s.lower() s.upper() 返回s的小写表示/大写表示
4> s.replace(old, new) 返回s中old子串用new字串代替的字符串
5> s.split(a) 以s中的a字串为分隔符获得各分割串的列表(join的反方法)
>>>'1+2+3'.split('+')
['1','2','3']
6> s.strip() 返回去除s两侧空格的字符串
Add:
7> tanslate()
用于替换字符串中的单个字符
首先需要制表
>>> trans = str.maketrans('koe','mqg')
{107: 109, 101: 103, 111: 113}
>>> 'abkeompq'.translate(trans)
'abmgqmpq'
那么多的束缚,我不曾放弃过;那么多的险阻,我不曾倒下过。