4.0、Python字符串

目录

 

4.1字符串简介

4.1.1字符串的概念

4.1.2转义字符

 

4.2字符串的输入与输出、索引与切片

4.2.1字符串的输出

4.2.2字符串的输入

4.3字符串的索引与切片

4.4字符串的运算

4.5字符串常用函数

4.5.1大小写转换

4.5.2判断字符

4.5.3检测前缀或后缀

4.5.4 合并与分隔字符串

4.5.5对齐方式

4.5.6 删除字符串头尾字符

4.5.7 检测子串

4.5.8替换子串

4.5.9 统计子串个数

4.5.10 首字母大写

4.5.11标题化


4.1字符串简介

4.1.1字符串的概念

在程序中,字符串是由若干字符组成的序列。
字符串的3种表现形式(单引号标识字符串、双引号标识字符串、三引号标识字符串)

单引号标识字符串(使用单引号标识的字符串中不能包含单引号

'xiaofan'
'666'
'小帆说:“坚持到感动自己,拼搏到无能为力”。'

双引号标识字符串(使用双引号标识的字符串中不能包含双引号

"xiaofan"
"666"
"I'll do my best."

三引号标识字符串(使用3对单引号或3对双引号标识字符串可以包含多行)

'''
坚持到感动自己
拼搏到无能为力
'''
"""
遇到IT技术难题
就上CSDN社区
"""

这种形式的字符串经常出现在函数定义的下一行,用来说明函数的功能。
通常使用前两种形式创建字符串,之后需要通过变量引用字符串,具体示例如下:

name = "小帆"
print(name)    #输出小帆

Python中的字符串不能被修改,具体示例如下:

name = "xiaofan"
name[4] = 'f'     #错误
print(name[4])    #正确

虽然字符串不可以修改,但可以截取字符串一部分与其他字符串进行连接,具体示例如下:

str = "xiaofan is a programmer."
print(str[0:14]+"girl")

上述示例中,str[0:14]截取"xiaoqian is a ",然后再与"girl"进行连接,最后输出"xiaoqian is a girl"。字符串的截取与连接将会在后面详细讲解。


4.1.2转义字符

转义字符以反斜杠“\”开头,后跟若干个字符。转义字符具有特定的含义,不同于字符原有的意义,故称转义字符。表中列出了常用的转义字符及含义。

在表中,'\ddd'和'\xhh'都是用ASCII码表示一个字符,如'\101'和'\x41'都是表示字符'A'。转义字符在输出中有许多应用,如想在单引号标识的字符串中包含单引号,则可以使用如下语句:

str = 'I\'ll do my best.'

其中,“\'”表示对单引号进行转义。当解释器遇到这个转义字符时就理解这不是字符串结束标记。如果想禁用字符串中反斜杠转义功能,可以在字符串前面添加一个r,具体示例如下:

print(r'\n表示回车换行')    #输出\n表示回车换行

 

4.2字符串的输入与输出、索引与切片

4.2.1字符串的输出

#简单输出
print("xiaofan")    #输出xiaofan
#字符串格式化输出
age = 18
print("小帆的年龄为%d"%age)    #输出小帆的年龄为18
#format string为格式标记字符串
format string % string_to_convert
format string % (string_to_convert1,string_to_convert2,...)
"""
format_string为格式标记字符串,包括固定的内容与待替换的内容,待替换的内容用格式化符号标明,string_to_convert为需要格式化的数据。
如果需要格式化的数据是多个,则需要使用小括号括起来并用逗号分隔。
"""

format_string中常用的格式化符号如表所示。

格式化符号的用法:

name,age,id,score = "小帆",18,1,100
print("学号:%d\n姓名;%s\n年龄:%d\n成绩:%f"\%(id,name,age,score))

除了上表的格式化符号,有时还需要调整格式化符号的显示样式,例如是否显示正值符号“+”,下表中列出了辅助格式化符号。

a,b = 65,3.1415926
#输出字符串宽度为10,并且以0x形式显示65对应的十六进制数,注意默认是右对齐的。
print("%#10x"%a)
#输出字符串宽度为10,并且以0X形式显示65对应的十六进制数,注意“-”代表左对齐。
print("%-#10x"%a)
#输出字符串中正值时前加“+”。
print("%+d"%a)
#输出字符串宽度为5,显示的小数点精度为3。
print("%5.3f"%b)
#通过*设置显示宽度为5。
print("%*.3f"%(5,b))
#通过*设置小数点精度为3。
print("%5.*f"%(3,b))

4.2.2字符串的输入

前面的程序中,字符串都是先定义后使用。如果需在程序运行时,通过键盘输入字符串,则可以使用input()函数。它表示从标准输入读取一行文本,默认的标准设备是键盘,其语法格式如下:

input([prompt])#其中,prompt表示提示字符串,该函数将输入的数据作为字符串返回。
#字符串输入的使用方法
name = input("请输入用户名:")
pwd = input("请输入密码:")
print("用户%s的密码为%s"%(name,pwd))
print(type(name))
print(type(pwd))

4.3字符串的索引与切片

字符串可以通过运算符[]进行索引与切片,字符串中每个字符都对应两个编号(也称下标),如图所示。

每个字符串中的某个字符可以有两种方法索引,例如索引str中字符‘q’,具体示例如下:

str[4]
str[-9]

两种形式都可以索引到字符'q'。

字符串分片是指从字符串中截取部分字符并组成新的字符串,并不会对原字符串做任何改动,其语法格式如下:
[起始编号:结束编号:步长]  该语句表示从起始编号处开始,以指定步长进行截取,到结束编号的前一位结束。

str = "www.baidu.com"
print(str[4:9])      #默认步长为1
print(str[4:9:2])    #设置步长为2
print(str[-9:-4])    #默认步长为1
print(str[-9:-4:2])  #设置步长为2
print(str[:])        #整个字符串
print(str[:9])       #等价于str[0:9:1]
print(str[4:])       #默认到字符串尾部(包括最后一个字符)
print(str[:-9])      #从第一个字符到编号为-9的字符(不包括编号为-9的字符)
print(str[-4:])      #从编号为-4的字符到最后一个字符(包括最后一个字符)
print(str[::-2])     #从后往前,步长为2
print(str[:-9])      #从第一个字符到编号为-9的字符(不包括编号为9的字符)

 

4.4字符串的运算

除了数字类型的数据可以参与运算外,字符串也可以参与运算,如4.3节中字符串通过[]运算符进行索引与切片,具体如表所示。

字符串的运算,使用方法

str1,str2 = "CSDN","学堂"
print(str1 + str2)
print(3*(str1 + str2))
if"coding"in"coding.com":
    print("coding is in coding.com")
else:
    print("coding is not in coding.com")

 

4.5字符串常用函数

4.5.1大小写转换

函数说明
upper()转换字符串中所有小写字母为大写
lower()转换字符串中所有大写字母为小写

 

 

 

 

上述两种方法都返回一个新字符串,其中的非字母字符保持不变。如果需要进行大小写无关的比较,则这两个函数非常有用。接下来演示其用法,如例所示。

name = 'xiaofan'
str = input("请输入用户名(不区分大小写):")
if str.lower() == name:
    print("欢迎用户%s登录"%name)
else:
    print("用户名错误")

4.5.2判断字符

Python中提供了判断字符串中包含某些字符的函数,这些函数在处理用户输入的字符串时是非常方便。这些函数都是以is开头,如表所示。

这些函数的返回值都为布尔值。

4.5.3检测前缀或后缀

在处理字符串时,有时需要检测字符串是否以某个前缀开头或以某个后缀结束,这时可以使用startswith()与endswith()函数,如表所示。

str = "www.baidu.com"
print(str.startswith("www"))
print(str.startswith("coding",4))
print(str.endtswith("com"))
print(str.endswith("ke",0,12))

 

4.5.4 合并与分隔字符串

在处理字符串时,有时需要合并与分割字符串,这时可以使用join()与split()函数,如表所示。

seq1 = "CSDN"
print("|".join(seq1))
seq2 = ["CSDN","CSDN学堂","程序员特训营"]
print("-".join(seq2))
seq3 = "CSDN | CSDN学堂 | 程序员特训营"
print(str3.split("|"))
print(str3.split("|",1))

4.5.5对齐方式

在处理字符串时,有时需要设置字符串对齐方式,这时可以使用rjust()、ljust()和center()函数,如表所示。

 

4.5.6 删除字符串头尾字符

在处理字符串时,有时需要删除字符串头尾的某些字符,这时可以使用strip()、lstrip()和rstrip()函数,如表所示。

 

4.5.7 检测子串

在处理字符串时,有时需要检测某个字符串中是否包含子字符串,这时可以使用find()函数,其语法格式如下:

find(str,beg = 0,end = len(string))
该函数检测str是否包含在检测字符串中。如果指定范围beg和end,则检查是否包含在指定范围内。如果包含,则返回开始的下标值,否则返回-1。

除此之外,还可以通过index()函数检测字串,其语法格式如下:

index(str,beg = 0,end = len(string))

该函数的用法与find()函数类似,两者的区别是:如果str不在字符串中,那么index()函数会报一个异常。

 

4.5.8替换子串

在文字处理软件中,都会有查找并替换的功能。在字符串中,可以通过replace()函数来实现,其语法格式如下:
replace(old,new[,max])

该函数将字符串中old替换成new并返回新生成的字符串。如果指定第三个参数max,则表示替换不超过max次。

 

4.5.9 统计子串个数

在文字处理软件中,都会有统计某个词语出现次数的功能。在字符串中,可以通过count()函数来实现,其语法格式如下:

count(str,beg = 0, end = len(string))

该函数返回str在字符串中出现的次数。如果指定beg或end,则返回指定范围内str出现的次数。

 

4.5.10 首字母大写

capitalize()函数用于将字符串的第一个字母变成大写,其他字母变成小写,其语法格式如下:

str = "codingke is a great Website."
print(str.capitalize())

 

4.5.11标题化

title()函数可以将字符串中所有单词首字母大写,其他字母小写,从而形成标题,其语法格式如下:

str = "xiaofan education"
print(str.title())

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值