Python基础知识(五)——字符串

字符串类型

str类型:python3中所有字符串的类型为str类型
bytes类型:把字符串str经过encode 转换为字节字符串,即bytes类型

a='hello'
type(a) # <class 'str'>

type(a.encode('utf-8')) #<class 'bytes'>
type(a.encode('gbk')) #<class 'bytes'>

字符串运算

a=‘hello’ b=‘Python’

操作符描述实例
+字符串连接a+b 输出结果:‘helloPython’
+重复输出字符串a*2 输出结果:‘hellohello’
[]通过索引获取字符串中字符a[1] 输出结果:‘e’
[:]截取字符串中的一部分a[1:4] 输出结果:‘ell’
in成员运算符-如果字符串中包含给定的字符串返回True‘H’ in a 输出结果:True
not in成员运算符-如果字符串中不包含给定的字符串返回True‘M’ in a 输出结果:True

字符串格式化

符号描述实例
%c格式化字符及其ASCII码‘%c’%67 输出:‘c’ ‘%c’%‘c’ 输出:‘c’
%s格式化字符串‘%s’%‘addd’ 输出 ‘addd’ ‘%s’%123 输出 ‘123’
%d格式化整数‘%d’%123 输出’123’
%u格式化无符号整数‘%u’%123 输出’123’
%o格式化无符号八进制‘%o’%9 输出’11’
%x格式化无符号十六进制‘%x’%15输出’f’
%X格式化无符号十六进制‘%x’%15输出’F’
%e用科学计数法‘%e’%15输出’f’
%f格式化浮点数,可指定小数点后的位数,默认保留6位ke‘’%.2f’%1.2222222222 输出:‘1.22’

Template
Template属于string中的一个类,$identifier 变量由一个占位符替换(key),key去匹配变量 “identifier”

from string import Template
s=Template('There are ${key1} ${key2} Quotaions Symbols')
print(s.substitute(key2='Python',key1=3))
#输出 There are 3 Python Quotaions Symbols

常用字符串操作

  • S.strip([char]) 函数
    • 将字符串的左右[char]去除
    • 默认是把S中前后所有的空白字符全部去除,包括’\n’,’\t’ ,’\r’ ,’ '等不可见字符串
    • 返回处理后的结果
    • 原字符串并未改变
    • lstrip() 将字符串的左边字符内容去除
    • rstrip() 将字符串的右边字符内容去除
s='       boy '
d=s.strip()
#'boy'

s='*boy*'
d=s.strip('*')
#'boy'

s='       boy '
d=s.lstrip()
#'boy '
s='boy *****'
s.rstrip('*')
#'boy '
  • S.lower()
    • 将字符串转变成小写
    • 返回小写字符串
    • 原字符串未改变
s='ABCDEF'
d=s.upper()
#'abcdef'
  • S.upper()
    • 将字符串转变为大写
    • 返回大写字符串
    • 原字符串未改变
 s='abcdef'
 d=s.upper()
 #'ABCDEF'
  • S.swapcase()
    • 将字符串大小写互换
    • 返回互换后的字符串
    • 原字符串未改变
s='AbCdEf'
d=s.swapcase()
#'aBcDeF'
  • S.capitalize()
    • 将字符串的首个字母转换未大写
    • 返回转换后的字符串
    • 原字符串未改变
s='abcdwf ww'
d=s.capitalize()
#Abcdwf ww
  • String.capwords(s)
    • 将字符串中的每个单词首字符转换为大写
    • string模块中的方法,利用split()函数,capitalize()、最后用join()函数实现
    • 返回转换后的字符串
    • 原字符串未改变
import string
s='a b c'
d=string.capwords(s)
#'A B C'
  • S.ljust(width,[fillchar]) 、S.rjust(width,[fillchar])
    • 将字符串按照width宽度输出,并且左对齐,不足部分用fillchar填充,默认为空格
    • 返回对齐后的字符串
    • 原字符串未改变
s='123abc'
s.ljust(10,'*')     #'123abc****'
s.rjust(10,'*')     #'****123abc'
s.rjust(10)		 	#'    123abc'
  • S.center(width,[fillchar])
    • 将字符串按照width居中对齐
    • 返回对齐后的字符串
    • 原字符串未改变
s='123abc'
s.center(10,'*')     #'**123abc**'
  • S.zfill(width)
    • 将字符串按照width输出,并且右对齐,不足部分用零补齐
    • 返回对齐后的字符串
    • 原字符串未改变
s='123abc'
s.zfill(20)        #'00000000000000123abc'
  • S.find(substr,[start,[end]])
    • 在指定字符串范围内,查找子字符串出现的位置
    • S中存在substr,则返回substr的第一个字母的位置,否则返回-1
s='I am a boy'
s.find('a')           #2
s.find('a',3)        #5
s.find('a',6,7)     #-1
  • S.index(substr,[start,[end]])
    • 在指定字符串范围内,查找子字符串出现的位置
    • S中存在substr,则返回substr的第一个字母的位置,否则会返回一个错误
s='I am a boy'
s.index('boy',1)      #7
s.index('boy',1,13)   #7
s.index('boy',1,8)    #substring not found

  • S.replace(oldstr,newstr,[count]]
    • 实现替换指定字符串
    • 返回替换后的字符串
    • 原字符串未改变
s='boy boy boy'
s.replace('b','*')  #'*oy *oy *oy'
s.replace('b','*',1) #'*oy boy boy'
  • S.split([sep,[maxsplit])
    • 用指定字符串将字符串分割
    • sep,分割符,maxsplit 分割的次数,默认的分割符未空白字符
    • 返回分割后的列表
    • 原字符串未改变
s='1 2 3 4 5 6 7'
s.split() #['1', '2', '3', '4', '5', '6', '7']
s='1*2*3*4*5*6*7'
s.split('*',3)  #['1', '2', '3', '4*5*6*7']
s.split()[1] #'2'
s='boy*boy*boy'
s.rsplit('*') #['boy', 'boy', 'boy']
s.rsplit('*',1) #['boy*boy', 'boy']
  • S.join(list)
    • 将列表用字符串s拼接为新的字符串
    • 返回拼接后的字符串
s=['Brazil','Russia','Indai','China']
''.join(s)  #'BrazilRussiaIndaiChina'
'*'.join(s) #'Brazil*Russia*Indai*China'
  • S.startwith(substr)
    • 判断字符串是否以某个字符串为开头
    • 返回True False
name='Swaroop'
if name.startswith('Swa'):
	print('Yes')
else:
	print('No')
  • S.endswith(substr)
    • 判断字符串是否以某个字符串为结束
    • 返回True False
name='Swaroop'
if name.endswith('p'):
	print('Yes')
else:
	print('No')
	
  • S.isalpha()
    • 判断字符串是否全部有字母组成
    • 返回True False
name='Swaroop'
if name.isalpha():
	print('Yes')
else:
	print('No')
  • S.isalnum()
    • 判断字符串是否全部有字母或数字组成
    • 返回True False
alnum='123abc'
if alnum.isalpha():
	print('Yes')
else:
	print('No')
  • S.isdigit()
    • 判断字符串是否全部由数字组成
    • 返回True False
alnum='123abc'
if alnum.isalpha():
	print('Yes')
else:
	print('No')
  • S.isspace()
    • 判断字符串是否全部由空格组成
    • 返回True False
s='        '
if s.isspace():
	print('Yes')
else:
	print('No')
  • S.islower()
    • 判断字符串是否全部是小写字母
    • 返回True False
a='abcdef'
if a.islower():
	print('Yes')
else:
	print('No')
  • S.isupper()
    • 判断字符串是否全部是小写字母
    • 返回True False
a='abcdef'
if a.isupper():
	print('Yes')
else:
	print('No')
  • S.count(substr,[start,[end])
    • 统计在字符串范围内出现指定字符串的次数
    • 返回统计字符串的个数,没有返回0
s='boy boy boy'
s.count('boy')  #3
s.count('b',3,6) #1
s.count('dd')   #0

注:整理于光荣之路吴老的pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值