python基础类型—字符串

字符串str

用引号引起开的就是字符串(单引号,双引号,多引号)

1、字符串的索引与切片。

 索引即下标,就是字符串组成的元素从第一个开始,初始索引为0以此类推。

a = 'ABCDEFGHIJK'
print(a[0])
print(a[3])
print(a[5])
print(a[7])

切片就是通过索引(索引:索引:步长)截取字符串的一段,形成新的字符串(原则就是顾头不顾腚)。

复制代码
a = 'ABCDEFGHIJK'
print(a[0:3])
print(a[2:5])
print(a[0:]) #默认到最后
print(a[0:-1]) #-1就是最后一个
print(a[0:5:2]) #加步长
print(a[5:0:-2]) #反向加步长
复制代码

2、字符串常用方法。

首字母大写,其他小写
a = 'lkAAAjh'
print(a.capitalize())
大小写翻转
a = 'lkAAAjh'
print(a.swapcase())
每个单词的首字母大写,中间不论是空格,特殊符号都可以看成区分单词的标志
a = 'kajah lakaj ijhy'
print(a.title())
内同居中,总长度,空白处填充
a = 'akjh'
a1 = a.center(20,'#')
print(a1)

结果 ########akjh########
字符串中元素出现的次数
a = 'akjh2jh23kj2k3'
a1 = a.count('2')
print(a1)

结果  3

a2 = a.count(‘2’,0,7)    可切片,顾头不顾尾
print(a1)

结果是 1

 

name = 'abD'
print(name.upper())#所有值变大
print(name.lower())#所有值变小

 

a2 = "hqw\t"
#\t前面的补全
# 默认将一个tab键变成8个空格,如果tab前面的字符长度不足8个,则补全8个,如果tab键前面的字符长度超过8个不足16个则补全16个,以此类推每次补全8个。
ret4 = a2.expandtabs()
print(ret4)
startswith检测字母开头,返回ibool值
a2 = "hq11111w"
a3 = a2.startswith('h')
print(a3)

结果 True
检测第几位是不是指定元素
a2 = "hq11111w"
a3 = a2.startswith('h',4)
print(a3)
结果 False


endswith检测字母结尾,可切片 a2 = "hq11111w" a4 = a2.endswith('w')# a4 = a2.endswith('w',3,6) 切片,顾头不顾尾 print(a4) 结果 True
find寻找字符串中的元素是否存在,找到返回索引,找不到返回-1
a = 'lkjuhygtiiuyt'
b = a.find('hyg',2,7)
print(b)
index 检测字符串中的元素是否存在,找到返回索引,找不到报错
a = 'lkjhgfdsaweyijhg'
b = a.index('dsa',0,8)
print(b)
split  rsplit  两者开始方向相反,以什么分割,最终形成一个列表,词列表不包含此元素
a = 'title,Tital,itae,yu,'
print(a.split('t'))


a = 'title,Tital,itae,yu,'.split('t')
print(a)

分割几次
a = 'title,Tital,itae,yu,'.split('t',2)
print(a)
如上便是只分割前两个t
rsplit开始方向相反
format的三种应用  格式化输出
res = '{} {} {}'.format('xiaoming',18,'male')
print(res)
res = '{1} {0} {2} {1} {2} {0} {0}'.format('xiaoming',18,'male')
print(res)
res = '{name} {age} {sex}'.format(sex='male',name='xiaoming',age=18)
print(res)

结果 xiaoming 18 male   
      18 xiaoming male 18 male xiaoming xiaoming
      xiaoming 18 male
strip lstrip rstip  
name='*egon**'
print(name.strip('*'))    去掉全部*
print(name.lstrip('*'))    去掉左边的*   light
print(name.rstrip('*'))    去掉右边的*  rest

结果   egon
         egon**
         *egon
replace替换
a = 'abc uyt aba  abc  tgd bgf'
b = a.replace('abc','sb',1)      #去掉,用sb替换全部abc
print(b)                          #,1表示用sb替换掉第一个abc

结果 sb uyt aba  abc  tgd bgf

 

#####is系列
name='jinxin123'
print(name.isalnum()) #字符串由字母或数字组成
print(name.isalpha()) #字符串只由字母组成
print(name.isdigit()) #字符串只由数字组成
print(name.isspace()) #字符串是否是空

 

注意:
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。

 3,Python的转译字符

\  在行尾时         续行符                                                              
\\反斜杠符号
\'单引号
\"双引号
\a响铃
\b退格Backspace
\e转译
\000
\n换行
\v纵向制表符
\t横向制表符
\r回车
\f换页
\oyy八进制,yy代表的字符。例如:\o12代表换行
\xyy十六进制,yy代表的字符。例如:\x0a代表换行
\other其他的字符以普通格式输出
  

 4、Python字符串运算符

操作符描述实例
+字符串连接a + b 输出结果: HelloPython
*重复输出字符串a*2 输出结果:HelloHello
[]通过索引获取字符串中字符a[1] 输出结果 e
[ : ]截取字符串中的一部分,遵循左闭右开原则,str[0,2] 是不包含第 3 个字符的。a[1:4] 输出结果 ell
in成员运算符 - 如果字符串中包含给定的字符返回 True'H' in a 输出结果 True
not in成员运算符 - 如果字符串中不包含给定的字符返回 True'M' not in a 输出结果 True
r/R原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母 r(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
print( r'\n' ) print( R'\n' )
%格式字符串请看下一节内容。
5、Python字符串格式化符号
符   号描述
      %c 格式化字符及其ASCII码
      %s 格式化字符串
      %d 格式化整数
      %u 格式化无符号整型
      %o 格式化无符号八进制数
      %x 格式化无符号十六进制数
      %X 格式化无符号十六进制数(大写)
      %f 格式化浮点数字,可指定小数点后的精度
      %e 用科学计数法格式化浮点数
      %E 作用同%e,用科学计数法格式化浮点数
      %g %f和%e的简写
      %G %f 和 %E 的简写
      %p 用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号功能
*定义宽度或者小数点精度
-用做左对齐
+在正数前面显示加号( + )
<sp>在正数前面显示空格
#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')
0显示的数字前面填充'0'而不是默认的空格
%'%%'输出一个单一的'%'
(var)映射变量(字典参数)
m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

Python2.6 开始,新增了一种格式化字符串的函数 str.format(),它增强了字符串格式化的功能。

6、Unicode 字符串

在Python2中,普通字符串是以8位ASCII码进行存储的,而Unicode字符串则存储为16位unicode字符串,这样能够表示更多的字符集。使用的语法是在字符串前面加上前缀 u

在Python3中,所有的字符串都是Unicode字符串。

 

 








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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值