Python(字符串)

方法名描述说明

str.lower()     

将str字符串全部转化为小写字母,结果为一个新的字符串
str.upper()将str字符串全部转化为大写字母,结果为一个新的字符串
str.split(sep=None)将str按照指定的分隔符sep分隔,结果为列表类型
str.count(sub)结果为sub这个字符串在str中出现的次数
str.find(sub)查询sub这个字符串在str中是否存在,如果不存在结果为-1,如果存在结果为sub首次出现的索引
str.index(sub)功能与find相同,区别在于要查询的sub不存在时程序报错
str.startswith(s)查询字符串str是否以子串s开头
str.endswith(s)查询字符串str是否以子串s结尾
#具体使用示例
#大小写
s1='Hello'
new_s2=s1.lower()
print(s1,new_s2)

new_s3=s1.upper()
print(new_s3)

#字符串的分隔
e_mail='sa!123.com'
lst=e_mail.split('!')
print('前',lst[0],'后',lst[1])

#统计数
print(s1.count('o'))

#检索操作
print(s1.find('o'))
print(s1.find('p'))
print(s1.index('o'))
#print(s1.index('p')
#判断前后缀
print(s1.startswith('p'))
print(s1.startswith('H'))
print('demo.py'.endswith('.py'))
print('text.txt'.endswith('.txt'))

字符串是不可变类型 

方法名描述说明
str.replace(old,news)使用news代替所有old字符串,结果为一个新的字符串
str.center(width,fillchar)字符串str在指定宽度范围内居中,可以使用fillchar进行填充
str.join(iter)在iter后面每个元素都增加一个新的字符串str
str.strip(chars)从字符串中去掉左侧和右侧chars中列出的字符串
str.lstrip(chars)从字符串中去掉左侧chars中列出的字符串
str。rstrip(chars)从字符串中去掉右侧chars中列出的字符串
#方法2
s='HelloWorld'
#字符串的替换
new_s=s.replace('o','你好',1)##1表示只会替换第一个o
print(new_s)

print(s.center(20))
print(s.center(20,'*'))

s='    Hello    World    '
print(s.strip())#去除左右的空格
print(s.lstrip())
print(s.rstrip())

#去掉指定的字符
s3='dl-Helloworld'
print(s3.strip('ld'))#与ld顺序无关
print(s3.lstrip('ld'))
print(s3.rstrip('dl'))
#三种结果如下
# -Hellowor
# -Helloworld
# dl-Hellowor

使用格式化字符串操作

用格式化字符串可以连接各种字符串均不会报错

#格式化字符串
name='马冬梅'
age=18
score=98.5
print('姓名:%s,年龄:%d,成绩:%f'%(name,age,score))

#(2)f-string
print(f'姓名:{name},年龄:{age},成绩:{score}')

#(3)使用字符串的format方法
print('姓名:{0},年龄:{1},成绩:{2}'.format(name,age,score))
print('姓名:{2},年龄:{0},成绩:{1}'.format(age,score,name))#format里面的顺序根据前面的{}中数字的定义来看

格式化字符串详细的格式大体与C语言差不多

s='helloworld'
print('{0:*<20}'.format(s))#字符串的显示宽度为20,左对齐,空白部分使用*填充
print('{0:*>20}'.format(s))#字符串的显示宽度为20,右对齐,空白部分使用*填充
print('{0:*^20}'.format(s))#表示居中对齐

#居中
print(s.center(20,'*'))

#千位分隔符(只适用于整数和浮点数)
print('{0:,}'.format(987654321))
print('{0:,}'.format(987654321.789345))
# 987,654,321
# 987,654,321.789345

#浮点数小数部分的精度
print('{0:.2f}'.format(3.1415926))
#字符串类型,表示是最大的显示长度
print('{0:.5}'.format('helloworld'))
#3.14
# hello

#整数类型
a=425
print('二进制:{0:b},十进制:{0:d},八进制:{0:o},十六进制:{0:x},十六进制:{0:X}'.format(a))
# 二进制:110101001,十进制:425,八进制:651,十六进制:1a9,十六进制:1A9
#浮点数类型
b=3.1415926
print('{0:.2f},{0:.2E},{0:.2e},{0:.2%}'.format(b))
# 3.14,3.14E+00,3.14e+00,314.16%

字符串的编码和解码

bytes类型表示二进制类型

str-编码->bytes-解码->str

#字符串的编码
s='伟大的中国梦'#6个字符
scode=s.encode(errors='replace')#默认为utf-8,因为utf-8中文占3个字节
print(scode)
scode_gbk=s.encode('gbk',errors='replace')#gbk中中文占2个字节
print(scode_gbk)

#编码出错问题
s2='耶(^-^)V😊'
scode_error=s2.encode('gbk',errors='replace')
print(scode)
scode_error=s2.encode('gbk',errors='ignore')
print(scode)
# scode=s2.encode('gbk',errors='strict')
# print(scode)

#解码
print(bytes.decode(scode_gbk,'gbk'))
print(bytes.decode(scode,'utf-8'))
#编码与解码一一对应,gbk-->gbk,utf-8--->utf-8

数据的验证

方法名描述说明
str.isdigit()所有字符都是(阿拉伯数字)
str.isnumeric()

所有字符都是数字

str.isalpha()所有字符都是字母(包含中文字符)
str.islower()所有字符都是小写
str.isupper()所有字符都是大写
str.istitle()所有字符都是首字母大写
str.isalnum()所有字符都是数字或字母包含中文字符
str.isspace()所有字符都是空白字符(\n,\t等)
print('123'.isdigit())#True
print('一二三'.isdigit())#False
print('0b1010'.isdigit())#False
#综上,对于isdigit而言,只有阿拉伯数字可以被识别

print('123'.isnumeric())#True
print('一二三'.isnumeric())#Ture
print('0b1010'.isnumeric())#False
#对于isnumeric而言阿拉伯数字,汉字,罗马数字都可以被识别,但是二进制的不可以被识别

print('hello你好'.isalpha())#True
print('hello你好123'.isalpha())#False
print('hello你好一二三'.isalpha())#True
#isalpha——————阿拉伯数字不可以,罗马数字不可以,但是汉字的可以

print('hello你好'.isalnum())#True
print('hello你好123'.isalnum())#True
print('hello你好一二三'.isalnum())#True
#isalnum——————罗马数字都可以识别

print('@'*20)

print('Helloworld'.islower())#False
print('helloworld'.islower())#Ture
print('hello你好'.islower())#Ture
#只要有大写就报错

print('@'*20)

print('HelloWOrld'.isupper())#False
print('HELLOWORLD'.isupper())#Ture
print('HELLO你好'.isupper())#Ture
#只有有小写字母就报错,其他情况不报错


print('Hello'.istitle()) # #Ture
print('HelloWorld'.istitle())#False
print('Hello World'.istitle())#Ture
print('Hello world'.istitle())#False

print('-'*20)
print('\t'.isspace())
print(' '.isspace())
print('\n'.isspace())
#都是Ture
#字符串的拼接
s1='hello'
s2='world'
#1
print(s1+s2)
#2
print(''.join([s1,s2]))

print('*'.join(['hello','world','pyton','java','php']))
print('你好'.join(['hello','world','pyton','java','php']))
# hello*world*pyton*java*php
# hello你好world你好pyton你好java你好php

#3
print('hello''world')

#4使用格式化字符串进行拼接
print('%s%s' %(s1,s2))
print(f'{s1}{s2}')
print('{0}{1}'.format(s1,s2))

字符串的去重操作

s='helloworldhelloworldabdhresx'
#(1)
new_s=''
for item in s:
    if item not in new_s:
        new_s+=item
print(new_s)


#(2)索引+not in
new_s2=''
for i in range(len(s)):
    if s[i] not in new_s2:
        new_s2+=s[i]
print(new_s2)

#3
new_s3=set(s)
lst=list(new_s3)
print(lst)
lst.sort(key=s.index)
print(''.join(lst))

正则表达式

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值