Python03 字符串
2019-07-11 本文已影响1人
凡有言说
以下主要是听极客时间:Python核心技术与实战时做的笔记
字符串是python一种常见的数据类型,比如函数的注释,日志的打印等等。
1.字符串基础
#字符串基础
s1 = 'hello'
s2 = "hello"
s3 = """hello"""
s1 == s2 == s3
True
python支持以上三种方式,一个重要原因是可以在字符串中内嵌带引号的字符串。
"I'm a student"
注意和stata做区分,stata引入字符型变量要用双引号""
平时我们多用单引号或双引号。对于三引号,多用于多行字符串的情景,如函数的注释等。此外,python也支持转义字符。

#转义字符
s = 'a\nb\tc'
print(s)
a
b c
在转义字符的应用中,最常见的就是换行符'\n'的使用。
2.常用操作
我们可以把字符串想象成由单个字符组成的数组,所以,python的字符串同样支持索引、切片和遍历等操作。
#常用操作
name = 'Tom'
name[0]
'T'
name[1:3]
'om'
for i in name:
print(i)
T
o
m
需要注意,Python 的字符串是不可变的,因此如下操作会报错
s = 'hello'
s[0] = 'H'
TypeError: 'str' object does not support item assignment
此时,需要通过新建字符串来实现
s = 'H' + s[1:]
s
'Hello'
s = s.replace('h', 'H')
s
'Hello'
有了字符串后,我们如何分割它呢?这种情况常常应用于对数据的解析处理,比如我们读取了某个文件的路径,想要调API。
path = 'hive://ads/training_table'
namespace = path.split('//')[1].split('/')[0] # 返回'ads'
namespace
'ads'
table = path.split('//')[1].split('/')[1] # 返回 'training_table'
table
'training_table'
此外,常见的处理函数还有
- string.strip(str),表示去掉首尾的str字符串
- string.lstrip(str),表示只去掉开头的 str 字符串
- string.rstrip(str),表示只去掉尾部的 str 字符串
以上在数据清洗中很实用,比如:
s = ' my name is Tom '
s.strip()
'my name is Tom'
3.格式化
格式化是指使用格式符为真实值预留位置,以便呈现出真实值应该呈现的格式。这里推荐用string.format()
来操作,这是最新的字符串格式与规范。
#格式化
id = '006'
name = 'Tom'
print('no data available for person with id:{}, name:{}'.format(id,name))
no data available for person with id:006, name:Tom
以上{}就是格式符,给id和name的真实值预留位置。