Python基础
2016-04-20 16:48:57 62 举报
AI智能生成
Python基础知识
作者其他创作
大纲/内容
计算机常识
计算机
软件
系统软件
应用软件
硬件
运算器
控制器
存储器
输入设备
输出设备
计算机编程语言
机器语言
汇编语言
高级语言
编译类:编译器
解释类:解释器
脚本语言
二进制
整数存储
文件单位换算
1Byte = 8bit
1KB = 1024Byte
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
...
Python 概览
Why
软件质量
开发效率
可移植性
库支持丰富
组件集成
劣势
运行效率
哪些公司在用?
Google
Youtube
搜狗邮箱
知乎
能做什么?
系统编程
GUI
网络脚本
Web
Django
Flask
...
数据库
快速原型
数学及科学计算
优势
面向过程,函数式编程,面向对象
安装
Windows-3.5.1
SublimeText3
Python 运行
数据类型
数值
声明、赋值、使用
表达式
显示
'(0:.2f)'.format(3.3333)
比较,返回布尔型结果:True,False
>
<
>=
<=
==
!=
相除
/
//
取整
math.floor() 往左
math.trunc() 往0
round() 四舍五入
整型
无限精度,仅受限于内存与计算机配置
十六进制、八进制、二进制
字面值
0o 8进制
0x 16进制
0b 2二进制
转换
oct()
hex()
bin()
Decimal
布尔型
True
False
字符串
声明
''
""
"""##"""
转义符
\(在行尾时)
续行符
\\
反斜杠
\'
单引号
\"
双引号
\n
换行
\b
退格
\r
回车符
\t
横向制表符
\v
纵向制表符
\f
换页
\oyy
八进制数yy代表的字符
\xyy
十进制数yy代表的字符
\a
响铃符
...
忽略转义符: r'...'
运算符
+
字符串连接
*
重复输出字符串
[ ]
通过索引获取字符串中的字符
[ : ]
截取字符串中的一部分
in
成员运算符,如果字符串中包含给定的字符返回True
not in
成员运算符,如果字符串中不包含给定的字符返回True
r/R
原始字符串
%
格式化字符串,3.0中用'{}'.format()
基本操作
.replace('a','b')
.split(str="",num=string.count(str))
以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
.splitlines(num=string.count('\n'))
按照行分隔,返回一个包含各行作为元素的列表,如果 num 指定则仅切片 num 个行
.strip()
去除空格及特殊符号
.rstrip()
删除 string 字符串末尾的空格
.lstrip()
删除 string 字符串开头的空格
.startswith(obj,beg=0,end=len(string))
检查字符串是否以 obj 开始,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
.endswith(obj,beg=0, end=len(string))
检查字符串是否以 obj 结束,如果beg 或者 end 指定则检查指定的范围内是否以 obj 结束,如果是,返回 True,否则返回 False.
.find(str,beg=0,end=len(string))
检测 str 是否包含在 string 中,如果 beg 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回-1
.rfind(str,beg=0,end=len(string))
类似于 find()函数,不过是从右边开始查找
.index(str,beg=0,end=len(string))
跟find()方法一样,只不过如果str不在string中会报一个异常
.rindex(str,beg=0,end=len(string))
类似于 index(),不过是从右边开始
.lower()
转换 string 中所有大写字符为小写
.upper()
转换 string 中的小写字母为大写
.swapcase()
大小写互换
.capitalize()
首字母大写
.title()
返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
.center(width)
返回一个字符串居中,并使用空格填充至长度width的新字符串
.join(seq)
Merges (concatenates)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
.count(str,beg=0,end=len(string))
返回str在string里面出现的次数,如果beg或者end指定则返回指定范围内str出现的次数
.decode(encoding='UTF-8',errors='stict')
以 encoding 指定的编码格式解码 string,如果出错默认报一个 ValueError 的 异 常 , 除 非 errors 指 定 的 是 'ignore' 或 者'replace'
.encode(encoding='UTF-8',errors='strict')
以 encoding 指定的编码格式编码 string,如果出错默认报一个ValueError 的异常,除非 errors 指定的是'ignore'或者'replace'
.isalnum()
如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
.isalpha()
如果 string 至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
.isdecimal()
如果 string 只包含十进制数字则返回 True 否则返回 False.
.isdigit()
如果 string 只包含数字则返回 True 否则返回 False.
.islower()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True,否则返回 False
.isnumeric()
如果 string 中只包含数字字符,则返回 True,否则返回 False
.isspace()
如果 string 中只包含空格,则返回 True,否则返回 False.
.istitle()
如果 string 是标题化的(见 title())则返回 True,否则返回 False
.isupper()
如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
.ljust(width)
返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
.expandtabs(tabsize=8)
把字符串 string 中的 tab 符号转为空格,默认的空格数 tabsize 是 8.
子主题
列表 list
任意对象的有序集合
通过索引下标访问元素
可变长度
属于可变序列
操作符
len(l)
长度
+
组合
*
重复
in
元素是否存在于列表中
for x in l:
迭代
函数
cmp(list1,list2)
比较两个列表的元素
len(list)
列表元素的个数
max(list)
返回列表元素最大值
min(list)
返回列表元素最小值
list(seq)
将元组转换为列表
方法
.append()
在列末尾添加新的对象
.extend()
在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
.sort()
对原列表进行排序
.reverse()
反向列表中元素
.insert(index, obj)
将对象插入列表
.index()
从列表中找出某个值第一个匹配项的索引位置
.count()
统计某个元素在列表中出现的次数
.pop([index])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
.remove(obj)
移除列表中某个值的第一个匹配项
注意:引用类型,支持原位改变
拷贝副本
[ : ]
.copy()
字典表 dict
声明
{key:value,...}
dict(key=value)
内置函数
cmp(dict1,dict2)
比较两个字典的元素
len(dict)
计算字典元素个数,及键的总数
str(dict)
输出字典可打印的字符串表示
type(variable)
返回输入的变量类型,如果变量是字典就返回字典类型.
方法
.clear()
删除字典内所有元素
.copy()
返回一个字典的浅复制
.fromkeys()
创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
.get(key, default=None)
返回指定键的值,如果值不在字典中返回default值
.has_key(key)
如果键在字典dict里返回true,否则返回false
.items()
以列表返回可遍历的(键, 值) 元组数组
.keys()
以列表返回一个字典所有的键
.values()
以列表返回字典中的所有值
.setdefault(key, default=None)
和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
.update(dict2)
把字典dict2的键/值对更新到dict里
常用操作
获取
d['key']
d.get('key',default)
合并
d.update(d2)
属性
keys()
values()
items()
排序键
将keys()放入列表
使用全局函数sorted()
元组 tuple
特征
任意对象有序集合
通过下标访问
属“不可变”类型
长度固定,任意类型,任意嵌套
声明
(item,)
index(val):查找索引
count(val):统计数量
运算符
+
连接
*
复制
in
元素是否存在
for ..in..
迭代
内置函数
cmp(tuple1,tuple2)
比较两个元组元素
len(tuple)
计算元组元素个数。
max(tuple)
返回元组中元素最大值
min(tuple)
返回元组中元素最小值。
tuple(seq)
将列表转换为元组。
namedtuple
文件 file
基本语法
file = open('filename',mode)
mode
r
w
a
b
+
操作
.read()
.readline()
.readlines()
.write()
.close()
pickle存取Python对象
dump(对象,目标文件)
load(文件)
汇总
集合
序列
可变
列表 list
不可变
字符串 str
元组 tuple
字节数组
映射
字典表 dict
集合
Set
数字
整型
int
boolean
浮点型
float
Decimal
...
可调用
函数 function
生成器 Generator
类 class
方法
其它
文件
None
视图
...
内部
Type
...
语句与表达式
代码风格
代码格式指南
PEP8
缩进4空格
一行不超过79
空行
赋值语句
基本
序列赋值
扩展序列解包赋值
*变量,获取剩余元素到List
多目标赋值
a=b=0
参数化赋值
表达式
函数调用
字面值
方法调用
打印操作
print()
sep = '分隔符'
end = '终止符'
fiel = 指定文件
流程控制
if..语句
一般格式
多重分支
三元运算符
a = Y if X else Z
while 循环
一般格式
break
continue
pass
else
for 循环
range()
enumerate()
迭代
迭代协议
__next__()
迭代工具 for .. 推导.. map..
迭代器对象
已经实现
可迭代对象
liter() -> __iter__() 用于生成迭代器
内置可迭代对象
range()
map()
zip()
...
函数
why
最大化代码重用
最小化代码冗余
过程分解
定义
def 函数名(参数1,...):函数体
调用
函数名(实体参数)
变量作用域
变量作用域
Built - in
Global
global
Enclousure
nonlocal
Local
参数
传递
不可变类型,传递副本给函数,函数内操作不影响原始值
可变类型,传递地址引用,函数内操作可能会影响原始值
匹配
位置匹配
关键字匹配
默认值(调用时省略传值)
*args 任意数量参数
**kwargs
Lambda表达式
定义匿名函数
基本格式
lambda 参数1,...:函数
高级工具
map(函数,可迭代对象)
filter(函数,可迭代对象)
包与模块管理
模块
指令
import
from
importlib.reload(模块)
包
__init__
why
代码重用
命名空间
实现数据或服务共享
步骤
1.找到模块文件
2.编译为字节码
3.运行模块文件
搜索范围
1.程序主目录
2.环境变量
3.标准库
4.扩展库
面向对象
步骤
OOA面向对象分析
OOD面向对象设计
OOP面向对象编程
实现
1.分析对象特征行为
2.写类描述对象模板
3.实例化,模拟过程
特征
封装
继承
多态
内置类属性
__dict__
类的属性(包含一个字典,由类的数据属性组成)
__doc__
类的文档字符串
__name__
类名
__module__
类定义所在的模块(类的全名是‘__main__.className’,如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)
__bases__:类的所有父类构成元素(包含了一个由所有父类组成的元组)
__slots__
基础重载方法
__init__(self[,args...])
构造函数
简单调用方法:obj=className(args)
__del__(self)
析构方法,删除一个对象
dell obj
__repr__(self)
转化为供解释器读取的形式
repr(obj)
__str__(self)
用于将值转化为适于人阅读的形式
str(obj)
__cmp__(self, x)
对象比较
cmp(obj, x)
错误异常处理
错误类型
语法错误
语义错误
逻辑错误
异常处理
try:有可能出现异常代码
except 异常类型 as 实例: 捕获特定异常
finally:不论是否遇到异常 均会执行
else:未遇到异常时
raise:手动抛出异常
测试
unittest
IDE配置
常用软件
sublime text3
Pycharm
虚拟环境
CSV,JSON读写
CSV模块
列表读写 list
csv.reader(f)
csv.writer(f)
字典读写 dict
csv.DictWriter(f, headers)
csv.DictReader(f)
JSON
json.dump(data, f)
写入文件
json.dumps()
以字符串的形式
data = json.load(f)
读取文件
json.loads()
以为字符串的形式读取
SQLite
动态类型
NULL
INTEGER
REAL
TEXT
BLOB
SQLite操作
sqlite3
连接对象:sqlite3.connect('数据库文件.db')
commit()
close()
游标:cursor = conn.cursor()
execute('SQL语句',[参数])
fetchall():获取所有结果到列表
fetchone()
fetchmany(记录数)
参数化查询:避免SQL注入
?:参数传递tuple
:参数名,参数传递字典表
0 条评论
下一页