Python字符串方法详解

一、字符串类型的表示

  1. 字符串是字符的序列表示,可以由一对单引号(’)、双引号(")或三引号("’)构成。
  • 单引号字符串:‘单引号表示,可以使用"双引号"作为字符串的一部分’
  • 双引号字符串:“双引号表示,可以使用’单引号’作为字符串的一部分”
  • 三引号字符串:"‘三引号表示可以使用"双引号"、‘单引号’,也可以换行"’
>>> print('单引号"双引号"三引号')
单引号"双引号"三引号
>>> print("双引号'单引号'三引号")
双引号'单引号'三引号
>>> print('''三引号中可以用"双引号"
'单引号'
也可以换行''')	   
三引号中可以用"双引号"
'单引号'
也可以换行
  1. input()函数将用户输入的内容当做一个字符串的类型,这是获得用户输入的常用方式。
  2. print()函数可以直接打印字符串,这是输出字符串的常用方式。
  3. 字符串以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(<逗号分隔的参数>)
  1. 字段名字可以为整数,表示参数的位置,如下:
>>> print('My name is:{0},and my age is:{1}'.format('song',18))
My name is:song,and my age is:18
  1. 字段名字也可以是参数的名字,如下:
 >>> print('My name is:{name},and my age is:{age}'.format(name='song',age=18))
        My name is:song,and my age is:18

  1. 可以使用字段的组合来读取属性或者字典中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
  1. 格式化指示符可以包含一个展示类型来控制格式,如下:
>>> 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
  1. 有一个内置的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     用十六进制数格式化变量的地址

推荐参考文章一
推荐参考文章二

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值