被忽略的对象(续)
补充说明:1、python是区分大小写字母的,如a和A是两个不同的标签。
2、python中的各标点符号应采用英文半角,若采用中文的标点符号则会报错,如‘:’和‘:’
3、 在交互式命令行中使用“Ctrl+N”和“Ctrl+P”可以回显之前敲过的代码。
运算符
python中的算术运算有:+(加)、-(减)、*(乘)、/(除)、 //(整除)、**(幂运算)、%(取模,返回除法余数),其中"+""-"作单目运算符时表"正""负"(单目运算符即只有一个数参与运算)
其中需要注意的是“/”和“//”的区别:
'/'是正常除法运算,结果为浮点数;'//'和c语言的'/'功能一样都是取结果的整数部分,结果为整数
python中的比较运算符有:>(大于)、<(小于)、==(等于)、>=(大等于)、<=(小等于)、!=(不等于) 比较运算符主要用于比较两个数的大小关系
python中的赋值运算符有:=、+=、-=、*=、/=、//=、**=、%= 细心的小伙伴可以发现赋值运算符除了多个“=”外基本和算术运算符一模一样。其实这根本就是“=”赋值符号和算术运算符的结合:
“c = c + 2”与 "c += 2"的效果是一样的, "c += 2"就是“c = c + 2”的缩写,类似操作系统Operating System的缩写是OS一个道理。
python中的位运算符有:&(与)、|(或)、^(异或)、~(非,即按位取反)、<<(左移)、>>(右移) 位运算符是针对二进制数按位进行操作
python中的逻辑运算符有:and(与)、or(或)、not(非) 逻辑运算符常出现在选择语句与循环语句中,与布尔型变量(True和False)搭配使用
python的成员运算符有:in not in 用以判断成员是否存在于某个序列中,返回布尔型变量结果
这篇博客延续上一篇的内容,主要对列表list,元组tuple,字典dict和集合set作个介绍。(不仅这些数据结构是对象,数据结构中的数据也可以是对象,总之,在python中一切皆对象)
其中列表list、元组tuple和字符串str 均为序列
作为序列,它们有着共同的特征:
- 它们都可以通过索引得到每一个元素
- 默认索引值总是从0开始
- 可以通过分片的方法得到一个范围内的元素的集合
- 有很多共同的操作符(重复操作符*、拼接操作符+、成员关系操作符in)
列表
menber = ['小红','小明','小黄','小绿','小白'],menber是一个列表。列表用“[]”表示,列表中的成员可重复,可改变,且列表是有序的;(这里列表中的元素以成员表示是因为列表中的元素不仅仅是数,还是一个对象)
列表操作符有:“+”、“*”、"in" 与"not in"
ps:列表操作符同样适用于元组和字符串
关系运算符in 与not in无法嵌套使用,只能针对一层列表使用
想了解列表list的更多信息可通过执行help(list)查看
元组
menber = ('小红','小明','小黄','小绿','小白'),menber是一个元组。元组用“()”表示,元组中的成员可重复,不可改变,且元组是有序的;(这里元组中的元素以成员表示是因为元组中的元素不仅仅是数,还是一个对象)
元组和列表有很多共通之处,但它们最大的不同就是元组中的成员不可被改变,且适用于列表的一些方法并不适用于元组。
元组的内置方法只有两种:
用于计算成员出席次数的count()和用于索引成员位置的index(),相比于元组,列表有更多可使用的内置方法:
针对这些方法,稍后会统一说明,此外,字符串同样适用其中部分方法。
字典
字典最显著的特点是映射,一个键值对组成字典的一个成员,字典的值可以是任意对象,但键是唯一的,是不可变的。同时字典也是有序的。(此处有序是针对我的python3.6版本,貌似之前的版本有有序无序的区分)
创建字典
dict1 = {key: value, key1: value1, key2: value2, ...} 字典用“{}”表示,以“,”分隔每个成员
可以使用dict1[键] 的方式来获取对应该键对应的值
集合
python中的集合概念与数学中的集合是一样的,同样是成员唯一,且无序的。
集合同样使用“{}”来表示,若一个使用了“{}”的对象没有呈现出映射关系,则它就是一个集合
从执行结果可以看出,集合中的成员可以是任意对象,除了列表list
从以上的执行结果则可很明显地看出,集合中的成员是无序的也是唯一的。
python中有许多经常用到的内置函数,以及一些对象(list,tuple,string,dict,set)的内置方法,特在此对一些常用的内置函数与内置方法做个归纳总结:
内置函数(BIF:Built-in Function)
type() = > 显示数据(对象)类型
isinstance(a,int) => 类型比较,结果为True/False
len() => 计算参数长度并返回,如len('dad ! 1') ==> 7(空格也要算在内)
id(标签) => 显示标签对应的存储空间
range([start,] stop [,step=1]) => 生成一个从start参数的值开始到stop参数的值结束的数字序列,步进step不写则默认为1
list(iterable) => 将数据转换为列表
tuple(iterable) => 将数据转换为元组 ===> iterable(迭代器):功能类似for循环,将数据迭代至循环结束
str(iterable) => 将数据转换为字符串
max() => 返回序列或参数集合中的最大值
min() => 返回序列或参数集合中的最小值
sum(iterable[,start]=0) => 返回序列iterable和可选参数start的总和
sorted() => 将序列排序,默认从小到大排序。可设置sorted()的reverse参数为Ture,实现从大到小排序
reversed() => 反置序列
emumerate() => 枚举序列 例:numbers = [1,18,13,0,-98,23,44] enumerate(numbers) => [(0,1),(2,18),(3,13),(4,0),(5,-98),(6,23),(7,44)]
zip(a,b) =>列表合并 例:a = [1,2,3,4] b = [5,6,7,8,9,10] zip(a,b) => [(1,5,),(2,6),(3,7),(4,8)]
filter(function or None, iterable) => 过滤器,过滤序列中的False,保留True
map(function or None, iterable) => 加工序列并返回加工后的序列
print() => 输出 例:print('The length of %s is %d' % (s,x))
dict() => 创建字典 例:dict2 = dict((('F',70),('i',105),('s',115),('h',104),('C',67))) => {'F': 70, 'i': 105, 's': 115, 'h': 104, 'C': 67} 或 dict3 = dict(小甲鱼=‘让变成改变世界’,苍
井空=‘让av征服所有宅男’)
set() => 工厂函数,可以用于建立集合 例:set1 = set([1,2,5,3,6,7]) => {1,2,5,3,6,7}
add(sub) => 添加新元素到原集合
remove(sub) => 移除集合中的元素
frozenset() => 可用于建立一个不可变的集合
open(file[,mode='r']) => 打开一个文件 若打开的文件要添加路径,则输入的'\\'要两个,一个用来转译
issubclass(classA,classB) => 判断classA是不是classB的一个子类,是的话返回True,否则返回False。classB也可以是一个元组(A,B,C..)
isinstance(object,classinfo) => 检查一个实例是否属于这个类,是的话返回True,否则返回False
如果第一个对象传入的不是实例类型则永远返回False
如果第二个参数不是类或由类对象组成的元组,会抛出一个TypeError异常
hasattr(object,name) => 检测对象里面是否有指定的属性,是的话返回True,否则返回False。
getattr(object,name[,default]) => 返回对象指定的属性值,如果指定的属性不存在,则返回设定的default值
setattr(object,name,value) => 给对象指定的属性赋值,如果该属性不存在则创建一个属性
delattr(object,name) => 删除对象中指定的属性,属性不存在则抛出异常AttributeError
方法(method)
append() => 向列表添加成员,例:menber.append("小明") 只可添加一个成员
extend() => 向列表添加成员,可添加两个以上的成员,例:menber.extend(["小红","小绿"])
insert() => 向列表添加成员,例:menber.insert(1,"小黄")
ps:前两种方法成员自动添加到列表的最后方,第三中方法则可以选定插入的位置
remove() => 将列表中的元素删除,例:menber.remove('怡静')
index(sub[,start][,end]) => 返回列表中参数的位置,例:list.index(123) => 0
reverse() => 前后元素反置
sort() => 列表元素排序
capitalize() => 把字符串第一个字符改为大写
======> 返回一个新的字符串,原字符串并没用改变
casefold() => 把字符串的所有字符改为小写
center(width) => 将字符串居中,并使用空格填充至长度width的新字符串
count(sub[,start][,end]) => 返回sub在字符串里边出现的次数,start和end参数表示范围,可选
endwith(sub[,start][,end]) => 检查字符串是否以sub子字符串结束,如果是返回True,否则返回False。start和end参数表示范围,可选
expand([tabsize=8]) => 把字符串中的tab符号(\t)转换为空格,如不指定参数,默认空格是tabsize=8
find(sub[,start][,end]) => 检测sub是否包含在字符串中,如果有则返回(第一个)索引值,否则返回-1,start和end参数表示范围,可选
isalnum() => 如果字符串至少有一个字符并且所有字符都是字母或数字则返回True,否则返回False
isalpha() => 如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False
isdecimal() => 如果字符串只包含十进制数字则返回True,否则返回False
isdigit() => 如果字符串只包含数字则返回True,否则返回False
islower() => 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是小写,则返回True,否则返回False
isnumeric() => 如果只字符串中只包含数字字符,则返回True,否则返回False
isspace() => 如果只字符串中只包含空格,则返回True,否则返回False
istitle() => 如果字符串是标题化(所以单词都是以大写开始,其余字母均小写),则返回True,否则返回False
isupper() => 如果字符串中至少包含一个区分大小写的字符,并且这些字符都是大写,则返回True,否则返回False
join(sub) => 以字符串作为分隔符,插入到sub中所有的字符之间
ljust(width) => 返回一个左对齐的字符串,并使用空格填充至长度为width的新字符串
lower() => 转换字符串中所有大写字符为小写
lstrip() => 去掉字符串左边所有空格
partition(sub) => 找到子字符串sub,把字符串分成一个3元组(pre_sub,sub,fol_sub),如果字符串中不包含sub则返回('原字符串',' ',' ')
replace(old,new[,count]) => 把字符串中的old子字符串替换成new子字符串,如果count指定,则替换不超过count次
rfind(sub[,start][,end]) => 类似于find()方法,不过是从右边开始查找
rindex(sub[,start][,end]) => 类似于index()方法,不过是从右边开始
rjust(width) => 返回一个右对齐的字符串,并使用空格填充至长度为width的新字符串
rpartition(sub) => 类似于partition()方法,不过是从右边开始查找
rstrip() => 删除字符串末尾的空格
split(sep=None,maxsplit=-1) => 不带参数默认是以空格为分隔符切片字符串,如果maxsplit参数有设置,则仅分割maxsplit个字符串,
返回切边后的字符串拼接的列表
splitlines(([keepends])) => 按照'\n'分隔,返回一个包含各行作为元素的列表,如果keepends参数指定,则返回前keepends行
startwith(prefix,[,start[,end]]) => 检查字符串是否以prefix开头,是则返回True,否则返回False。start和end参数表示范围,可选
strip([chars]) => 删除字符串前边和后边的所有空格,chars参数可以定制删除的字符,可选
swapcase() => 翻转字符串中的大小写
title() => 返回标题化(所以单词都是以大写开始,其余字母小写)的字符串
translate(table) => 根据table的规则(可以有str.maketrans('a','b')定制)转换字符串中的字符
upper() => 转换字符串中的所以小写字符为大写
zfill(width) => 返回长度为width的字符串,原字符串右对齐,前边用0填充
fromkeys(key[,value]) => 不改变原字典创建一个新的字典 例:dict1 = {} dict1.fromkeys((1,2,3)) => {1:None,2:None,3:None} 且 dict1 == {}
keys() => 返回字典的keys
values() => 返回字典的values
items() => 返回字典的key和value
get(key[,value]) => 返回字典对应key的值
clear() => 清空字典 相较直接给字典赋{}是删除该标签,clear()是清空该标签内容
copy() => 浅拷贝 将字典拷贝到另一存储空间,不受原字典标签影响
pop(key) => 根据key弹出一组(key:value)
popitem() => 随机弹出一组(key:value)
setdefault(key[,value]) => 返回字典对应key的值或者若该key不存在则给该key赋值
ps:以上的部分内容是我以前看小甲鱼python教学视频整理出的笔记里的内容