综述
应用场景:
首选是网络应用,包括网站、后台服务等等;其次是许多日常需要的小工具,包括系统管理员需要的脚本任务等等;另外就是把其他语言开发的程序再包装起来,方便使用。
优缺点:
优点:“优雅”、“明确”、“简单”、“内置电池( batteries included)”(各种库),所以开发速度快。
缺点:运行慢,源码公开。
要点
!/usr/bin/env python3 #为了在linux上运行
# -*- coding: utf-8 -*- #编码声明
数据类型
- 整数
1
0xff00
etc. - 浮点数
3.14
3e-5
- 字符串
"abc"
'abc'
r'a\b\vc\\cc\\' # 非转义
、 - 布尔值
True
False
,可进行and or not
运算 - 空值
None
- 常量
PI=3.1415926 #默认大写,其实也是变量
- 在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转为UTF-8编码.在最新的Python 3版本中,字符串是以Unicode编码的
Python提供了
ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符:1
2
3
4
5
6
7
8>>>ord('A')
65
>>>chr(65)
'A'
>>>chr(25991)
'文'
>>>'\u4e2d\u6587' # 16进制的str
'中文'以Unicode表示的str通过encode()方法可以编码为指定的bytes.如果我们从网络或磁盘上读取了字节流,那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法
1
2
3
4
5
6
7
8'ABC'.encode('ascii')
b'ABC'
'中文'.encode('utf-8')
b'\xe4\xb8\xad\xe6\x96\x87'
b'ABC'.decode('ascii')
'ABC'
b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')
'中文'格式化输出
1
2
3
4'%2d-%02d' % (3, 1)
' 3-01'
'%.2f' % 3.1415926
'3.14'列表
classmates = ['Michael', 'Bob', 'Tracy']
.可以下标访问。方法主要有.append('Lucy')
;.pop()
;.pop(i)
;classmates.insert(1, 'Jack')
里面数据类型可以不同- tuple 不可更改的列表
classmates = ('Michael', 'Bob', 'Tracy')
- dic
d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}
;方法:d.get('Thomas', -1)
;d.pop('Bob')
- set
s = set([1, 1, 2, 2, 3, 3])
;s.add(4)
;s.remove(4)
;两个set可以做数学意义上的交集、并集等操作
函数
函数主要注意默认参数,可变参数,关键字参数,命名关键字参数。
*args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。以及调用函数时如何传入可变参数和关键字参数的语法:可变参数既可以直接传入:func(1, 2, 3)
,又可以先组装list或tuple,再通过*args
传入:func(*(1, 2, 3))
;关键字参数既可以直接传入:func(a=1, b=2)
,又可以先组装dict,再通过**kw
传入:func(**{'a': 1, 'b': 2})
。使用*args
和**kw
是Python的习惯写法,当然也可以用其他参数名,但最好使用习惯用法。命名的关键字参数是为了限制调用者可以传入的参数名,同时可以提供默认值。定义命名的关键字参数在没有可变参数的情况下不要忘了写分隔符*
,否则定义的将是位置参数。