Python-数据类型:字符串

0 前言

>>返回Python系列文章目录<<

1 字符串的重要特性

1.1 创建字符串

  1. Python没有单字符,只有字符串,单引号和双引号等效
x1 = ''  # 空字符串
x2 = 'abc'
x3 = str(123)

  1. 三个单引号或者双引号创建多行字符串
a = '''
x
y
z
'''

1.2 转义字符

转义字符说明
\'单引号‘
\"双引号“
\\反斜杠\
\n换行
\(在行尾)续行符
\tTAB键

1.3 字符串加法和乘法

x = 'a' + 'b'
y = 'ab' * 3
x = x + 'c'
>>>x = 'ab'
>>>y = 'ababab'
>>>x = 'abc'

1.4 字符串切片 slice

对字符串x= 'abcde' 的每一个字符有两种定位方式:

字符串abcde
正序定位01234
逆序定位-5-4-3-2-1

使用[start:end:step]选择区域,step默认为1,记住包头不包尾(包括start,不包括end

x = 'abcde'
x = x[1]     # 'b'
x = x[-4]    # 'b'
x = x[:]     # 'abcde'
x = x[2:]    # 'cde'
x = x[:2]    # 'ab'
x = x[:-2]   # 'abc'
x = x[-2:]   # 'de'
x = x[2:4]   # 'cd'
x = x[0:4:2] # 'ac'
x = x[::-1]  # 'edcba'

2 print函数

print说明
print(obj1, ... objn, sep=' ', end='\n')obj -> 可以是变量或者直接字符串
sep -> 多个obj之间的分隔符,默认为空格
end -> 结尾字符,默认为\n
print('sxt1', end='连接')
print('sxt2')
print('sxt3')
>>>sxt1连接sxt2
>>>sxt3

  1. print同样支持格式控制符
a = 'lili'
b = 16
print('my name is %s and %d years old' %(a,b))

>>>
'my name is lili and 16 years old'

  1. print可以和format合用
a = '小明'
b = 18
print('我叫{0},年龄{1}'.format(a,b))

>>>
'我叫小明,年龄18'
  1. print可以指定输出到文件
print('输出到文件'file='run.log')

3 字符串方法

字符串是不可变数据,体现为字符串的方法都不会修改字符串自身,必须使用=赋值给新变量才有意义

新变量可以与原字符串同名,本质是创建同名变量接收结果,并撤销原变量


  • 数据处理方法
self = String类说明
len(self) -> num字符串长度
self[start:end:step] -> str字符串的切片只能读取,不能赋值
self.index(substr) -> index
self.index(substr) -> Exception
返回substr首位在字符串self中的下标
没有则报ValueError
self.find(substr) -> index
self.find(substr) -> -1
返回子串substr首位在字符串self中的下标
没有则返回-1
self.count(substr) -> num返回字串substr在字符串self中出现次数
self.replace(oldstr, newstr) -> stroldstr换成newstr,返回字符串
找不到oldstr则返回原字符串
self.split(substr) -> [str, str]以子串substr分隔字符串,默认为空格。返回[str0, str1]
self.partition(substr) -> (str, str, str)字符串分割为substr前,substrsubstr后,默认substr为空格
返回(str0, substr, str1)
self.join(list) -> str使用字符串self连接列表中的字符串。返回字符串
list->字符串列表

  • 文字排版方法
self = String类说明
self.capitalize() -> str全句第一个字符大写
self.title() -> str单词第一个字符大写
self.upper() -> str全部字符大写
self.lower() -> str全部字符小写
self.swapcase() -> str全部字符大小写对换
self.strip(substr) -> str去除字符串首尾的子串substr,默认substr为空格
self.lstrip(substr) -> str去除字符串左边的子串,默认substr为空格
self.rstrip(substr) -> str去除字符串右边的子串,默认substr为空格
self.center(n, substr) -> str居中对齐,用子串将字符串填充到n
self.ljust(n, substr) -> str向左对齐,用子串将字符串填充到n
self.rjust(n, substr) -> str向右对齐,用子串将字符串填充到n

3.1 字符串代替 replace

x = 'abcdec'
x = x.replace('c','高')

>>>x = 'ab高de高'

可以指定替换执行的次数

x = 'abcdec'
x = x.replace('c','高', 1)

>>>x = 'ab高dec'

3.2 字符串插入 insert

insert表示在index前一位插入指定的字符串,index=0时插在开头

x = 'abcde'
x = x.insert(1,'高')
>>>x = 'a高bcde'

3.3 字符串移除 remove pop

remove表示删除第一次出现的指定字符串

x = x.remove('*') # 删除第一次出现的*号

pop表示删除index及以后的字符,默认为-1,即删除最后一位

x = x.pop()
x = x.pop(2)

3.4 字符串分割 split partition

x = 'ab cde'
x1 = x.split() #默认以空格分隔
x1 = x.split('c')
x2 = x.partition()
x2 = x.partition('c')
>>>x1 = ['ab', 'cde']
>>>x1 = ['ab ', 'de']
>>>x2 = ('ab', ' ', 'cde')
>>>x2 = ('ab ', 'c', 'de')

3.5 字符串换行 splitlines

splitlines将字符串按换行符\n分割,默认不保留换行符本身,除非选择keepends=True

x = 'ab\ncde'
x3 = x.splitlines(keepends=True)
print(x3)
>>>x3 = ['ab\n', 'cde']

3.6 字符串连接 join

x = '*'.join(['good','man'])
y = ''.join(['good','man'])
>>>x = 'good*man'
>>>y = 'goodman'

3.7 字符串第一次出现位置 find, index, rfind, rindex

find方法如果没找到,则返回-1
rfind是返回最后一次出现的index

x.find('*', start=None, end=None) # '*'第一次出现位置

# 判断是否存在
if(x.find != -1):
    # code

index方法如果没找到,则返回ValueError
rindex是返回最后一次出现的index

x.index('*', start=None, end=None) # '*'第一次出现位置

# 应该存在,否则报错
try:
    x.index()
except:
    # code

3.8 字符串出现次数 count

x.count('*', start=None, end=None) # '*'出现次数

3.9 字符串前后缀 startswith endswith

boolen = x.startswith ('ar', start=None, end=None) # 是否以'ar'开头
boolen = x.endswith('txt', start=None, end=None) # 是否以'txt'结尾

3.10 字符串格式化 format

x = '我叫{0},年龄{1}'.format('小明',18)
y = '我叫{name},年龄{age}'.format(name = '小明', age = 18)
>>>x = '我叫小明,年龄18'
>>>y = '我叫小明,年龄18'

3.11 字符串大小写转换

x = ‘I love you, I LOVE YOU’
# 句首字母大写
y1 = x.capitalize() # y1='I love you, i love you'
# 词首字母大写
y2 = x.title()     # y2='I Love You, I Love You'
# 全大写
y3 = x.upper()     # y3='I LOVE YOU, I LOVE YOU'
# 全小写
y4 = x.lower()     # y4='i love you, i love you'
# 大小写对换
y5 = x.swapcase()  # y5='i LOVE YOU, i love you'

3.12 字符串去除收尾信息 strip

x = '*I*love*you*'
y1= x.strip('*')   # y1='I*love*you'
y2= x.lstrip('*')  # y2='I*love*you*'
y3= x.rstrip('*')  # y3='*I*love*you'

3.13 字符串填充首尾信息 center, ljust

x = 'Love'
y1= x.center(10, '*')  # y1='***Love***'
y2= x.ljust(10, '*')   # y2='Love******'
y3= x.rjust(10, '*')   # y3='******Love'

4 特殊字符串

4.1 raw字符串

raw字符串是不使用反斜杠\转义功能的字符串,用r表示

通常用于表示Window下的路径或者正则表达式

a = r'C:\Windows'
b = 'C:\\Windows'
a is b

4.2 format字符串

format字符串是字符串格式化format方法的简化形式,用f表示

name = '小明'
age = 16
a = f'{name}今年{age}岁'
print(a) # 小明今年16岁

format字符串允许使用函数:

name = '小明'
age = 16.0
a = f'{name}今年{int(age)}岁'
print(a) # 小明今年16岁

>>返回Python系列文章目录<<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值