python入门笔记(第六期——字符串)

前言:
本文章供python初学者自学学习,以后的话应该会每周末更新一次,因为本人也是在自学python,所以想借此来分享一波笔记。喜欢的话可以关注一下。
正文:
今天这一章还是比较重要的一节,不过并不难,很多内容上起手来还是比较简单的。我们这一节说一下字符串的常用操作。

1.拼接字符串
使用 “+” 运算符可以完成多个字符串的拼接,但是要连接的必须是字符串和字符串类型的。不可以是字符串和其它类型。

例如:

str1="我已经有了"
num=133
str2="个粉丝"
print(str1+str(num)+str2)

运行结果如下:
在这里插入图片描述
这个num必须强制转换成为字符串类型才可以使用 “+” 运算符。

2.计算字符串长度

len = (string)   #string表示要统计的字符串

len 可以将字符串的所有字符个数统计出来。

示例:

str1 = "张子枫最新电影《秘密访客》"
print(len(str1))

运行结果如下:
在这里插入图片描述
另外:数字、英文、小数点、空格、下划线、占用1个字节,一个汉字在采用不同编码时所占用字节数不同。汉字在采用GBK/GB2312编码中占用2个字节、在采用UTF-8/Unicode中一般占用3个字节。我们默认采用UTF-8编码。有时候我们需要计算字符串的字节数(类似c语言的sizeof)我们采用encode()

示例:

str1 = "张子枫最新电影《秘密访客》"
print(len(str1.encode()))
print(len(str1.encode('gbk')))

运行结果如下:
在这里插入图片描述
第一个39是采用UTF-8编码,第二个采用是GBK编码,两种编码方式还是有很大的差距的。

3.截取字符串
这个和序列切片完全类似,因为字符串属于序列。
格式:

string[start : end : step]
参数含义
string表示序列名称。
start切片开始位置(包括开始位置)可以省略,省略默认为0;
end切片结束位置(不包括结束位置)可以省略,省略默认为序列长度;
step表示切片步长,省略默认为 1

示例:

str1 = "张子枫最新电影《秘密访客》"
print(str1[1])
print(str1[3:])
print(str1[:3])
print(str1[1:7])

运行结果如下:
在这里插入图片描述
在字符串截取时,如果指定索引不存在,则会抛出异常,可以采用try…except语句捕获异常,这个后面还会说,先暂时看一下代码。应该可以看懂。
示例:

str1 = "张子枫最新电影《秘密访客》"
try:
	substr1 = str1[32]
except IndexError:
	print("指定的字符串不存在")

运行结果如下:
在这里插入图片描述
4.分割字符串
把一个字符串按照指定的分隔符来分割成字符串列表,该列表中不包括分隔符。
格式:

str.split(sep,maxsplit)
参数含义
str要分割字符串名称
sep用于指定分隔符,可以包含多个字符,默认为None,即所有空字符,包括空格、\n、\t
maxsplit指定分割次数,如果不指定或者指定-1则分割字符次数没有限制。(如果不指定sep那么也不能指定maxsplit)
返回值分割后字符串列表

示例:

str1="张子枫最新电影 《秘密访客》"
list1 = str1.split()
print(list1)

在这里插入图片描述
5.检索字符串
(1)count()
之前在对列表进行统计计算时用到过count()现在字符串和列表类似,本身字符串也属于列表。功能是检索字符串在原字符串出现次数。

str.count(sub[, start[, end]])
参数含义
str表示原来字符串
sub要检索的子字符串
start可选参数,要检索范围的起始位置,如果不指定,则从头开始
end可选参数,要检索范围的结尾位置,如果不指定,则从一直到结尾

示例:

str1="张子枫发微博称张子枫喜欢张子枫"  #随口编的
print("字符串中一共出现",str1.count("张子枫"),"个张子枫")

运行结果如下:
在这里插入图片描述
(2)find()
功能:检索是否包含指定的子字符串,如果检索字符串不存在,则返回-1,否则返回首次出现的该子字符串的索引。

str.find(sub[, start[, end]])
参数含义
str表示原来字符串
sub要检索的子字符串
start可选参数,要检索范围的起始位置,如果不指定,则从头开始
end可选参数,要检索范围的结尾位置,如果不指定,则从一直到结尾

示例:

str1="张子枫发微博称张子枫喜欢张子枫"  
print("字符串中首次出现张子枫的位置是:",str1.find("张子枫"))

在这里插入图片描述
python中还提供了 rfind() 与find类似只不过是从右边开始查找的

(3)index()
index与fing类似,只不过当指定字符串不存在时,会抛出异常。

str.index(sub[, start[, end]])
参数含义
str表示原来字符串
sub要检索的子字符串
start可选参数,要检索范围的起始位置,如果不指定,则从头开始
end可选参数,要检索范围的结尾位置,如果不指定,则从一直到结尾

示例:

str1="张子枫发微博称张子枫喜欢张子枫"  
print("字符串中首次出现张子枫的位置是:",str1.index("张子枫"))

运行结果如下:
在这里插入图片描述
python中还提供了 rindex() 与index类似只不过是从右边开始查找的。
和find差不多,,,,

(4)startswith()
功能:检索字符串是否以指定子字符串开头,如果是返回True否则返回False

str.startswith(prefix[, start[, end]])
参数含义
str表示原来字符串
prefix要检索的子字符串
start可选参数,要检索范围的起始位置,如果不指定,则从头开始
end可选参数,要检索范围的结尾位置,如果不指定,则从一直到结尾

示例:

str1="张子枫发微博称张子枫喜欢张子枫"  
print("字符串是否以张子枫开头:",str1.startswith("张子枫"))

运行结果如下:
在这里插入图片描述
(5)endswith()
功能:判断字符串是否以指定的子字符串结尾,返回值依旧是布尔类型。

str.endswith(suffix[, start[, end]])
参数含义
str表示原来字符串
suffix要检索的子字符串
start可选参数,要检索范围的起始位置,如果不指定,则从头开始
end可选参数,要检索范围的结尾位置,如果不指定,则从一直到结尾

示例:

str1="张子枫发微博称张子枫喜欢张子枫"  
print("字符串是否以张子枫结尾:",str1.endswith("张子枫"))

运行结果如下:
在这里插入图片描述
6.字母大小写转换

(1)lower()
功能:大写字母转换小写字母,如果没有可以被转换的字符,就返回原来字符串,否则就返回新字符串。

str.lower()

示例:

str1="CREDIT card"
print("原字符串:",str1)
print("新字符串:",str1.lower())

运行结果如下:
在这里插入图片描述
(2)upper()
功能:小写字母转换成大写字母

str.upper()

示例:

str1="CREDIT card"
print("原字符串:",str1)
print("新字符串:",str1.upper())

运行结果如下:
在这里插入图片描述
7.除去字符串中的空格和特殊字符
特殊字符:制表符、回车符、换行符等等

(1)strip()
功能:用于除去字符串左右两侧的空格或者特殊字符

str.strip([chars])
参数含义
str表示要处理的字符串
chars可选参数,用于指定要除去的字符,如果不指定,则默认空格和特殊字符

示例

str1="    @CREDIT card  "
print("原字符串",str1)
print("新字符串",str1.strip())
print("新字符串",str1.strip(" @"))

运行结果如下:
在这里插入图片描述
(2)lstrip()
功能:用于除去字符串左侧的空格或者特殊字符

str.lstrip([chars])
参数含义
str表示要处理的字符串
chars可选参数,用于指定要除去的字符,如果不指定,则默认空格和特殊字符

示例:

str1="    @CREDIT card  @"
print("原字符串",str1)
print("新字符串",str1.lstrip())
print("新字符串",str1.lstrip(" @"))

运行结果如下:
在这里插入图片描述
(3)rstrip()
功能:用于除去字符串左侧的空格或者特殊字符

str.rstrip([chars])
参数含义
str表示要处理的字符串
chars可选参数,用于指定要除去的字符,如果不指定,则默认空格和特殊字符

示例:

str1="    @CREDIT card  @"
print("原字符串",str1)
print("新字符串",str1.rstrip())
print("新字符串",str1.rstrip(" @"))

运行结果如下:
在这里插入图片描述
这三个都很类似,只不过是删除位置不同。

8.格式化字符串
这个有点像c语言的输入输出控制格式的那个( printf(“a=%4d”,a) 类似这个,看不懂可以忽略。)

(1)使用%操作符

'%[-][+][0][m][.n]格式化字符'%exp
参数含义
-可选参数,用于指定左对齐,正数前方无符号,负数前方加负号
+可选参数,用于指定右对齐,正数前方加正号,负数前方加负号
0可选参数,表示右对齐,正数前方无符号,负数前方加负号,用0填充空白处(一般与m参数一起使用)
m可选参数,表示占用宽度
.n可选参数,表示小数点后保留几位
格式化字符用于指定类型
exp要转换的项,如果指定的项有多个,需要通过元组的形式来指定但不可以用列表
格式化字符含义格式化字符含义
%s字符串类型(采用 str() 显示)%r字符串类型(采用 repr() 显示)
%c单个字符%o八进制整数
%d(%i)十进制整数%x十六进制整数
%e指数(基底为e)%E指数(基底为E)
%f(%F)浮点数%%字符%

示例:

template =  '编号:%09d\t公司名称:%s\t官网:http://www.%s.com'
context1 = (7,"百度","baidu")
context2 = (8,"学习通","xuexi365")
print(template%context1)
print(template%context2)

运行结果如下:
在这里插入图片描述
(2)使用字符串对象的format()
格式:

str.format(args)

format:用于指定字符串的显示样式
args:用于指定要转换的项,如果有多个项,则用逗号分隔。
创建模板:
格式:

{[index][:[[fill]align][sign][#][width][.precision][type]]}
参数含义
index可选参数,用于指定要设置格式的对象在参数列表中索引位置,索引值从0开始,如果省略,则根据值的先后顺序自动分配
fill可选参数,用于指定空白填充的字符
align可选参数,用于指定对齐方式,<表示内容左对齐、>表示内容右对齐、=表示内容右对齐,将符号放在填充内容最左侧,且只对数字类型有效。
sign可选参数,指定无符号数,+表示正数前方加正号,负数前方加负号、-表示正数前方无符号,负数前方加负号、值为空格表示正数前方加空格,负数前方加负号
#可选参数,对于二进制、八进制和十六进制加上#会显示0b/0o/0x前缀,否则不显示前缀
width可选参数,表示占用宽度
.precision可选参数,表示小数点后保留几位
type可选参数,指定类型
格式化字符含义格式化字符含义
s对字符串类型进行进行格式化b将十进制转化成二进制表示在格式化
c字符将十进制数转化成对应的Unicode字符o将十进制转化成八进制表示在格式化
d十进制整数x/X将十进制转化成十六进制表示在格式化
e/E转换成科学计数法表示在格式化)g/G自动在e和f或者E和F中切换
f/F浮点数(默认小数点保留6位)%显示百分比(默认显示小数点6位)

示例:

template='编号:{:0>9s}\t公司名称:{:s}\t官网:http://www.{:s}.com'
context1=template.format('7','百度','baidu')
context2=template.format('8','学习通','xuexi365')
print(context1)
print(context2)

运行结果如下:
在这里插入图片描述
就是按照格式,缺啥补啥就可以。今天就这样啦,拜拜!

最后喜欢的话关注一下吧!

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我能突破限制.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值