结合菜鸟教程,对知识点进行查漏补缺。总结中的代码均为菜鸟教程上的源代码(菜鸟教程的网址:https://www.runoob.com/python3/python3-tutorial.html)。现将第一部分的内容总结如下:
1. 简介
查看python的关键字:使用Python标准库中的keyword模块,可以输出当前版本的所有关键字。
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
多行语句:可以使用反斜杠(\)来实现,如
Total = item_one + \
item_two + \
Item_three
支持在一行显示多条语句:
import sys; x = 'runoob'; sys.stdout.write(x + '\n')
2. Python的数据类型
数字,字符串,列表,元组,字典,集合。
数字(Number)中的布尔型:在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True。到 Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
不变的对象:数字,字符串,元组;其余是可变的对象。
序列(Sequence):String,List,Tuple。
(1)判断Python中变量的数据类型:
可以使用type()或isinstance()。区别在于在判断子类的类型时,type不会认为子类是一种父类类型,isinstance()认为子类是一种父类类型。
(2)删除对象:
del var
del var_a, var_b
(3)字符串:
按照字面意思级联字符串,如”this””is””string”。字符串可以用+运算符连接在一起,用*运算符重复。
Python的字符串不能像列表那样被直接改变。
多行字符串:使用’’’或’’’’’’可以指定一个多行字符串。
(4)列表
List可以使用+完成拼接。
(5)元组
也可以使用+完成拼接。
(6)集合
功能:删除重复元素
可以用{}或set()创建集合。注意:创建一个空集合必须用set()而不是{},因为{}使用来创建一个空字典的。
set是{xxx, xxx, ..., ...}的形式的。
集合的创建的方式有:
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
student = set('Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose')
set的集合运算:
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
结果是:
{'b', 'a', 'c', 'r', 'd'}
{'b', 'd', 'r'}
{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
{'a', 'c'}
{'l', 'r', 'z', 'm', 'b', 'd'}
(7)字典
相比List,字典是无序的集合。
创建空字典用{}。
列表构建字典:
>>>dict([(‘Runoob’, 1), (‘Google’, 2), (‘Taobao’, 3)])
{‘Taobao’:3, ‘Runoob’:1, ‘Google’:2}
>>>dict(Runoob=1, Google=2, Taobao=3)
{‘Runoob’:1, ‘Google’:2, ‘Taobao’:3}
>>>{x: x**2 for x in (2, 4, 6)}
{2:4, 4:16, 6:36}
3. Python的注释
补充:多行注释除了用’’’...’’’外,还可以用”””...”””。
4. 运算符
算数运算符:
其中:// 取整,表示向下取最接近于商的整数。如:
>>> -9//2
-5
关系运算符:==,!=,>,>=,<,<=。
赋值运算符:=,+=,-=,*=,//=,/=,%=,**=。
位运算符:&,|,~,^,<<,>>。
逻辑运算符:and,or,not。
成员运算符:in,not in。
身份运算符:比较两个对象的存储单元。id()指的是对象的内存地址。
is:判断两个标识符是否引用自一个对象,是的话返回True(x is y类似于id(x) == id(y))。
is not:判断两个标识符是否引用自不同的对象,是的话返回True(x is not y类似于id(x) != id(y))。
is 与==的区别:is用于判断引用的对象是否是同一个,==判断引用的变量的值是否是相等的。例如:
>>>a = [1, 2, 3]
>>> b = a[:]
>>> b is a
False
>>> b == a
True
5. 数字
整型:Python3中的整型是没有大小限制的,可以当做Python2中的Long类型。
浮点型。
复数:a+bj用complex(a,b)表示。
十六进制和八进制的表示方法:
>>> number = 0xA0F # 十六进制
>>> number
2575
>>> number=0o37 # 八进制
>>> number
31
在混合运算中,整数都被当做浮点数来处理。
符号“//”得到的并不一定是整数类型的数。如:
>>> 7.0//2
3.0
>>> 7/2
3
_变量被用户视为只读变量。
>>> tax = 12.5 / 100
>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06
6. 字符串
也有切片、索引等操作。
获得原始字符串,而没有转义字符。如下所示:
print( r'\n' )
print( R'\n' )
字符串的格式化:%c 格式化字符及其ASCII
%s 格式化字符串
%d 格式化整数
在Python3中,所有的字符串都是Unicode字符串。
字符串的常用方法:
capitalize() 将字符串的第一个字符转换为大写
count() 返回str在字符串中出现的次数
encode() 按照指定的编码格式。
find() 检测str是否包括在字符串中。
index() 和find()的目的是一样的,只是没有字符串的时候会报一个异常。
join(seq) 以指定字符串为分隔符,将seq中的所有元素合并为一个新的字符串。
len() 返回字符串的长度。
upper() 转换字符串中的小写字母为大写。
lower() 将字符串中所有大写字符转换为小写。
max() 字符串中最大的字母;min() 字符串中最小的字母。
replace() 将字符串中的str1替换为str2。
split() 以str为分隔符截取字符串。
splitlines:
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines()
['ab c', '', 'de fg', 'kl']
>>> 'ab c\n\nde fg\rkl\r\n'.splitlines(True)
['ab c\n', '\n', 'de fg\r', 'kl\r\n']
strip() 移除字符串头尾指定的字符或字符序列。
swapcase 将字符串中的大写转换为小写,将小写转换为大写。
7. 列表
序列都可以进行的操作包括索引,切片,加,乘,检查成员。
加:[1, 2, 3]+[4, 5, 6] = [1, 2, 3, 4, 5, 6]
乘:[‘Hi!’]*4 = [‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’]
检查成员:3 in [1, 2, 3]
常用方法:list.reverse() 反向列表中的元素。
list.sort() 对原列表进行排序
list.clear() 清空列表
list.copy() 复制列表
list(seq) 将元组转换为列表
max() 返回列表中元素的最大值
min() 返回列表中元素的最小值
8. 元组
不可以删除元组的元素值。但是,可以修改元组值。
同列表一样,也包括索引,切片,加,乘,检查成员操作。
tuple(seq):将列表转换为元组。
9. 字典
del dict[‘Name’] #删除键 ‘Name’
dict.clear() #清空字典
del dict #删除字典
10. 集合
创建集合的方式见上。
add() 为集合添加元素
update() 为集合增加元素
clear() 移除集合中的所有元素
pop() 随机移除元素
remove() 移除指定元素 元素不存在时,会出现错误。
discard() 删除集合中指定的元素 即使元素不存在,也不会出现错误。