python 字符串 1.简介,2.查询,3.大小写转换,4.对齐,5.分割\拆分,6.判断字符串的格式,7.替换\合并,8.比较,9.切片,10.格式化字符串,11.字符串的编码与解码

  1. 字符串是python中的基本数据类型,是不可变序列相同的字符串只会保留一份(称作字符串驻留机制),字符串变量保存的是指向字符串的地址。字符串的索引与一维列表相同
    因为字符串是不可变序列,所以针对字符串的操作都不会改变原字符串,而是生成新的字符串。
    字符串的创建使用单引号、双引号、三引号都可以。
a, b, c = 'hello', "hello", '''hello'''
print(id(a), id(b), id(c))  # 三者的id值是相同的(pycharm软件中)
  1. 字符串查询方法,有index()方法、rindex()方法、find()方法、rfind()方法
    (1)index()方法查找子串第一次出现的位置,找不到则抛出ValueError;
    (2)rindex()方法查找子串最后一次出现的位置,找不到则抛出ValueError;
    (3)find()方法查找子串第一次出现的位置,找不到则返回-1;
    (4)find()方法查找子串最后一次出现的位置,找不到则返回-1;
str1 = 'hello_hello'
print(str1.index('ll'))  # 输出2
print(str1.find('ll'))  # 输出2
print(str1.rindex('ll'))  # 输出8
print(str1.rfind('ll'))  # 输出8
  1. 字符串大小写转换,包括upper()方法、lower()方法、swapcase()方法、capitalize()方法、title()方法
    (1)upper()方法将字符串中所有的字符都转换为大写;
    (2)lower()方法将字符串中所有的字符都转换为小写;
    (3)swapcase()方法将大写变为小写,小写变为大写;
    (4)capitalize()方法将第一个字符转换为大写,其余都转换为小写;
    (5)title()方法将每个单词的第一个字符转换为大写,每个单词剩余的部分转换为小写。

  2. 字符串对齐操作,有center()方法、ljust()方法、rjust()方法、zfill()方法
    (1)center()方法为居中对齐,第一个参数指定宽度,这个宽度可以理解为页面显示的总宽度,第二个参数指定填充符,默认为空格;
    (2)ljust()方法为左对齐,第一个参数指定宽度,第二个参数指定填充符,默认为空格;
    (3)rjust()方法为右对齐,第一个参数指定宽度,第二个参数指定填充符,默认为空格;
    (4)zfill()方法为右对齐,只有一个参数,为指定的宽度,填充符为0。这个方法较为实用,很多时间序列文件的命名为了保证相同的长度,都会填充0;采用循环来获取这些文件时,就要用到该方法

str1 = 'hello'
print(str1.center(15, '-'))  # 输出为'-----hello-----'
str2 = '1'
print(str1.zfill(3))  # 输出为'001'
  1. 字符串分割、拆分,有split()方法、rsplit()方法
    (1)split()方法从字符串的左侧开始分割,返回一个列表;参数sep指定分割符,默认是空格;参数maxsplit指定最大分割次数,超过最大次数后不再分割;
    (2)rsplit()方法从字符串的右侧开始分割,返回一个列表;参数sep指定分割符,默认是空格;参数maxsplit指定最大分割次数,超过最大次数后不再分割。
str1 = 'hello_world_haha'
print(str1.split(sep='_', maxsplit=1))  # 输出为['hello', 'world_haha']
  1. 判断字符串的格式,有isidentifier()方法 、isspace()方法、isalpha()方法、isdecimal()方法、isnumeric()方法、isalnum()方法
    (1)isidentifier()方法判断字符串是否为合法的标识符,返回True或False;合法的标识符只由字母、数字、下划线构成;
    (2)isspace()方法判断字符串是否全部由空白的字符串构成,空白字符串包括回车、换行、水平制表符;
    (3)isalpha()方法判断字符串是否全部由字母构成;
    (4)isdecimal()方法判断字符串是否全部由十进制的数字构成;
    (5)isnumeric()方法判断字符串是否全部由数字构成
    (6)isalnum()方法判断字符串是否全部由字母和数字构成。
print('3三'.isnumeric())  # 输出True,中文的数字也能识别出来
  1. 字符串替换replace()方法字符串合并join()方法
    (1)replace()方法进行字符串替换操作,第一个参数指定被替换的子串,第二个参数指定替换子串的字符串,第三个参数指定最大替换次数,默认全部替换;方法返回替换后的字符串,原字符串不发生变化;
    (2)join()方法进行字符串的合并,将列表或元组中的字符串合并成一个字符串,该方法不同于加号’+‘的字符串拼接。join()方法用起来不如加号’+‘直观,但其效率比加号’+'高,因为其只用新创建一次对象。
str1 = 'hello_world_hello_world'
print(str1.replace('hello', 'haha', 1))  # 输出haha_world_hello_world

list1 = ['hello', 'world', 'haha']
print(''.join(list1))  # 输出helloworldhaha
print('_'.join(list1))  # 输出hello_world_haha
print('_'.join('hello'))  # 输出h_e_l_l_o, 其将普通字符串视为字符串序列
# join()方法用起来不如加号'+'直观,但其效率比加号'+'高
print('hello' + '_' + 'world')  # 输出'hello_world'
  1. 字符串比较操作,字符串可以通过运算符进行比较,>、>=、<、<=、==、!=都可以。is比较的是地址,不是值。
    字符串比较的规则是对应位置的字符依次比较,首先比较第一个字符,若不相等则输出True或者False,若相等则继续比较下一个字符。比较的值就是字符所对应的ASCII码大小,使用内置函数ord()可以获得。
print(ord('0'), ord('9'), ord('A'), ord('a'))  # 输出48,57,65,97
print('a'>'A')  # 输出True
  1. 字符串切片字符串的索引与一维列表相同。因为字符串是不可变序列,所以针对字符串的操作都不会改变原字符串,而是生成新的字符串。
str1 = 'hello_world'
print(str1[:5] + ' ' + str1[6:])  # 输出'hello world'
  1. 格式化字符串指的是按照一定格式输出的字符串,较为常用。格式化时可以指定宽度与精度。格式化字符串的占位符有三种(不太好解释,建议直接看例子):
    (1)以%作为占位符,%s代表字符串,%d或%i代表整数,%f代表浮点数;
    (2)以{}作为占位符,{索引}来表示占位的值;
    (3)以{}作为占位符,直接使用变量的名称。
# %格式
print('你的账号名称是%s,你已累计登陆%d天,累计充值%.1f元。' % ('林间夏鸣',397,1090.5))  
# 输出'你的账号名称是林间夏鸣,你已累计登陆397天,累计充值1090.5元。';注意%号后的括号是元组。

# {}格式1
print('你的账号名称是{0},你已累计登陆{1}天,累计充值{2}元。'.format ('林间夏鸣',397,1090.5))  
# 输出'你的账号名称是林间夏鸣,你已累计登陆397天,累计充值1090.5元。';注意最后使用的是format()方法。

# {}格式2
name, day, money = '林间夏鸣', 397, 1090.5
print(f'你的账号名称是{name},你已累计登陆{day}天,累计充值{money}元。')
# 输出'你的账号名称是林间夏鸣,你已累计登陆397天,累计充值1090.5元。';注意最前面要加一个'f'。

# 控制格式化时的宽度与精度
print('%8.2f' % 123.321)  # 输出'  123.32',前面有两个空格,8代表总的宽度(小数点也占一位),宽度不指定时输出全部的整数位;2代表小数点后的位数(精度),会进行四舍五入。
print('{0:.3}'.format(123.321))  # 输出123,.3表示保留3位数
print('{0:.1}'.format(123.321))  # 输出1e+02
print('{0:.2f}'.format(123.321))  # 输出123.32,.2f表示保留2位小数
print('{0:10.2f}'.format(123.321))  # 输出'    123.32',10表示宽度
  1. 字符串的编码与解码。通过encode()方法与decode()方法可以对字符串进行编码与解码。
str1 = '林间夏鸣'
bin1 = str1.encode(encoding='UTF-8'))  # 将字符串转换为二进制,默认就是UTF-8
print(bin1)
print(bin1.decode(encoding='UTF-8'))  # 将二进制转换为字符串,默认就是UTF-8
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值