一、字符串类型的表示
- 字符串是字符的序列表示,可以由一对单引号(’)、双引号(")或三引号("’)构成。
- 单引号字符串:‘单引号表示,可以使用"双引号"作为字符串的一部分’
- 双引号字符串:“双引号表示,可以使用’单引号’作为字符串的一部分”
- 三引号字符串:"‘三引号表示可以使用"双引号"、‘单引号’,也可以换行"’
>>> print('单引号"双引号"三引号')
单引号"双引号"三引号
>>> print("双引号'单引号'三引号")
双引号'单引号'三引号
>>> print('''三引号中可以用"双引号"
'单引号'
也可以换行''')
三引号中可以用"双引号"
'单引号'
也可以换行
- input()函数将用户输入的内容当做一个字符串的类型,这是获得用户输入的常用方式。
- print()函数可以直接打印字符串,这是输出字符串的常用方式。
- 字符串以Unicode编码存储,因此,字符串的英文字符和中文字符都算作1个字符。
二、基本的字符串操作符
1. 基本的字符串操作符(共5个)
操作符 | 描述 |
---|---|
x+y | 连接两个字符串x与y |
x * n或n * x | 复制n次字符串x |
x in s | 如果x是s的子串,返回True,否则返回False |
str[i] | 索引,返回第i个字符 |
str[N:M] | 切片,返回索引第N到第M的子串,其中不包括M |
2. 特殊的格式化控制
字符串中可以增加特殊的格式化控制字符,用来输出特殊效果。特别的格式化控制字符使用反斜杠(\)开头,常用控制字符如下。
- \:转义符
- \a:蜂鸣,响铃
- \b:回退,向后退一格
- \f:换页
- \n:换行,光标移动到下行首行
- \r:回车,光标移动到本行首行
- \t:水平制表
- \v:垂直制表
- \0:NULL,什么也不做
3. 内置的字符串处理函数
常用的内置字符串处理方法(共16个)
方法 | 描述 |
---|---|
str.lower() | 返回字符串str的副本,全部字符小写 |
str.upper() | 返回字符串str的副本,全部字符大写 |
str.islower() | 当str所以字符都是小写时,返回True,否则返回False |
str.isprintable() | 当str所以字符都是可打印的,返回True,否则返回False |
str.isnumeric() | 当str所以字符都是数字时,返回True,否则返回False |
str.isspace() | 当str所有字符都是空格,返回True,否则返回False |
str.endswith(suffix[,start[,end]]) | str[start:end]以suffix结尾返回True,否则返回False |
str.startswith(prefix[,start[,end]]) | str[start:end]以prefix结尾返回True,否则返回False |
str.split(sep=None,maxsplit=-1) | 返回一个列表,由str根据sep被分割的部分构成 |
str.count(sub[,start[,end]]) | 返回str[start:end]中sub子串出现的次数 |
str.replace(old,new[,count]) | 返回字符串str的副本,所有old子串被替换为new,如果count给出,则前count次old出现被替换 |
str.center(width[,fillchar]) | 字符串居中函数,运用于打印规则中 |
str.strip([chars]) | 返回字符串str的副本,在其左侧和右侧去掉chars中列出的字符 |
str.zfill(width) | 返回字符串str的副本,长度为widen,不足部分在左侧填0 |
str.format() | 返回字符串str的一种排版格式 |
str.jion(iterable) | 返回一个新字符串,有组合数据类型iterable变量的每个元素组成,元素间用str分隔 |
三、字符串类型的格式化
字符串通过format()方法进行格式化处理,在Python3中,%操作符通过一个更强的格式化方法format()进行了增强。
字符串format()方法的基本使用格式如下:
<模板字符串>.format(<逗号分隔的参数>)
- 字段名字可以为整数,表示参数的位置,如下:
>>> print('My name is:{0},and my age is:{1}'.format('song',18))
My name is:song,and my age is:18
- 字段名字也可以是参数的名字,如下:
>>> print('My name is:{name},and my age is:{age}'.format(name='song',age=18))
My name is:song,and my age is:18
- 可以使用字段的组合来读取属性或者字典中key对应的值,如下:
>>> import sys
>>> sys.platform
'win32'
>>> sys.version
'3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]'
>>> print('platform:{0.platform}\nversion:{0.version}'.format(sys))
platform:win32
version:3.5.1 (v3.5.1:37a07cee5969, Dec 6 2015, 01:54:25) [MSC v.1900 64 bit (AMD64)]
>>> d={'name':'song','age':18}
>>> d
{'name': 'song', 'age': 18}
字典 d 中的键为字符串’name’和’age’,但在下面的print()语句中,需要去掉引号,如下:
>>> print('My name is:{0[name]},and my age is:{0[age]}'.format(d))
My name is:song,and my age is:18
>>> print('My name is:{0[1]}'.format(['zhang','song','liu'])) #针对列表的操作
My name is:song
- 格式化指示符可以包含一个展示类型来控制格式,如下:
>>> print('{0:e}'.format(3.1415)) #用科学计数法打印数字,默认保留6位小数
3.141500e+00
>>> print('{0:.3e}'.format(3.1415)) #用科学计数法打印数字,指定保留3位小数
3.142e+00
>>> print('{0:%}'.format(0.12)) #打印百分数,默认保留6位小数
12.000000%
>>> print('{0:.2%}'.format(0.34)) #打印百分数,指定保留2位小数
34.00%
>>> print('{0:b}'.format(18)) #将数字以2为基数进行输出(二进制)
10010
>>> print('{0:d}'.format(18)) #将数字以10为基数进行输出(十进制整数)
18
>>> print('{0:o}'.format(18)) #将数字以8为基数进行输出(八进制)
22
>>> print('{0:x}'.format(180)) #将数字以16为基数进行输出,9以上的位数用小写字母(十六进制)
b4
>>> print('{0:X}'.format(180)) #将数字以16为基数进行输出,9以上的位数用大写字母(十六进制)
B4
- 有一个内置的format()方法可以用来格式化一个值,它会调用类型的__format__()方法,并将格式化指示符作为参数传进去,如下:
>>> format(3.1415926,'f') #默认保留6位小数
'3.141593'
>>> format(3.1415926,'.3f') #指定保留3位小数
'3.142'
四、python字符串格式化符号:
符 号 描述
%c 格式化字符及其ASCII码
%s 格式化字符串
%d 格式化整数
%u 格式化无符号整型
%o 格式化无符号八进制数
%x 格式化无符号十六进制数
%X 格式化无符号十六进制数(大写)
%f 格式化浮点数字,可指定小数点后的精度
%e 用科学计数法格式化浮点数
%E 作用同%e,用科学计数法格式化浮点数
%g %f和%e的简写
%G %f 和 %E 的简写
%p 用十六进制数格式化变量的地址