Python基础学习系列:
序列:保存一组有序数据,一种最基本的数据结构
序列索引由添加顺序分配
可变序列
不可变序列
索引:标注元素在列表中的位置
可以通过索引获取列表中元素
myList[index]
若超限,则报错 list index out of range
列表索引可以是负数
len() = 最大索引+1
从现有列表中获取子列表,返回值是一个新的列表
list[起始索引:结束索引]
会包括起始位置元素,但不包括结束位置元素
my_list = ['a','b','c','d','e','f']
print(my_list[0:4]) #['a', 'b', 'c', 'd']
list[起始索引:]
从起始索引对应的元素截取到最后一个元素
my_list = ['a','b','c','d','e','f']
print(my_list[4:]) # ['e', 'f']
list[:结束索引]
从第一个元素截取到结束索引对应的元素
my_list = ['a','b','c','d','e','f']
print(my_list[:5]) # ['a', 'b', 'c', 'd', 'e']
list[:]
创建副本
my_list = ['a','b','c','d','e','f']
print(my_list[:]) # ['a','b','c','d','e','f']
list[起始索引:结束索引:步长]
步长表示获取元素间隔,默认为1
my_list = ['a','b','c','d','e','f']
print(my_list[0:4:2]) # ['a', 'c']
print(my_list[4:0:-2]) # ['e', 'c']
+
:表示列表拼接
*
:表示复制指定次数
检查指定元素是否存在于列表中,返回
bool
类型值
获取列表中的最值
获取指定元素在列表指定范围第一次出现的索引
my_list = ['a','b','c','d','e','f']
print(my_list.index('c',0)) # 2
print(my_list.index('c',0,1)) # ValueError: 'c' is not in list
查找指定元素
key
在列表中的出现次数
Python中的一个对象
[]
my_list = [1,2,3,4]
# 修改元素内容
list_name[index] = new_key
# 删除元素
del list_name[index]
list_name[起始索引:结束索引] = []
list_name[0:0] = new_key # 相当于在列表首尾插入元素
list_name[起始索引:结束索引:步长] # 间隔替换
del list_name[起始索引:结束索引] # 删除指定部分元素
list_name[0:0] = []
通过截取修改时只能传递序列
s = "hello"
s = list(s)
print(s) # ['h','e','l','l','o']
将元素
key
添加到最后
向列表索引为
index
指定位置插入元素key
使用新的序列扩展当前序列
l = [1,2,3]
l.extend([4,5])
#l = [1,2,3,4,5]
清空列表
根据索引删除并返回指定元素
无参时,删除最后一个
删除指定值,无返回值
翻转列表
对列表中元素排序,默认是 升序
list.sort(reverse=True)
不可变序列
操作基本和列表一致
适用情况:当数据不可变时使用元组,其余类型序列使用列表
my_tuple = (1,2,3)
元组不为空时
my_tuple = 1,2,3
print(my_tuple) # (1,2,3)
my_tuple = 1,
print(my_tuple) # (1,)
将元组中的内容赋值给多个变量
my_tuple = 1,2,3
a,b,c = my_tuple
在解包时,变量数量必须和元素中元素数量相同
c中是剩余元素组成的列表
a,b,*c = my_tuple
my_tuple = 1,2,3,4
a,b,*c = my_tuple
a = 1 b = 2 c = [3,4]
a,*b,c = my_tuple
a = 1 b = [2,3] c = 4
*a,b,c = my_tuple
a = [1,2] b = 3 c = 4
可以用解包交换两个变量
a,b = b,a
转义字符 | 描述 |
---|---|
(行尾) | 续行符 |
\\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格 |
\000 | 空 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy 代表的字符 |
\xyy | 十六进制数,yy代表的字符 |
\other | 其它的字符以普通格式输出 |
a = "Hello"
b = "Python"
操作符 | 描述 | 实例 |
---|---|---|
+ | 字符串连接 | a+b : HelloPython |
* | 重复输出字符串 | a*2 :HelloHello |
[] | 通过索引获取字符串中字符 | a[1] :e |
[ : ] | 字符串截取,左闭右开 | a[1:4] :ell |
in | 成员运算符 | ‘H’ in a : True |
not in | 成员运算符 | ‘M’ not in a : True |
% | 格式字符串 | |
r\R | 原始字符串:按原字符串输出 | print( r’\n’ ) : \n |
[]
str_name[begin:end:step]
num = str(num)
m = num[::-1]
创建临时变量重新赋值
符号 | 描述 |
---|---|
%c | 字符 |
%s | 字符串 |
%d | 整数 |
%u | 无符号整数 |
%o | 无符号八进制数 |
%x/%X | 无符号十六进制数 |
%f | 浮点数字,可指定小数点后精度 |
%e/%E | 科学计数法格式化浮点数 |
%g/%G | %f和%e的简写 |
%p | 用十六进制数格式化变量的地址 |
当字符串包含一个占位符时,直接 print("%."%变量)
即可
当字符串包含多个占位符时,用元组形式 print("%.,%."%(变量1,变量2))
格式化字符,若值是字符串则报错
格式化输出字符串,字符不报错
输出整数,ASCII字符报错
符号 | 功能 |
---|---|
+ | 在正数前面显示加号 |
*(数字) | 定义宽度或小数点精度 |
- | 左对齐 |
m.n | m:显示的最小总宽度(包括小数点),n是小数点后位数 |
空格(填充) | 在整数前显示空格 |
0(填充) | 显示的数字前填充’0’而不是默认空格 |
# | 在八进制数钱显示(‘0’),在十六进制数前显示’0x’或’0X’ |
% | ‘%%‘输出一个单一的’%’ |
(var) | 映射变量(字典参数) |
定义宽度或小数点精度
m.n
:m表示此次输出最小数据宽度
para_str = """这是一个多行字符串的实例
多行字符串可以使用制表符
TAB ( \t )。
也可以使用换行符 [ \n ]。
"""
print (para_str)
格式化字符串以
f
开头,后面跟着字符串,字符串中的表达式用{}
包起来,将变量或表达式计算后的值替换
name = "Amos"
f'Hello {name}' # 替换变量
f'{1+2}' # 表达式
link = {"protocol":"https","url":"www.baidu.com"}
f'{link["protocol"]}://{link["url"]}' # 自定义拼串符号
将字符串的第一个字符转换为大写
返回一个宽度为(width),且内容居中的字符串
l e n ( s t r ) ≥ w i d t h len(str) \ge width len(str)≥width:则直接返回字符串
l e n ( s t r ) < w i d t h len(str) < width len(str)<width : 则使用fillchar去填充
若fillchar个数是奇数,则前面多一个
返回子字符串
sub
在字符串中出现的次数
end
参数可缺省
以指定编码格式解码
encoding
,默认编码为 “utf-8”
encoding:要使用的编码格式
errors:设置不同的错误处理方案。默认为 strict
,意为编码错误引起一个 UnicodeError
原字符串是英文,采用各种编码,解码时可混用
原字符串是中文,采用各种编码,解码时不可混用
以指定的编码格式编码字符串,返回编码后的
bytes
对象
encoding:要使用的编码,如 “utf-8”
errors:编码出错,引起一个 UnicodeError
,其他可能得值有 ‘ignore’, ‘replace’, ‘xmlcharrefreplace’, ‘backslashreplace’ 以及通过 codecs.register_error() 注册的任何值
s1 = "This is a string"
c1 = s1.encode("utf-8")
c2 = s1.encode("gbk")
print(f"utf-8格式编码:{c1},utf-8格式解码:{c1.decode('utf-8')}")
print(f"gbk格式编码:{c2},gbk格式解码:{c2.decode('gbk')}")
print(f"gbk格式编码:{c2},utf-8格式解码:{c2.decode('utf-8')}")
判断字符串是否以指定后缀结尾
s='Hello World!!'
suffix='!!'
print(s.endswith(suffix))# True
print(s.endswith(suffix,20))# False
suffix='Amos'
print(s.endswith(suffix))# False
find()
方法检测字符串中是否包含子字符串sub
如果包含子字符串返回开始的索引值,否则返回 -1
检测字符串中是否包含模式字符串 sub
检测字符串是否由字母和数字组成
如果字符串有文字或者数字组成,则返回 True
,否则返回 False
True
检测字符串是否只有字母或文字组成
True
,否则返回 False
检测字符串是否只有数字组成
如果字符串只包含数字则返回 True
,否则返回 False
检测字符串是否全由小写字母组成
如果字符串中至少包含一个区分大小写的字符,并且这些所有字符都是小写,则返回 True
,否则返回 False
检测字符串是否只由数字组成
检测字符串是否只由空白字符组成
检测字符串中所有的单词拼写首字母是否为大写,且其他字母为小写。
检测字符串中所有的字母是否都为大写
将
join_str
中的字符插入到字符串str
中间
s1 = "-"
s2 = ""
seq = ("H", "e", "l", "l", "o") # 字符串序列
print(s1.join(seq))
# H-e-l-l-o
print(s2.join(seq))
# Hello
返回字符串长度
将字符串中所有大写字符转换为小写
去除开头的空格或者指定字符
chars --指定截取的字符
返回去除开头空格或者指定字符的新字符串
返回字符串中最大的字母
返回字符串中最小的字符
把字符串中的
old
替换成new
返回替换结束后的新字符串
返回模式串
pattern
最后一次出现的位置,没有找到匹配项则返回 -1
返回子字符串 pattern在字符串中最后出现的位置,如果没有匹配的字符串会报异常
返回子字符串 pattern 在字符串中最后出现的位置,如果没有匹配的字符串会报异常
删除string 字符串末尾的制定字符
用指定分割符
split_str
对字符串分段,如果指定num
则分割为 num+1 个字符串
返回分割后的字符串列表
检查字符串是否以指定子字符串开头,如果是则返回
True
,否则返回False
用于移除字符串头尾指定的字符(默认为空格)或字符序列
返回新生成的字符串
返回标题化字符串:每个单词的首字母转化为大写
将字符串中的小写字符转换为大写字符