最近总觉得没能很好地掌握python,没有一种得心应手的感觉。在二零二零年二月二十二日,准备再过一遍,加深印象,并做笔记方便日后翻阅。
注:本文参考菜鸟教程。
目录
命令行参数
python -h
可用于查看命令行参数帮助信息。
标准数据类型
Python3 中有六个标准的数据类型。可分为不可变数据和可变数据。
- 不可变数据:Number(数字)、String(字符串)、Tuple(元组);
- 可变数据:List(列表)、Dictionary(字典)、Set(集合)。
注:不可变数据类型在变量值发生改变后会新建对象,而可变数据不会。
Number(数字)
查询变量所指的对象类型可以用type()
和isinstance()
,区别:
- type()不会认为子类是一种父类类型。
- isinstance()会认为子类是一种父类类型。
数值运算:
>>> 2 // 4 # 整除
0
>>> 17 % 3 # 取余
2
>>> 2 ** 5 # 乘方
32
复数可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
String(字符串)
与 C 字符串不同,Python 字符串不能被改变。向一个索引位置赋值,比如word[0] = 'm'
会导致错误。
List(列表)
列表中元素可以改变:
>>> a = [1, 2, 3, 4, 5, 6]
>>> a[2:5] = [] # 将对应的元素值设置为 []
>>> a
[1, 2, 6]
倒读句子:(逆向读取)
def reverseWords(input):
# 通过空格将字符串分隔符,把各个单词分隔为列表
inputWords = input.split(" ")
# inputWords[-1::-1] 有三个参数
# 第一个参数 -1 表示最后一个元素
# 第二个参数为空,表示移动到列表末尾
# 第三个参数为步长,-1 表示逆向
inputWords=inputWords[-1::-1]
# 重新组合字符串
output = ' '.join(inputWords)
return output
if __name__ == "__main__":
input = 'I like runoob'
rw = reverseWords(input)
print(rw)
List 内置了有很多方法,例如 append()、pop() 等等,这在后面会讲到。
Tuple(元组)
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 ()
里。
包含 0 或 1 个元素的元组的额外语法:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
小结:
- 字符串列表元组都可以被索引和切片;可以用
+
连接,用*
重复。 - string、list 和 tuple 都属于 sequence(序列)。
Set(集合)
集合不同于列表和元组类型,集合存储的元素是无序且不能重复的,同数学中的集合一样,集合可以执行集合的并、交、差运算。集合的基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { }
或者 set()
函数创建集合,注意:创建一个空集合必须用 set()
。
删除重复元素、关系测试、集合运算:
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
print(student) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Rose' in student :
print('Rose 在集合中')
else :
print('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 中不同时存在的元素
输出结果:
{'Mary', 'Jim', 'Rose', 'Jack', 'Tom'}
Rose 在集合中
{'b', 'a', 'c', 'r', 'd'}
{'b', 'd', 'r'}
{'l', 'r', 'a', 'c', 'z', 'm', 'b', 'd'}
{'a', 'c'}
{'l', 'r', 'z', 'm', 'b', 'd'}
Dictionary(字典)
字典是一个无序的 键(key) : 值(value) 的集合。
dict.keys()
:取出所有键
dict.values()
:取出所有值
创建空字典 :dict = {}
构造函数 dict()
可以直接从键值对序列中构建字典:
>>> list = [('Runoob', 1), ('Google', 2), ('Taobao', 3)]
>>> dict(list)
{'Taobao': 3, 'Runoob': 1, 'Google': 2}
>>> {x: x**2 for x in (2, 4, 6)}
{2: 4, 4: 16, 6: 36}
>>> dict(Runoob=1, Google=2, Taobao=3)
{'Runoob': 1, 'Google': 2, 'Taobao': 3}
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
数据类型转换
repr(x):将对象 x 转换为表达式字符串
eval(str):用来计算在字符串中的有效Python表达式,并返回一个对象
frozenset(s):转换为不可变集合
chr(x):将一个整数转换为一个字符(ASCII)
ord(x):将一个字符转换为它的整数值