py教学 之字符串处理·····
字符串索引与切片
Python 不支持单字符类型,单字符在 Python 中也是作为一个字符串使用。
Python 访问子字符串,可以使用方括号 [] 来截取字符串,字符串的截取的语法格式如下:
变量[头下标(start):尾下标(end):步长(end)]
注意事项
- 记住从后面向前索引时是从-1开始的
- 记住头下标一定比尾下标的值小 例如:str[-4:-2]这样子才合法
- 可以前面空着,表示从0开始 [:4] ,也可以后面 表示从-1开始
- [1:4] 左闭右开的区间
- [::number] 每隔几个取一个
- step:默认是正向的,当为-1时,就是负向的,-2 就是负向并且一次两个字符
字符串翻转
str1=str1[::-1]
字符串拼接
+ 字符串连接
first_name = "ada"
last_name = "lovelace"
full_name = first_name + " " + last_name
print(full_name)
字符串重复
\str*6 就是六倍重复
print("a * 2 输出结果:", a * 2)
a * 2 输出结果: HelloHello
Python三引号
- python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
字符串相关方法的操作
str="hello python"
print(str.upper())
print(str.lower())
print(str.title())
#分割 (默认空格分割)
print(str.split( ))
#替换
print(str.replace('python','world'))
#去空格
bbb=' hello world '
print(bbb.strip())
#左边l 开头
print(bbb.lstrip())
#右边 r 开头
print(bbb.rstrip())
replace(检索串,替换串,替换次数)
当替换次数为1:
就是只替换0次,当替换1次就结束
所以如果只是想替换一次的话,那么就设置为2
len()
- 获取字符串长度
count()
- 统计某个字符出现的次数
index()and rindex()
- 出现的第一次的位置和最后一次的位置,无则抛异常
find() and rfind()
- 出现的第一次的位置和最后一次的位置,无则报错
split() and rsplit() and partition() and rprtition()
- split分割字符串返回list(左向右)
- split(maxsplit=2) 最大分割2次,可以比这个小
- partition 用一整个str作为分割符,整体为分割符
center() and ljust() rjust()
- 居中,左对齐,右对齐
正则表达式:
实现多个字符的分割:
import re
a=input()
#re.split('这里写正则表达式',a) 格式
re.split('[ .]',s)
#这样就可以实现去对于结尾个中间空格的去重
删除两端字符
a.strip(''')
删除末尾字符
a='hellow world.'
a.rstrip(".")
print(a)
删除首字符
a='hellow world.'
a.lstrip(".")
print(a)
字符串格式化输入输出
格式化输入
- input() 这个就是读入一行字符串,但是如果我们想要的一个是一个int类型的数组,float的类型的数字的话我们就必须要将str类型转换为数字类型
- 我们就需要用到eval()函数 eval的本质就是去掉输入两边的引号:"1"==1,"[1,3,4]"=[1,3,4].......
a=eval(input())
input()常用的一些方法
- input().split("作为分割的字符")
读入3 45 66 89这样的一行的数到4个变量里面
- c++ cin 就可以直接做到
- 用到map()映射
a,b,c,d=map(input().split())
可以达到目的
格式化输出
print ("我叫 %s 今年 %d 岁!" % ('小明', 10))#""引号内写字符串,和c的写法一模一样
##需要注意,用%(, , , ),里面写每个变量“,”隔开
我叫 小明 今年 10 岁!
符 号 | 描述 |
---|---|
%c | 格式化字符及其ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整型 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度 |
格式化操作符辅助指令
符号 | 功能 |
---|---|
. | 定义最小总宽度或者小数点精度 |
- | 用做左对齐 |
0 | 显示的数字前面填充'0'而不是默认的空格 |
+ | 在正数前面显示加号( + ) |
a=1111123.3123
#b=int(float(a))
print("%15.2f"%(a))#显示的是最小总宽度
print("%015.2f"%(a))
print("%+.3f"%(a))
format 进行格式化输入输出
{}数字代表先后位置
{}内字母代表指定位置的标识 方便传入
新的简便写法
a='asdasdasd'
b=1
c=2.223
print(f'{(c+b):.2f}hhhh,{a.upper()}')
print()常用参数
end
- print默认输出一行str后加上一个\n 如果我们不想要他这么做,就可以指定 end='结尾要输出的字符'
a='asdasdasd'
b=1
c=2.223
print(f'{(c+b):.2f}hhhh,{a.upper()}',end='')
sep
- 更改输出的分割串,当然这也只有在不用格式化出的时候才用的上:
例如
a,b,c=1,2,3
print(a,b,c,sep=',')
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架