这里写自定义目录标题
1.运行Python脚本
在Windows上,得用命令行的命令python my_script.py
才能运行。linux和mac上,直接my_script.py
就可以运行了。
2.print()函数
逗号相当于空格:
3.数据类型
(1)整数可以加下划线分割
对于很大的数,例如10000000000
,很难数清楚0的个数。Python允许在数字中间以_
分隔,因此,写成10_000_000_000
和10000000000
是完全一样的。十六进制数也可以写成0xa1b2_c3d4
。
(2)输入多行文本
用"""
4.字符编码
编码就是字符和数值之间的映射。每种语言都有自己的编码,于是就出现了Unicode编码,来“一统江湖”。然后出现了更短的utf-8编码,且utf-8是兼容ascii的。
于是,在内存中处理数据时,用Unicode,存储或者传输时,用utf-8。
ord()
和 chr()
就是用来解码和编码的。
还可以用十六进制打印字符:
>>> '\u4e2d\u6587'
'中文'
(1)编码和解码
分别对应endoce()
和decode()
。前者将str变成二进制序列,后者将二进制代码变成字符。
如:decode()
方法
>>> b'ABC'.decode('ascii')
'ABC'
>>> b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'
(2)只用utf-8进行转换
为了避免乱码问题,应当始终坚持使用UTF-8编码对str和bytes进行转换。
也因此,在很多脚本开头都能看见这两句:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
5.list和tuple
(1)tuple
一旦初始化就不能变了。且如果只有一个元素,初始化应该带有一个逗号,否则就会有歧义:
>>> t = (1,)
tuple的不变性:
tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。即指向’a’,就不能改成指向’b’,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!
6.dict
(1)in
判断键是否在字典中:
>>> 'Thomas' in d
False
## (2)pop
删除一个键值对
```python
>>> d.pop('Bob')
75
7.set
set是只有键没有值的dict。
8.引用和对象
a='abc'
中,a
是引用,即存的是地址;而'abc'
才是真正的对象。
100.列表生成式
for前面的语句,是表达式的一部分;而for后面的if,是筛选语句。
#这是表达式的if。即如果x是偶数,则输出x;否则输出相反数
>>> [x if x % 2 == 0 else -x for x in range(1, 11)]
[-1, 2, -3, 4, -5, 6, -7, 8, -9, 10]
#这是筛选语句,不参与最终输出结果的计算。这仅仅是筛选。
>>> [x for x in range(1, 11) if x % 2 == 0]
[2, 4, 6, 8, 10]