'''
编码: python3字符串是unicode。 '\u8d3f' 默认去编码为汉字
'\u8d3f' '\u8def'
文件操作:
1.r w a x +可读写模式 rb wb将文件内容以二进制读取
2.with open ... 语句运行完之后,自动给你关闭
3.try except(多个) else(不报错运行) finally(总是运行)
4.raise 抛出异常
5.assert 断言 忘记了请回顾上课讲的例子
'''
##f = open('test.txt','w+')
#with open('test.txt','r+') as g:# 别名g=open('test.txt','r+')
# g.write('你好,xxx')
##f=open('test.txt','r+')
##f.write('再见')
##f.mode
##f.closed
#文件写入只有覆盖模式 插入模式 insert
#####################################################
#迭代器
##li=[]
##for i in range(1,11): #能被for循环的对象都是可迭代对象
## print(i)
## li.append(i)
#列表推导式 iterator
l1=[i for i in range(1,11)]
l2={i for i in range(1,11)}
l3={i:'gg' for i in range(1,11)}
#三元运算 三目运算符
a=1
b=2
c=3
d=c if a else b
##if a:
## d=c
##else:
## d=b
##n=iter(l1)
#容器 装有元素,不能直接查看,通过next()取出元素
# 元素全部取出后,next会报错
# 只能按照顺序取 可以使用for 循环
# next(n) 等效于 n.__next__()
'迭代器协议就是实现对象的 __iter__() 和__next__()方法。'
#for 循环到底发生了什么
for i in l1: #l1--> l=iter(l1)-->i=next(i)
print(i)
#生成器 generator 生成器都是迭代器的对象(即类似迭代器的属性。
#可以使用next)
#容器 迭代器的元素确定了, 生成器没确定。
l5=(i for i in range(1,11)) #[]--》 ()
type(l5)
#斐波那契数列 1,1,2,3,5,8,............数学公式写不出来
def fib(maxnum): #函数
n,a,b=0,0,1
while n<maxnum:
print(b)
a,b=b,a+b
n=n+1
def fib2(maxnum): # a=fib2(6) a为生成器 fib2生成器函数
n,a,b=0,0,1
while n<maxnum:
yield b #yield 返回的是一个生成器、运行到yield会停止
a,b=b,a+b
n=n+1
def ff():
print('天才第一步 1')
yield 2
print('雀氏纸尿裤 3')
yield 4
print('球王贝利代言 5')
yield 6
def fun(n): #生成器代码运行顺序
i=0
while i < n:
print('******',i)
yield i
i += 1
print('++++',i)
'''
函数是顺序执行,遇到return语句或者最后一行函数语句就返回。
而变成generator的函数,在每次调用next()的时候执行,
遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。
'''
#生成器并不保存元素,保存的是算法 一边生成一边运行
def fff():
n=1
while True:
print(n)
yield n
n+=1 #每次只取出一条数据
#如何去创建生成器?
# 1.l5=(i for i in range(1,11)) [i for i in range(1,11)]
#改括号
# 2.使用yield
#yield 返回生成器 ,运行到yield会停止
# 生成器保存的是算法
#a=list(range(2**32)) #很占内存
#模块
#什么是模块? xxx.py 一个文件
#python--lib 内置模块
#如何自己写一个模块 dean
import dean
#模块的名字
print(__name__)
##print(dean.__name__)
#本文件名,永远为main, 其他导入进来的模块为文件名
from keyword import kwlist
from keyword import kwlist as l #别名
##from long import * 模块里所有
'''
import 潭洲
潭洲。林泷
from 潭洲 improt 林泷
林泷
'''
#同一目录直接导入
#不同目录下导入 improt sys (system)
import sys
sys.path #(返回一个列表 是搜寻模块的所有路径)
sys.path.append(r'F:\\') #r防止转义
# 将目录添加到path下,让python找到相应目录下模块
#包 文件夹里放了很多模块
import xml
import xml.dom
import xml.dom.domreg
#如何安装包
##pip install 包名 #
#第三方的包 放置位置 Python36\Lib\site-packages
##pip uninstall 卸载
#pycache 机制 类似缓存
# 第一次运行时,生成这个文件
# 下一次没更改代码,这个文件就可以帮你更快速的运行
浙公网安备 33010602011771号