python学习 字符串 一起敲敲键盘

r"""
字符串是不可变数量类型
操作
string.lower() 转小写,结果为一新串
string.upper() 转大写,结果为一新串
string.split(sep=None) 按sep分隔,结果为列表
string.count(x) 字符串中x出现的次数
string.find(x) 查询x是否在字符串中,不存在结果为-1,存在结果为x首次出现的索引
string.index(x) 同fing,但如果x不存在则报错
string.startswith(x) 查询字符串是否以x开头
string.endswith(x) 查询字符串是否以x结尾
string.replace(old,news,count) 使用news替换string中old count次,默认全部替换,结果为一新串
string.center(width,fillchar) 字符串在指定width内居中,可用fillchar填充
string.join(序列) 用string拼接序列中的元素,序列中元素均为字符(串)
string.strip(chars) 从字符串中去掉左侧和右侧chars中列出的字符串
string.lstrip(chars) 从字符串中去掉左侧chars中列出的字符串
string.rstrip(chars) 从字符串中去掉右侧chars中列出的字符串

验证
string.isdigit() 是否都是阿拉伯数字
string.isnumeric() 是否都是数字
string.isalpha() 是否都是字母(包括中文字符)
string.isalnum() 是否都是数字或字母(包括中文字符)
string.islower() 是否都是小写
string.isupper() 是否都是大写
string.istitle() 是否都是首字母大写
string.isspace() 是否都是空白字符(\n \t 等)

格式化
占位符 %s:字符串格式 %d:十进制整数格式 %f:浮点数格式……同c
f-string
string.format() 详细格式控制:……

编码和解码
string.encode(encoding='utf-8',errors='strict/ignore/replace') 编码
                               编不了就报错 忽视编不了的字符 用?代替编不了的字符
bytes.decode(code,encoding='utf-8',errors='strict/ignore/replace') 解码

拼接
string.join(iter)
格式化拼接
+拼接
直接拼接

去重
遍历 not in判断 拼接于新串
集合去除 列表排序 join拼接

正则表达式 import re
re.match(pattern,string,flags=0) 从字符串开始位置进行匹配,如起始位置匹配成功,结果为Match对象,否则为None
re.search(pattern,string,flags=0) 在字符串中搜索第一个匹配的值,如成功,结果为Match对象,否则结果为None
re.findall(pattern,string,flags=0) 在字符串中搜索所有符合正则表达式的值,结果为一列表
re.sub(pattern,repl,string,count=0,flags=0) 替换字符串中指定的子串
re.split(pattern,string,flags=0) 分隔字符串
元字符
. 匹配任意字符,除\n
\w 匹配字母,数字,下划线
\W 匹配非字母,非数字,非下划线
\s 匹配空字符
\S 匹配非空字符
\d 匹配十进制数
限定符,用于限定匹配次数
? 可匹配前面的字符0次或1次
+ 可匹配前面的字符1次或多次
* 可匹配前面的字符0次或多次
{n} 可匹配前面的字符n次
{n,} 可匹配前面的字符最少n次
{n,m} 可匹配前面的字符最小n次,最多m次
其他
[] 匹配[]中指定的字符
[^] 匹配不在[]指定中的字符
| 匹配|左右的任意字符
\ 转义字符
[\u4e00-\u9fa5] 匹配任意一个汉字
分组() 改变限定符作用
"""
import re#导入
string0='HELLO*WORLD'
new0_string0=string0.lower()
print(string0, id(string0), new0_string0, id(new0_string0))
print(string0.upper(), id(string0.upper()))
string0_list=string0.split('*')
print("python print",string0_list[0],"to",string0_list[1])
print('*'.join(string0_list))
print(string0.count('O'))
print(string0.find('O'),string0.find('a'))
print(string0.index('O'))
#print(string0.index('a'))
print(string0.startswith('H'),string0.startswith('h'))
print(string0.endswith('D'),string0.endswith('d'))
print(string0.replace('WORLD','世界'))
print(string0.center(20,'*'))
string1='*-*-*-HELLO WORLD-*-*-*'
print(string1)
print(string1.strip('*-'))
print(string1.lstrip('*-'))
print(string1.rstrip('*-'))

print('123'.isdigit())
print('123一二三壹贰叁ⅠⅡⅢ'.isnumeric())
print('hello你好一二三'.isalpha())#python中汉字被看作字母
print('hello你好123一二三壹贰叁ⅠⅡⅢ'.isalnum())
print('hello你好一二三'.islower())
print('HELLO你好'.isupper())
print('Hello World 你好 世界'.istitle())
print(' \n\t'.isspace())

print("%s,%.2f,print hello world by pycharm,%d"%('python',3.12,2024))
print(f'{'python'},{3.12},print hello world by pycharm,{2024}')
print('{2},{1},print hello world by pycharm,{0}'.format(2024,3.12,'python'))
print('{0:*>20}'.format(string0))#显示宽度20,右对齐,*填充
print('{0:*<20}'.format(string0))
print('{0:*^20}'.format(string0))
print('{0:.5}'.format(string0))
print('{0:.2f}\t{0:.2e}\t{0:.2%}'.format(3.1415926))
print('{0:b}\t{0:d}\t{0:o}\t{0:x}'.format(16))
print('{0:,}'.format(100000000.00))

string2='你好世界✌'
string2_code=string2.encode(errors='replace')#默认utf-8,其中文占3字节
print(string2_code)
string2_gbk=string2.encode('gbk',errors='replace')#gbk中文占2字节
print(string2_gbk)
print(bytes.decode(string2_code,'utf-8',errors='replace'))

patter=r'\d\.\d+'#小于10的小数模式
string3='python3.12 print hello world by pycharm2024.1.4'
match0=re.match(patter,string3,re.I)
print(match0)
string4='3.12python print hello world by 2024.1.4pycharm'
match1=re.match(patter,string4,re.I)#从起始位置匹配
print(match1)
print("匹配值的起始位置:",match1.start())
print("匹配值的结束位置:",match1.end())
print("匹配区间的位置元素的元组:",match1.span())
print("待匹配的字符串:",match1.string)
print("匹配的数据:",match1.group())
match2=re.search(patter,string3)#匹配第一个
print(match2)
match3=re.findall(patter,string3)
print(match3)
match4=re.sub(patter,'xxx',string3)
print(match4)
match5=re.split(patter,string4)
print(match5)

运行结果

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值