python-字符串

字符串

很多语言使用string表示字符串,但python中使用str表示字符串

1,str
2,转义字符
3,格式化
4,内建函数

1,str字符串

表示文字信息,用单引号、双引号、三引号括起来

# 单引号
s = 'zhang'
print(s)
# 双引号
a = "shao"
print(a)
# 三引号
b = """
zhang
shao
lei
"""
print(b)

在这里插入图片描述

2,转义字符

用一个特定的方式表示出一系列不方便表示的内容,比如:回车键,换行符。
借助反斜杠字符,一旦字符串中出现反斜杠,则反斜杠后面你的一个或者几个字符,表示不是原来的意思了,进行了转义。
在字符串中,出现反斜杠要加倍小心,可能有转义字符出现。
不同的操作系统对换行操作有不同的表示
windows:\n
linux:\r\n
方法:
1,使用反斜杠——“\”
2,使用单双引号嵌套
3,用两个反斜杠表示一个反斜杠——“\”
4,换行用 \n

# 转义字符的案例
# 想表达Let's Go
# 使用转义字符
s = 'Let\'s Go'
print(s)

# 使用单双引号嵌套
s = "Let's Go"
print(s)

# 表示斜杠
# 如c:\User\Administrator
s = "c:\\User\\Administrator"
print(s)

# 回车换行
s = "zhang\nshao\nlei"
print(s)

在这里插入图片描述常用的转义字符
\a 响铃
\b 退格(Backspace)
\e 转义
\000 空
\n 换行
\t 横向制表符
\v 纵向制表符
\r 回车
\f 换页

单个斜杠的用法
在python中,单个饭斜杠表示此行为结束,处于美观,需要下一行继续

# 案例
# 理论上应该写成def myDemo(x,y,z)
def myDemo(x,\
		   y,\
		   z):
	print("aaaaa")
myDemo(1,2,3)

在这里插入图片描述

3,格式化

把字符串按照一定的格式进行打印或填充
分类:
传统格式化
format

1,传统格式化
使用%进行格式化,%(百分号)也叫占位符
%d, %i,代表整数,%f-浮点,%s,字符串,%c,char. %p 指针,%fL 长long,%e科学计数,%g 小数或科学计数。
C语言中的格式占位符:
%a,%A 读入一个浮点值(仅C99有效)
%c 读入一个字符
%d 读入十进制整数
%i 读入十进制,八进制,十六进制整数
%o 读入八进制整数
%x,%X 读入十六进制整数
%s 读入一个字符串,遇空格、制表符或换行符结束。
%f,%F,%e,%E,%g,%G 用来输入实数,可以用小数形式或指数形式输入。
%fm.n m表示域宽,n表示小数点后面的数字的个数
%p 读入一个指针
%u 读入一个无符号十进制整数
%n 至此已读入值的等价字符数
%[] 扫描字符集合
%% 读%符号

占位符可以单独使用
占位符一般只能被同类型转换或者替换类型能被转换成占位符的类型
如果格式化的信息是多个,则用括号括起来就可以

# 用%s表示一个简单的字符串
# 占位符可以单独使用
s = "I Love %s"
print(s)

# 占位符
#s = "I Love %s"
print(s%"zhang")

print("I Love %s"%"zhangshao")

在这里插入图片描述2,format格式化
语法:
format(参数列表)
format函数是使用{}来进行占位的

(1)不用指定位置,按顺序读取

# 方式1
s = "{} {}!"
print(s.format("Hello","你好啊!")

# 方式2 
a = "{} {}!".format("Hello","你好啊!")
print(a)

在这里插入图片描述(2)设置指定位置

s = "{0} {1}!".format("Hello","你好啊!")
print(s)

s = "{1} {1}!".format("Hello","你好啊!")
print(s)

s = "I love {0} and {0} love me".format("zhang")
print(s)

在这里插入图片描述
(3)使用命名参数

# 使用命名参数
s = "我们是{name1},我们爱{name2}"
s = s.format(name1="zhang",name2="shao")
print(s)

在这里插入图片描述
(4)通过字典设置参数,需要解包

语法:
变量名 = “{参数1} {参数2}”
变量名_dict = {“参数1”:“具体值”,“参数2”:“具体值”}
变量名1=变量名.format(**变量名_dict)
print(变量名1)

# 使用字典设置参数,需要解包
s = "我们是{name1},我们爱{name2}"
s_dict = {"name1":"zhang","name2":"shao"}
s =s.format(**s_dict)
print(s)

在这里插入图片描述

4,str内置函数

分类:
1,字符串查找类 find,index,islower
find():查找字符串中是否包含一个子串
index():跟find的唯一区别是index如果找不到就会引发错误
rfind,lfind:从左边开始查找或者从右边开始查找

find()的例子

# find 
s = "zhangshaolei"
s1 = "shaozhang"
# 返回第一个发现这个字符串的位置
s.find(s1)

# 返回-1表示没有找到
s2 = "li"
s.find(s2)

在这里插入图片描述
在这里插入图片描述
index()的例子

s = "zhangshaolei"
s1 = "shao"
s.index(s1)

在这里插入图片描述

s = "zhangshaolei"
s2 = "li"
s.index(s2)

在这里插入图片描述
2,判断类函数
此类函数的特点是一般都用is开头,比如islower

isalpha():判断是否是字母,需要注意两点:
(1)此函数默认的前提是字符串至少包含一个字符,如果没有,同样返回false.
(2)汉字被认为是isalpha,所以,此函数不能作为区分英文字母还是汉字的标识,区分中英文请使用unicode码。
注意使用区别

# 以下三个都不是的,因为除了有字母以外还要空格等
s1 = "我们都是好人,不说对吗?"
s2 = "zhang is good man"
s3 = "zhang.shao is the 1.st"
print(s1.isalpha())
print(s2.isalpha())
print(s3.isalpha())

在这里插入图片描述
isdigit(),isdecimal(),isnumeric():三个判断数字的函数,此类函数不建议使用,在后期爬虫中,建议使用正规表达式的方法。

# 需要注意的是,因为输入法的问题,输入罗马数字可能得不到我们想要的结果
num = "一二三四"
print(num.isdigit())
print(num.isnumeric())
print(num.isdecimal())

在这里插入图片描述islower:判断是否是大写还是小写

3,内容判断类
startswith/endswith:是否以xxx开头或者结尾
(1)检测一个字符串是否以某个子串开头,常用三个函数
suffix:被检查的字符串必须有
start:检查范围的开始范围
end:检查范围的结束范围

zhang = "zhangshao"
shao = "shao"
s = "zhangshao is shao"
print(s.startswith(zhang))
print(s.endswith(shao))

在这里插入图片描述
4,操作类函数
format():格式化用的
strip():这个函数的主要作用是删除字符串两边的空格,其实这个函数允许你去定义删除字符串两边的那个字符,只不过如果不指定的话默认是空格。同时还有lstrip和rstrip,此处的l和r分别表示左边右边,即删除字符串左边或者右边的字符,默认是空格。需要注意的是,此处的删除不是删除一个,是指从头开始符合条件的连续字符。strip相似的函数还包括rstrip()和lstrip()。
join():这个函数主要是对字符串进行拼接。它需要一个可以迭代的内容作为参数,功能是吧迭代的字符串拼接在一起,中间使用调用字符串作为分隔符。

strip()的例子

s = "DDD is zhang "
# 是否成功删除两边的空格不能观察出来
print(s.strip())

在这里插入图片描述优化:

s = "DDD is zhang "
print(s.strip(),end="----")

在这里插入图片描述
join()的例子

# join的例子,我们使用s1,s2,s3作为分隔符,把ss里面的类容拼接在一起。
s1 = "$"
s2 = "-"
s3 = " "
ss = ["zhang","shao","lei"]# []表示列表
print(s1.join(ss))
print(s2.join(ss))
print(s3.join(ss))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值