淘先锋技术网

首页 1 2 3 4 5 6 7

字符串:有序的,不可修改的,以引号包围的序列。
这里先来说一下占位符:
%s 字符串占位符
%d 数字占位符
%f 浮点型数字占位符
%.2f 控制浮点型数字占位符
举例:占位符的使用

print('this %s age is %d years old'%('boy',21))
> this boy age is 21 years old

%f 浮点型数字占位符

print('the boy height is %f m'%(1.8))
>>>the boy height is 1.800000 m

我们需要控制身高后面的小数位数,就需要用到控制浮点型数据的占位符 %.2f。

print('the boy height is %.2f m'%(1.8))
>>>the boy height is 1.80 m

字符串的截取:字符串[start:end],包头不包尾。
例如:

str_name = 'beautiful'
print(str_name[1:3])
>>>ea

通过str_name[1:3],从’beautiful’的第一位字母(从零开始)e到第(end-1)位,也就是第二位结束,包含前面的数字,但是不含后面的。如是在字符串中包含空格,空格也占用一个字符位。
字符串的步长截取:字符串[start🔚step],同样是包头不包尾。
例如:

str_name = 'beautiful'
print(str_name[1:5:1])
>>>eaut

这里可以看到,似乎并没有步长截取字符,这是因为步长进行取值是(|step|-1),上示代码步长为一,而实际取值1-1=0。

str_name = 'beautiful'
print(str_name[1:9:2])
>>>euiu

当step>0时,字符串的截取时从左到右的,如上
当step<0时,字符串的截取也是从左到右的,只是将字符串反过来截取。如下代码:

str_name = 'beautiful'
print(str_name[4:6:-1])

程序停止运行,没有结果。这里step<0,我的理解是相当于把字符串颠倒了,但是字符串的下标确是原来的,同时字符串str_name的起始位和截止位也是互换的,所以这里相当于4为截止,6为起始,起始大于截止,程序自然就不能运行,当我们把这两位互换之后,

str_name = 'beautiful'
print(str_name[6:4:-1])
>>>fi

这里,通过上面的代码演示结果,可以看出截取字符串应是从第六位结束(也就是第七个字符,包含第七个字符,步长为负,同时起始位第四位,也就是第五个字符,不包含,头尾只能涵盖一个),也就是beautif,从第六个字符开始,实际截取的字符就只有if,因为步长为负,所以反过来截取,最后得fi。

字符串得查找方法
count 计数功能,返回字符在字符串中的个数
find 查找,返回从左第一个自定字符的索引,找不到返回-1
rfind 查找,返回从右第一个自定字符的索引,找不到返回-1
index 查找,返回从左第一个自定字符的索引,找不到报错
rindex 查找,返回从右第一个自定字符的索引,找不到报错

str_test = 'hello world'
print(str_test.count('l'))
print(str_test.find('e'))
print(str_test.find('p'))
print(str_test.index('p'))
>>>3
   1
  -1
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-24-c1134bdadc14> in <module>
      3 print(str_test.find('e'))
      4 print(str_test.find('p'))
----> 5 print(str_test.index('p'))

ValueError: substring not found

字符串的分割
partition 把mystr以str分割成三部分,str前,str自身和str后

str_test = 'hello world'
print(str_test)
print(str_test.partition('o'))
>>>hello world
('hell', 'o', ' world')

这样,通过print(str_test.partition(‘o’)),使得字符串从’o’分为三部分。

rpartition	类似于 partition()函数,不过是从右边开始.
str_test = 'hello world'
print(str_test)
print(str_test.rpartition('o'))
>>>hello world
('hello w', 'o', 'rld')
splitlines	按照行分隔,返回一个包含各行作为元素的列表,按照换行符分割
str_test = 'hello\n world\n python\n'
print(str_test)
print(str_test.splitlines())
>>>hello
 world
 python

['hello', ' world', ' python']

通过读取换行符来判断对字符串的分割。

split 判断字符串的分隔符切片
只要每隔一个分隔符,就将字符串分割

字符串的替换
replace 从左到右替换指定的元素,可以指定替换的个数,默认全部替换。

str_test = 'hello world python'
print(str_test)
print(str_test.replace('o','a'))

hello world python
hella warld pythan

这样就将字符o,全部替换成a。
字符串的修饰
center 让字符串在指定的长度居中,如果不能居中左短右长,可以指定填充内容,默认以空格填充
ljust 让字符串在指定的长度左齐,可以指定填充内容,默认以空格填充
rjust 让字符串在指定的长度右齐,可以指定填充内容,默认以空格填充
zfill 将字符串填充到指定的长度,不足地方用0从左开始补充
format 按照顺序,将后面的参数传递给前面的大括号
strip 默认去除两边的空格,去除内容可以指定
rstrip 默认去除右边的空格,去除内容可以指定
lstrip 默认去除左边的空格,去除内容可以指定

str_test = ‘for’
print(str_test.center(10))
#center这个里面可以加入两个参数
print(str_test.center(10,‘x’))
运行结果如下:
for
xxxforxxxx
ljust这个里面可以加入两个参数
print(str_test.ljust(10))
print(str_test.ljust(10,‘x’))
print(str_test.rjust(10,‘x’))
运行结果如下:
for
forxxxxxxx
xxxxxxxfor
print(str_test.zfill(10))
运行结果如下:
0000000for
注意:如果传入的大小小于字符串的长度,字符串不变。
str_test = ’ for ’
print(str_test.strip())
‘for’
print(str_test.rstrip())
’ for’
print(str_test.lstrip())
'for ’
python = “{0} is {1}”
print(python.format(‘for’,‘cool’))
运行结果如下:
‘for is cool’

字符串的变形

upper 将字符串当中所有的字母转换为大写
lower 将字符串当中所有的字母转换为小写
swapcase 将字符串当中所有的字母大小写互换
title 将字串符当中的单词首字母大写,单词以非字母划分
capitalize 只有字符串的首字母大写
expandtabs 把字符串中的 tab 符号(’\t’)转为空格,tab
符号(’\t’)默认的空格数是 8,可以试下8,12

字符串的判断

isalnum 判断字符串是否完全由字母或数字组成
isalpha 判断字符串是否完全由字母组成
isdigit 判断字符串是否完全由数字组成
isupper 判断字符串当中的字母是否完全是大写
islower 判断字符串当中的字母是否完全是小写
istitle 判断字符串是否满足title格式
isspace 判断字符串是否完全由空格组成
startswith 判断字符串的开头字符,也可以截取判断
endswith 判断字符串的结尾字符,也可以截取判断

#判断字符串是否完全由字母或数字组成
print('12345a'.isalnum())
#判断字符串是否完全由字母组成
print('abcdef'.isalpha())
#判断字符串是否完全由数字组成
print('12345'.isdigit())
#判断字符串当中的字母是否完全是大写
print('HELLO'.isupper())
#判断字符串当中的字母是否完全是小写
print('hello'.islower())
#判断字符串是否满足title格式
print('Hello'.istitle())
#判断字符串是否完全由空格组成
print(' '.isspace())
#判断字符串的开头字符,也可以截取判断
print('for is long'.startswith('f'))
print('for is long'[3:].startswith('f'))
#判断字符串的结尾字符,也可以截取判断
print('for is long'.endswith('long'))

python中变量大概有以下:
在这里插入图片描述以上相关是自己学习python字符串相关内容的一些笔记,有部分内容来自网络,如果存在错误,请大家指出。