15 .内容回顾(两部分)

第一部分

python
python是一门弱类型的解释型的高级编程语言

特点:简单 清晰 明确
你为什么学习python ?
第一个python程序 helloWord

变量 :程序运行过程中产生的中间值,供给后面的程序使用

变量的命名规范:
1.以数字,下划线,字母开头
2.可以有数字,但不能是数字开头,不能全部是数字
3.不能使用python中的关键字
4.不要用中文
5.不要太长,要有意义
6.区分大小写
7.建议使用驼峰体和下划线命名

变量的数据类型
1.int 整形数字 + - * / % // bit length() 计算整形数字转换为二进制的有效位数

2.str 字符串 由单引号 双引号 三引号连接
字符串
+ 拼接
* 重复字符串
% 格式化输出 %s %d %f
索引和切片
索引 指向每一个字符,每一个字符都有自己的下表
切片 [起始位置:终止为止:步长] 终止位置取不到

工作原理 s[起始位置+步长]

字符串的操作方法
1.upper() 全部转换为大写
2.split() 切割 打开之后是列表
3.strip() 删除前后位置的换行符,\n 空格
4.replace(old new) 把old换为new
5.join 把列表中的元素拼接成字符串
6.startswith() 以...开头
7.find() count() index() 查找
8.isdigit() 判断是否由数字
9.len() 长度
10.encode(编码集)编码


编码
ASCII 8bites 1byte
gbk 国标码
Unicode 万国码
utf-8 可变长度的Unicode
英文 1bytes
欧洲 2bytes
中文 3bytes
编码之后的数据 bytes
bytes.decode() 解码
可迭代对象 for i in 可迭代对象:
循环体(break.continue)
else:
bool:布尔值
取值 True False
用来转换
类型转换
* False : '',[].{},0,None,tuple(),set()
True :除了上面的全都是

list :列表[]每个元素之间用逗号隔开,可以装任何数据类型
列表是可变的 并且有索引和切片功能
列表的增删改查

lst.append()追加
insert(索引,数据) ****
extend(iterable) 迭代添加,对可迭代对象进行分类到最小元素进行删除

pop()
remove(元素) ****
del 切片删
clear() 清空

索引切片进行修改 ****
lst[i] = '新元素'

一般用索引 也可以用for循环
对列表的操作
count() 计数
index()查找元素
sort() 排序
reverse() 翻转 ****
列表不能直接删除,涉及到元素的移动,要把要删除的元素放在一个新列表
循环新列表,删除老列表
列表的拷贝 ****
1.赋值操作,没有创建对象,两个变量共用一个对象
深浅拷贝
浅拷贝,只拷贝一层
深拷贝 和这个对象相关的所有都拷贝过来
推导式[结果 for循环 if判断] ****


dict 字典:
{},内部存储key,value key必须是可哈希的数据类型,不可变,value可以是任何数据类型
字典没有索引和切片 ****
字典的增删改查

dic[新key] = value
dic.setdefault(key.value)

pop(key)
popitems() 随机删除一个
del
clear() 清空

dic[老key] = 新value
dic.update({}) 把另一个字典更新到原字典中 ******

通过key来查询
get(key.default) *****
setdefault(key,value) *******
常用操作
keys() 获取所有的key
values() 获取所有的value
items() 获取所有的键值对(key,value)

len() 计算键值对的个数 *****

字典在迭代的时候不可以改变大小
把要删除的key保存在列表中 循环列表 删除字典

dic.fromkeys()
1.返回新列表
2.所有的key共用同一个value ****
字典推导式 {key:value for 循环 if语句}
元组 tuple
特点
不可变 儿子不可变 孙子可变 第一层不可变

基本上没有什么操作
写出一下数据类型五个操作 ********
str
list
dic
tuple 元组不可变没有增删改 count index __iter__() len __init__

可迭代
for 循环
set 集合
无序 不重复 可哈希
去重
可以循环
frozenset() 冻结的集合 不可变可哈希
基本语法:
运算符:
1. 算数运算: +-*/ // % **
2. 比较运算:> < == >= <= != <>
3. 逻辑运算:
and 并且的含义. 左右两端必须同时为真. 结果才能是真
or 或者. 左右两端有一个是真. 结果就是真
not 非. 非真既假, 非假既真

顺序:() => not => and => or
a or b
如果a非零。 返回a。 否则返回b
and和or相反
a and b
如果a非零。 返回b。 否则返回0
4. 赋值运算
+= -= *= /= %=
a+=b a = a + b

5. 成员运算
xxx in xxxx
6. is和 ==
is: 比较的是内存地址
==: 比较的是值
小数据池(常量池): 会对str, int, bool进行缓存. 节省内存. 方便调用.


if语句
if 条件:
语句块
elif 条件:
语句块
.....
else:
语句块
while 条件
循环体
break 结束当前本层循环
continue 结束当前本次循环.继续执行下一次循环
else:
当条件不成立的时候

print(打印的内容, xxx, end="结束符", sep="分隔符")
str = input("提示") 用户交互

range(10) 0-9
range(5, 10) 5-9
range(5, 10, 3) 5 8
文件操作
open(文件路径, mode="模式", encoding="编码")
模式: r, w, a, r+, w+, a+, rb, wb, ab
for循环可以迭代文件句柄. 拿到的是一行一行的内容
seek()移动光标
tell()查看光标位置

with open(xxxx) as f:
操作

文件修改:
从源文件中读取内容. 修改, 然后写入到新文件中. 删除源文件. 重命名新文件

第二部分
函数
函数:对功能和动作的封装, 类中的函数一般是方法
语法:
def 函数名(参数):
函数体(return)
ret = 函数名

函数名:函数名就是一个变量名,可以进行赋值,可以作为参数,可以作为返回值还可以作为集合类的元素
参数:
给函数传递的信息
1,形参:*******
在函数声明位置定义的变量
分类:
1.位置参数
2.默认值参数,共享
3.动态传参
1.*args 动态接收位置参数
2.**kwargs 动态接收关键字参数
3. **在形参位置表示聚合
4.**在实参位置表示打散
顺序
位置 *args 默认值 **kwargs
def func(*args,**kwargs)无敌传参
pass
2.实参 *******
在函数调用的时候给函数传递具体的值
分类:
1.位置参数
2.关键字参数
3.混合参数 关键字在前 位置在后
3.传参:
把实参传递给形参的过程

名称空间
1.内置名称
2.全局名称
3.局部名称
作用域
1.全局作用域
2.局部作用域
globals() 查看全局作用域中的内容
locals() 查看当前作用域中的内容
global 在局部引入全局变量,创建全局变量
nonlocal 在局部,引入离他最近的上一个变量


函数的嵌套
def func():
def inner()
pass
return inner
闭包 *****
在内层函数中访问外层函数的变量,最好是返回内部函数
作用:
1.保护变量不被更改
2,可以让一个变量常驻内存
def func():
a = 10
def inner():
return a
return inner
迭代器 ******
可迭代对象:在数据类型中包含了__iter__()
迭代器:访问__iter__可以获取到该数据类型的迭代器,包含__iter____next__

特点
1.节省内存
2.惰性机制
3.只能向前
利用__iter__和while循环来模拟for循环
lst = []
it = lst.__iter__()
while :
try :
it.__next__()
except StopIteration:
berak


生成器: *******
生成器的本质就是迭代器
生成器有三种方式来创建
1.生成器函数
2.生成器表达式
3.类型转换(range())
生成器函数:
生成器函数中包括yield
yield 表示返回,可以分段的执行函数

生成器函数在调用的时候,或去生成器,而不是执行函数
def func():
yield xxxx
func() 获取生成器

生成器的使用:
1.__next__() 执行下一个yield
2.send() 可以给上一个yield赋值

yield from:
把一个可迭代对象转换成生成器

生成器表达式
(结果 for if)

内置函数 68 个

lambda:
匿名函数
lambda 参数:返回值





















posted on 2018-10-10 22:21  小王子QAQ  阅读(27)  评论(0)    收藏  举报