python
- 一、字符串
- 定义方式
- 拼接
- 索引与切片
- 切片
- 设置取子串顺序
- 小作业
- 内置字符串运算符
- 内置字符处理函数
- 内置字符串处理方法
- 查找类
- 分隔类
- 连接类
- 大小写转换类
- 替换类
- 删除空白
- 判断开始字符
- 判断字符串类型
- 排版类
- format格式化方法
- 强制转换
- 总结
一、字符串
使用单引号或双引号括起来的内容
定义方式
- 单引号(‘’),其中可以包含双引号。
- 双引号(“”),其中可以包含单引号。
- 三单引号(‘’’ ‘’'),其中可以包含单引号和双引号,可以跨行。
- 三双引号(“”" “”"),其中可以包含单引号和双引号,可以跨行。
print('Hello XiaQi')
print("'Book'书")
print('''"Python程序设计"
“C++程序设计”''')
拼接
name=input("name:")
country=input("country:")
s="The world is so big."+name+"want to"+country+"see see"
print(s)
索引与切片
s='Hello XiaQi'
print(s[0],s[-1],s[8],s[-2])
切片
- python中文字符也提供区间访问方式,采用[头下标:尾下标]的方式,这种访问方式叫切片
- s[头下标:尾下标]表示在字符串去索引值从头下标到尾下标(不包括尾下标)的子字符串
- 若头下标缺省,表示从开始取字符串,若尾下标缺省,表示取到最后,若头下标和尾下标缺省,则取怎个字符串。
s='Hello XiaQi'
print(s[0:5],s[6:-1])
print(s[:5],s[6:])
print(s[5:2])#头下标大于尾下标,输出为空
print(s[:])
设置取子串顺序
- s[头下标:尾下标:步长]
- 当步长值大于0,表示从左向右取字符,小于0时,从右向左取字符。
- 步长绝对值减一,表示每次取字符的间隔为多少
s='Hello XiaQi'
print("s=",s)
print("s[0:5:1]=",s[0:5:1])#正向取
print("s[0:6:2]=",s[0:6:2])#正向取,间隔一个字符
print("s[0:6:-1]=",s[0:6:-1])#反向取,但是头下标小于尾下标,输出为空
print("s[4:0:-1]=",s[4:0:-1])#反向去,索引值0取不到
print("s[4::-1]=",s[4::-1])#反向取,从索引值4一次取到开头
print("s[::-1]=",s[::-1])#反省取整串
print("s[::-3]=",s[::-3])#反向取,间隔两个字符
- 从以上代码总结
- 若正向取,头下标大于尾下标,则输出为空,
- 若反向去,头下标下雨尾下标,则输出为空
- 尾下标的值是取不到的,只能取到尾下标前一个,不管正向还是反向,
小作业
- 输入1~12的整数,输出对应的月份名称缩写
- tip:months=“JanFebMarAprMayJunJulAugSepOctNovDec”
内置字符串运算符
| 运算符 | 描述 |
|---|
| ”+“ | 字符串拼接,例"AB"+"123"结果为AB123 |
| ”*“ | 字符串赋值,例"Tom*3"结果为TomTomTom |
| ”in“ | 判断是否为子串,例"H" in "Hello"结果为True,“s” in "Hello"结果为False |
s='Hello'+"XiaQi"
print(s)
print(s*2)
a="H"in"Hello"
b="h"in"Hello"
print(a,b)
内置字符处理函数
| 函数 | 描述 |
|---|
| len(x) | 返回字符串长度 |
| str(x) | 将任意类型转化为字符串类型 |
| chr(x) | 返回Unicode编码为x的字符 |
| ord(x) | 返回字符x的Unicode编码值 |
| hex(x) | 将整数x转换为十六进制,并返回小写字符串形式 |
| oct(x) | 将整数x转换为八进制,并返回小写字符串形式 |
s="好好学习 天天向上"
print(len(s))#返回长度
s=123
print(type(s))
a=str(s)#返回的字符串赋给a
print(type(a))
print(hex(62))#转换十六进制
print(oct(62))#转换八进制
- 运行截图
- 使用内置字符处理函数时,原字符串对象是没有改变的,都是返回修改之后的新字符串,对原字符没有修改
内置字符串处理方法
查找类
| 方法 | 描述 |
|---|
| find(x) | find用来查找一个字符串在另一个字符串指定范围(默认整个字符串)中首次出现的位置,如果不存在返回-1 |
| rfind(x) | rfind用来查找一个字符串在另一个字符串指定范围(默认整个字符串)中最后一次出现的位置,如果不存在返回-1 |
| index(x) | find用来查找一个字符串在另一个字符串指定范围(默认整个字符串)中首次出现的位置,如果不存在返回异常 |
| rindex(x) | find用来查找一个字符串在另一个字符串指定范围(默认整个字符串)中首次出现的位置,如果不存在返回异常 |
| count(x) | 返回一个字符串在另一个字符串中出现的次数,不存在返回0 |
s="bird,fish,monkey,rabbit"
print("s.find('fish')=",s.find('fish'))#打印第一次出现的位置
a=s.index('monkey')#返回第一次出现的位置赋给a
print(a)
print("s.count('i')=",s.count('i'))#打印出现的次数
- 运行截图
- 使用内置字符处理方法时,字符串对象是没有改变的,都是返回修改之后的新字符串,对原字符没有修改
分隔类
| 方法 | 描述 |
|---|
| split(x) | 以指定字符为分隔符,从原字符串左端开始将其分隔成多个字符串,并返回包含分隔结果的列表(以后的章节介绍)。默认按空白符号分隔 |
| rsplit(x) | 以指定字符为分隔符,从原字符串右端开始将其分隔成多个字符串,并返回包含分隔结果的列表(以后的章节介绍) |
| partition(x) | 返回一个3元的元组,第一个为分隔符左边的子串,第二个为分隔符本身,第三个为分隔符右边的子串,从左边搜索 |
| rpartition(x) | 只是该方法是从目标字符串的末尾也就是右边开始搜索分割符。 |
s="bird,fish,monkey,rabbit"
print(s)
a=s.split(',')#以逗号分隔返回列表形式
print(a)
s="I am a boy"
print(s.split())
连接类
| 方法 | 描述 |
|---|
| join(x) | 将列表多个字符串进行连接,并在相邻两个字符串之间插入指定字符,返回新串 |
li=['apple','banana','pear','peach']
print(li)
print(':'.join(li))#将列表里的多个字符串用:连接
print('-'.join(li))#将列表里的多个字符串用-连接(注意后面是点不是逗号)
大小写转换类
| 方法 | 描述 |
|---|
| lower() | 返回小写 |
| upper() | 返回大写 |
| capitalize() | 首字母大写 |
| title() | 每个单词首字母大写 |
| swapcase() | 大小写互换 |
s="I have two big eyes"
print('s.lower',s.lower())#转换小写
print('s.upper',s.upper())#转换大写
print('s.capitalize()',s.capitalize())#首字母大写
print('s.title()',s.title())#每个单词首字母大写
print('s.swapcase()',s.swapcase())#大小写呼唤
替换类
| 方法 | 描述 |
|---|
| replace(x,y) | 替换字符串中指定的字符或子串,每次只能替换一个字符或子串,类似Word,记事本等文本查找功能和替换功能,不修改原字符串,返回新串 |
s="你是我的小呀小苹果儿"
print(s.replace("小","small"))#将小换成small
删除空白
| 方法 | 描述 |
|---|
| strip() | 删除两端空白字符或指定字符 |
| rstrip() | 删除右端空白字符或指定字符 |
| lstrip() | 删除左端空白字符或指定字符 |
s=" abd "
print("s=",s)
print("s.strip()=",s.strip())#删除两端空白
print("s.lstrip()=",s.lstrip())#删除右端空白
print("s.rstrip()=",s.rstrip())#删除左端空白
s="======abd======"
print(s)
print("s.strip('=')=",s.strip('='))#删除=
判断开始字符
| 方法 | 描述 |
|---|
| startswith(x) | 检测字符串是否以指定字符开始 |
| endswith(x) | 检测字符串是否以指定字符结束 |
s="Python程序设计.py"
print(s.startswith("Python"))
print(s.endswith("py"))
判断字符串类型
| 方法 | 描述 |
|---|
| isupper() | 判断字符串是否全为大写 |
| islower() | 判断字符串是否全为小写 |
| isdigit() | 判断字符串是否全数字 |
| isalnum() | 判断字符串是否数字或字母 |
| isalpha() | 判断字符串是否全为字母 |
s='years'
print("s=",s,"s.islower()=",s.islower())#判断字符串是否全为小写
s='YEARS'
print("s=",s,"s.isupper()=",s.isupper())#判断字符串是否全为大写
s="1231513"
print("s=",s,"s.isdigit()=",s.isdigit())#判断字符串是否全数字
s="he is 10 years old"
s=s.replace(" ","")
print("s=",s,"s.isalnum()=",s.isalnum())# 判断字符串是否数字或字母
print("s=",s,"s.isalpha()=",s.isalpha())#判断字符串是否全为字母
排版类
| 方法 | 描述 |
|---|
| center(x,y) | 指定x宽度,居中对齐,不足的用y填充 |
| ljust(x,y) | 指定x宽度,左对齐,不足的用y填充 |
| rjust(x,y) | 指定x宽度,右对齐,不足的用y填充 |
| zfill(x) | 指定x宽度,在字符串左侧以0填充 |
s="Hello world"
print(s)
print("s.center",s.center(30,"="))
print("s.ljust",s.ljust(20,"*"))
print("s.rjust",s.rjust(20,"*"))
print("s.zfill",s.zfill(20))
format格式化方法
- 基本语法通过“{}”和”:“来代替以前的”%“。format可以有多个输出项,位置可以指定顺序
print("我是{}班{}号的学生{}".format("软工521",28,"XiaQi"))
print("我是{1}班{2}号的学生{0}".format("XiaQi","软工521",28))#后面的参数改变了位置,
- 运行截图
- 当使用format格式化字符串时,需要在”{}“中首先输入”:“。
- ”:“称为格式引导符。”:“之后分别设置<填充字符><对齐方式><宽度>
| 设置项 | 可选值 |
|---|
| <填充字符> | ”*“,”=“等,只能一个,默认空格 |
| <对齐方式> | ^(居中)<(左对齐)>(右对齐) |
| <宽度> | 一个整数,指格式化后整个字符串的字符个数 |
print("{:*^20}".format("XiaQi"))#宽度20,居中对齐,*填充
print("{:=<20}".format("XiaQi"))#宽度20,左对齐,=填充
print("{:.2f}".format(3.1415926))#保留两位小数
print("{:5d}".format(24))##宽度5,右对齐,空格填充,整数形式输出
print("{:x>5d}".format(24))#宽度5,左对齐,x填充,整数形式输出
强制转换
- 在转换的数值前加想转换的类型
- 浮点型转换整形不会四舍五入
s=2.25
print(int(s))#转换整形
s=5
print(float(s))#转换浮点型
r=float(input("输入圆的半径"))
print(r)
year=int(input("输入年份"))
print(year)
总结
主要对字符串的操作方法,了解即可,需要用在查。