python第一阶段总结(2)
python3第一阶段的总结
- python3的简介
- python3安装及环境变量的操作
- python3 基础语法
- python3基本数据类型
- python3运算符
- python3数字
- python3字符串
- python3 列表
- python3元组
- python3字典
- python3集合
- python3条件控制
- python3循环语句
- python3迭代器与生成器
- python3函数
- python3数据结构
- python3模块
基础数据类型的分类的详细解释:
python3中有六个标准的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Sets(集合)
- Dictionary(字典)
Python3的六个标准数据类型中:
- 不可变数据类型(四个):Number、String、Tuple、Sets
- 可变数据类型(两个):List、Dictionary
*.python3数字
概念:
Python3支持int、float、bool、complex(复数)
在Python3里,只有一种整数类型int,表示为长整型,没有python2中的Long。
内置的type()函数可以用来查询变量所指的对象类型
>>> a, b, c, d = 20, 5.5, True, 4+3j >>> print(type(a), type(b), type(c), type(d)) <class 'int'> <class 'float'> <class 'bool'> <class 'complex'> --------------------------------------------------------------- 注意: 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。 Python可以同时为多个变量赋值,如a,b = 1,2 一个变量可以通过赋值指向不通类型的对象 数值的除法(/)总是返回一个浮点数,要获取证书使用//操作符。 在混合计算时,Python会把整型转换成浮点数 Python还支持复数,复数可以用a+bj,或者complex(a,b)表示,a和b都是浮点数
*.python3字符串
概念:
Python中的字符串是以单引号(’)或者双引号(“)引起来的
1,截取字符串格式为:变量[头下标:尾下标]
str = 'Yehewudi' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串 --------------------------------------------------------------- Python使用反斜杠(\)转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符 例子: --------------------------------------------------------------- >>> print('Ye\he') Ye he >>> print(r'Ye\he') Ye\he >>> --------------------------------------------------------------- 另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用"""..."""或者'''...'''跨越多行
常用用法:
count 通即字符串里某个字符出现的次数,支持切片 语法:str.count(sub, start= 0, end=len(string)) 例子: --------------------------------------------------------------- a="cainiao chuanqi" print(a.count("a" 2 -1)) 4 --------------------------------------------------------------- encode 指定编码格式字符串 语法:str.encode(encodeing='UTF-8',errors = 'strict') encoding 要使用的编码 errors 设置不通错误的处理方案 find 判断字符串中是否包含自字符串,如果在返回索引值,如果不再返回-1支持切片 例子: --------------------------------------------------------------- a=" cainioa chuanqi" print(a.find("chuan")) 7 --------------------------------------------------------------- format 格式化输出 例子: --------------------------------------------------------------- print("姓名:{name}, 年龄:{age}".format(name = "cai", age = 22)) 姓名 蔡,年龄:22 --------------------------------------------------------------- index 查找字符串是否包含子字符串,如果存在返回索引,不存在报错 --------------------------------------------------------------- a="caichuan" print(a.index("a")) 1 --------------------------------------------------------------- isdigit 判断字符串是否只由数字组成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="11" print(a.isdigit()) True --------------------------------------------------------------- True: Unicode数字,byte数字(单字节),全角数字(双字节),罗马数字 False: 汉字数字 Error: 无 isidentifier 判断字符串是否由字母开头,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.isidentifier()) True --------------------------------------------------------------- islower 判断字符串是否由小写字母组成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.islower()) True --------------------------------------------------------------- isupper 判断字符串中所有的字母是否都为大写,是返回True,否则返回Flase 例子: --------------------------------------------------------------- a="XIAOCHEN" print(a.isupper()) True --------------------------------------------------------------- isspace 判断字符串是否只由空格组成,是返回True,否则返回Flase 例子: --------------------------------------------------------------- a=" \t " print(a.isspace()) True --------------------------------------------------------------- isalpha 判断字符串是否只由字母组成,是返回True,否则返回Flase 例子: --------------------------------------------------------------- a="xiaochen" print(a.isalpha()) True --------------------------------------------------------------- isalnum 判断字符串是否由字母和数字组成,是返回True,否则返回Flase 例子: --------------------------------------------------------------- a="xiaochen1234" print(a.isalnum()) True --------------------------------------------------------------- join 讲序列中的元素以指定的字符连接生成一个新的字符串 例子: --------------------------------------------------------------- a="-" print(a.join("xiao")) x-i-a-0 --------------------------------------------------------------- lower 将字符串中所有大写字符转为小写 例子: --------------------------------------------------------------- a="AAA" print(a.lower()) aaa --------------------------------------------------------------- replace 将字符串中的字旧符替换成新字符,替换不超过max次 例子: --------------------------------------------------------------- a="My name is xiaochen" print(a.replace("xiaochen", "chuanqi")) My name is chuanqi --------------------------------------------------------------- split 通过指定分隔符对字符串进行分隔,已分割后的字符串为元素组成列表 语法:str.split(str="", num=string.count(str)). str 分隔符,默认为空格 num 分隔次数 例子: --------------------------------------------------------------- a="cai chuan qi" print(a.split()) ['cai', 'chuan', 'qi'] --------------------------------------------------------------- upper 将字符串中的小写字母转为大写字母 例子: --------------------------------------------------------------- a="aaa" print(a.upper()) AAA --------------------------------------------------------------- 不常用的用法: capitalize 将字符串的第一个字母变成大写,其他字母变小写 例子: --------------------------------------------------------------- a="cai CHUAN qi" print(a.capitalize()) Cai chuan qi --------------------------------------------------------------- casefold 与lower相似 两者的区别是:lower() 方法只对ASCII编码,也就是‘A-Z’有效,对于其他语言(非汉语或英文)中把大写转换为小写的情况只能用 casefold() 方法 center 返回一个原字符串居中,并使用空格填充至长度 width 的新字符串。默认填充字符为空格 语法:str.center(width[, fillchar]) width 字符串的总宽度 fillchar 填充字符 例子: --------------------------------------------------------------- a="xiaochen" a.center(22, '*') ********yehe******** --------------------------------------------------------------- expandtabs 将字符串中的tab符号('\t')转为空格,tab为8个空格 endswith 判断字符串自否以指定字符结尾,是返回True,否则返回False,支持切片 例子: --------------------------------------------------------------- a="xiaochen" a.endswith("chen") True --------------------------------------------------------------- format_map(不清楚) isnumeric 判断字符串是否只由数字组成,是返回True,否返回Flase 例子: --------------------------------------------------------------- a="123" print(a.isnumeric()) True --------------------------------------------------------------- True: Unicode数字,全角数字(双字节),罗马数字,汉字数字 False: 无 Error: byte数字(单字节) isdecimal 判断字符串是否只包含十进制字符返回True,否则返回False 例子: --------------------------------------------------------------- a="123" print(a.isdecimal()) True --------------------------------------------------------------- True: Unicode数字,,全角数字(双字节) False: 罗马数字,汉字数字 Error: byte数字(单字节) isprintable 判断字符串中所有字符是否都属于可打印字符 例子: --------------------------------------------------------------- a="123\t" print(a.isprintable()) False --------------------------------------------------------------- istitle 判断字符串中所有的单词首字母为大写,其他字母为小写,是返回True,否则返回Flase 例子: --------------------------------------------------------------- a="This Is A xiaochen!" print(a.istitle()) True --------------------------------------------------------------- ljust 返回一个原字符串左对齐,并使用空格填充至指定长度的新字符串 lstrip 截掉字符串左边的空格或指定字符 maketrans ???? partition 根据指定的分隔符讲字符串进行分隔 例子: --------------------------------------------------------------- a="chuanxqi!" print(a.partition("x")) ("chuan", "x", "qi!") --------------------------------------------------------------- rsplit 通过指定分隔符对字符串进行切片,类似于 split() 方法,只不过是从字符串最后面开始分割。 rfind 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1 rindex 返回子字符串 str 在字符串中最后出现的位置,如果没有匹配的字符串会报异常,你可以指定可选参数 rjust 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串。如果指定的长度小于字符串的长度则返回原字符串 rpartition 与partition类似,从后往前。 rstrip 删除 string 字符串末尾的指定字符(默认为空格). startswith 用于检查字符串是否是以指定子字符串开头,如果是则返回 True,否则返回 False,支持切片 splitlines 按照行('\r', '\r\n', \n')分隔,返回一个包含各行作为元素的列表 swapcase 对字符串的大小写字母进行转换 title 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写 translate 根据参数table给出的表(包含 256 个字符)转换字符串的字符, 要过滤掉的字符放到 del 参数中 zfill 返回指定长度的字符串,原字符串右对齐,前面填充0 注意: Python没有单独的字符类型,一个字符就是长度为1的字符串 反斜杠可以用来转义,使用r可以让反斜杠不发生转义 字符串可以用+运算符进行字符串的拼接操作 Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始 Python中的字符串不能改变
*.python3列表
概念:
List是Python中使用最频繁的数据烈性。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型不相同,它支持数字,字符串甚至可以包含列表(嵌套)。
列表是写在方括号“[]”之间、用逗号分隔的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表的截取格式为:变量[头下标:尾下标]
list = [ 'abcd', 786 , 2.23, 'cai', 70.2 ] tinylist = [123, 'cai'] print (list) # 输出完整列表 print (list[0]) # 输出列表第一个元素 print (list[1:3]) # 从第二个开始输出到第三个元素 print (list[2:]) # 输出从第三个元素开始的所有元素 print (tinylist * 2) # 输出两次列表 print (list + tinylist) # 连接列表
常用用法:
append 在列表末尾添加新的元素 例子: --------------------------------------------------------------- a = ["cai", "test", 123] a.append("xiaochen") print(a) ["cai", "test", 123, "xiaochen"] --------------------------------------------------------------- count 用于统计某个元素在列表中出现的次数。 例子: --------------------------------------------------------------- a = ["cai", "test", 123, 123] print(a.count(123)) 2 --------------------------------------------------------------- clear 清空列表 extend 用于在列表末尾一次性追加另一个序列中的多个值 例子: --------------------------------------------------------------- a = ["cai", "test", 123] b = ["xiao", chen] a.extend(b) print(a) ["cai", "test", 123, "xiao", "chen"] --------------------------------------------------------------- index 从列表中找出某个值第一个匹配项的索引位置 例子: --------------------------------------------------------------- a = ["xiaochen", "test", 123] print(a.index("test")) 1 --------------------------------------------------------------- insert 将指定对象插入列表的指定位置 例子: --------------------------------------------------------------- a = ["xiaochen", "test", 123] a.insert(1, "cai") print(a) ["xiaochen", "cai", "test", 123] --------------------------------------------------------------- pop 删除列表中的一个元素(默认为最后一个),并且返回值为该元素,没有则会报错 例子: --------------------------------------------------------------- a = ["chuanqi", "test", 123] a.pop(1) print(a) ["chuanqi", 123] --------------------------------------------------------------- remove 删除列表中某个元素的第一个匹配项,没有则会报错 例子: --------------------------------------------------------------- a = ["chuanqi", 123, "test", 123] a.remove(123) print(a) ["chuanqi", 123] --------------------------------------------------------------- sort 对列表进行排序 例子: --------------------------------------------------------------- a = [3, 2, 4, 1] a.sort() print(a) [1, 2, 3, 4] --------------------------------------------------------------- 不常用用法: reverse 用于反向列表中元素 例子: --------------------------------------------------------------- a = ["chuanqi", "test", 123] a.reverse() print(a) [123, "test", "chuanqi"] ---------------------------------------------------------------
注意:
List卸载方括号之间,元素用逗号分隔
和字符串一样,list可以被索引和切片
List可以用+操作符进行拼接
List中的元素是可以改变的
*.python3元组
概念:
元组与列表类似,不用之处在于元组不能修改。元组卸载小括号里“()”,元素之间用逗号分隔
用法:
与列表类似,只是不能修改
只有count与index函数
注意:
- 和字符串一样,元组可以被索引和切片
- 元组也可以被索引和切片,方法一样
- 注意构造包含0或1个元素的元组的特殊语法规则
- 元组也可以使用+操作符进行拼接
python3字典
概念:
字典是Python中另一个非常游泳的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过索引存取。
字典是一种映射类型,字典用大括号“{}”表示,它是一个无序的键(key):值(value)对集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
dict = {} dict['one'] = "1" dict[2] = "2" testdict = {'name': 'xiaochen','code':1, 'site': 'www.777.com'} print (dict['one']) # 输出键为 'one' 的值 print (dict[2]) # 输出键为 2 的值 print (testdict) # 输出完整的字典 print (testdict.keys()) # 输出所有键 print (testdict.values()) # 输出所有值
常用用法:
clear 删除字典内所有元素 例子: --------------------------------------------------------------- a = {"name": xiaochen", "age": 18} a.clear print(a) --------------------------------------------------------------- fromkeys 创建一个新字典,以序列seq中元素做字典的键,value为字典所有键对应的初始值 例子: --------------------------------------------------------------- a = {} b = ["name", "age", "test"] print(a.fromkeys(b, 10)) {'name': 10, 'age': 10, 'test': 10} --------------------------------------------------------------- get 函数返回指定键的值,如果值不在字典中返回默认值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} print(a.get("name")) yehe --------------------------------------------------------------- items 以列表返回可遍历的(键, 值) 元组数组(列表转元组) 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} b = a.items() print(b) dict_items([('name', 'xiaochen'), ('age', 18)]) --------------------------------------------------------------- keys 已列表的形式返回一个字典所有的键 pop 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} a.pop("name") print(a) {'age': 18} --------------------------------------------------------------- popitem 随机返回并删除字典中的一对键和值(一般删除末尾对),如果字典为空则报错 setdefault 和get()方法类似, 如果键不存在于字典中,将会添加键并将值设为默认值 例子: --------------------------------------------------------------- a = {"name": "xiaochen", "age": 18} print(a.setdefault("test")) print(a) {'name': 'xiaochen', 'age': 18, 'test': None} --------------------------------------------------------------- update 把字典dict2的键/值对更新到dict里 例子: --------------------------------------------------------------- a1 = {"name": "xiaochen", "age": 18} a2 = {"hobby":"men"} a1.update(a2) print(a1) {'name': 'xiaochen', 'age': 18, 'hobby': 'men'} --------------------------------------------------------------- values 已列表的形式返回字典中的所有值
注意:
- 字典是一种映射类型,它的元素是键值对。
- 字典的关键字必须为不可变类型,且不能重复。
- 创建空字典使用{}。
*.python3集合
概念:
集合是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{ }或者set()函数创建集合,但是创建一个空集合必须用set()
parame = {value01,value02,...}
或者
set(value)
常用用法:
a = set('abracadabra') b = set('alacazam') 1,差集 print(a - b) 2,并集 print(a | b) 3,交集 print(a & b) 4,反交集 print(a ^ b) 5,增 a.add('666') 增加一个元素 a.update('abc') 迭代增加 6,删 a.remove 删除一个元素 a.pop 随机删除一个元素 a.clear 清空集合 del a 删除集合
*.python3字符串
字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。
%[(name)][flags][width].[precision]typecode
tpl = "i am %s" % "cai" tpl = "i am %s age %d" % ("cai", 18) tpl = "i am %(name)s age %(age)d" % {"name": "cai", "age": 18} tpl = "percent %.2f" % 99.97623 tpl = "i am %(pp).2f" % {"pp": 123.425556, } tpl = "i am %.2f %%" % {"pp": 123.425556, }
常用用法
(name) 可选,用于选择指定的key flags 可选,可供选择的值有: + 右对齐;正数前加正好,负数前加负号; - 左对齐;正数前无符号,负数前加负号; 空格 右对齐;正数前加空格,负数前加负号; 0 右对齐;正数前无符号,负数前加负号;用0填充空白处 width 可选,占有宽度 .precision 可选,小数点后保留的位数 typecode 必选 s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置 r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置 c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <= 1114111(py27则只支持0-255);字符:将字符添加到指定位置 o,将整数转换成 八 进制表示,并将其格式化到指定位置 x,将整数转换成十六进制表示,并将其格式化到指定位置 d,将整数、浮点数转换成 十 进制表示,并将其格式化到指定位置 e,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(小写e) E,将整数、浮点数转换成科学计数法,并将其格式化到指定位置(大写E) f, 将整数、浮点数转换成浮点数表示,并将其格式化到指定位置(默认保留小数点后6位) F,同上 g,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是e;) G,自动调整将整数、浮点数转换成 浮点型或科学计数法表示(超过6位数用科学计数法),并将其格式化到指定位置(如果是科学计数则是E;) %,当字符串中存在格式化标志时,需要用 %%表示一个百分号 注:Python中百分号格式化是不存在自动将整数转换成二进制表示的方式
*、Format方式
[[fill]align][sign][#][0][width][,][.precision][type]
fill 【可选】空白处填充的字符 align 【可选】对齐方式(需配合width使用) <,内容左对齐 >,内容右对齐(默认) =,内容右对齐,将符号放置在填充字符的左侧,且只对数字类型有效。 即使:符号+填充物+数字 ^,内容居中 sign 【可选】有无符号数字 +,正号加正,负号加负; -,正号不变,负号加负; 空格 ,正号空格,负号加负; # 【可选】对于二进制、八进制、十六进制,如果加上#,会显示 0b/0o/0x,否则不显示 , 【可选】为数字添加分隔符,如:1,000,000 width 【可选】格式化位所占宽度 .precision 【可选】小数位保留精度 type 【可选】格式化类型 传入” 字符串类型 “的参数 s,格式化字符串类型数据 空白,未指定类型,则默认是None,同s 传入“ 整数类型 ”的参数 b,将10进制整数自动转换成2进制表示然后格式化 c,将10进制整数自动转换为其对应的unicode字符 d,十进制整数 o,将10进制整数自动转换成8进制表示然后格式化; x,将10进制整数自动转换成16进制表示然后格式化(小写x) X,将10进制整数自动转换成16进制表示然后格式化(大写X) 传入“ 浮点型或小数类型 ”的参数 e, 转换为科学计数法(小写e)表示,然后格式化; E, 转换为科学计数法(大写E)表示,然后格式化; f , 转换为浮点型(默认小数点后保留6位)表示,然后格式化; F, 转换为浮点型(默认小数点后保留6位)表示,然后格式化; g, 自动在e和f中切换 G, 自动在E和F中切换 %,显示百分比(默认显示小数点后6位)
tpl = "i am {}, age {}, {}".format("seven", 18, 'alex') tpl = "i am {}, age {}, {}".format(*["seven", 18, 'alex']) tpl = "i am {0}, age {1}, really {0}".format("seven", 18) tpl = "i am {0}, age {1}, really {0}".format(*["seven", 18]) tpl = "i am {name}, age {age}, really {name}".format(name="seven", age=18) tpl = "i am {name}, age {age}, really {name}".format(**{"name": "seven", "age": 18}) tpl = "i am {0[0]}, age {0[1]}, really {0[2]}".format([1, 2, 3], [11, 22, 33]) tpl = "i am {:s}, age {:d}, money {:f}".format("seven", 18, 88888.1) tpl = "i am {:s}, age {:d}".format(*["seven", 18]) tpl = "i am {name:s}, age {age:d}".format(name="seven", age=18) tpl = "i am {name:s}, age {age:d}".format(**{"name": "seven", "age": 18}) tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) tpl = "numbers: {:b},{:o},{:d},{:x},{:X}, {:%}".format(15, 15, 15, 15, 15, 15.87623, 2) tpl = "numbers: {0:b},{0:o},{0:d},{0:x},{0:X}, {0:%}".format(15) tpl = "numbers: {num:b},{num:o},{num:d},{num:x},{num:X}, {num:%}".format(num=15)