for#列表生成式
 data = [1,2,3,4,5,6,7]

 #####列表生成式
#data = [i+1 for i in data] data = [i*2 if i>5 else i for i in data] print(data) data = [i//2 if i>4 else i for i in data] print(data)
1.生成器

yield a #返回a,同时挂起当前这个函数
yield a #返回a, 同时挂起当前这个函数, a返回给了通过__next__()调用当前函数的人
这代表通过就是实现了函数的中断,并且保存了函数的中间执行状态
 # data = ( x*2 for x in range(5))
#
# #print(data)
#
# # for i in data:
# # print(i)
#
# print(data.__next__())
# print(data.__next__())
# print(data.__next__())
# print(next(data))
# print(next(data)) def fib(num):#循环次数
count = 0
a,b = 0,1
while count<num:
tmp = a
a = b
b = a + tmp
print(a)
count +=1
yield a f=fib(10)
f.__next__()
next(f) a,b = 3,5
a,b = b,a+b
print(a)
2.迭代器

3.装饰器
完全符合 开放-封闭原则
不改变原有功能代码,不改变原有调用方式
实现扩展新的功能
 user_status = False

 def login(func):
def inner():
_username = "hsc"
_password = "qwer"
global user_status if user_status == False:
username = input("user:")
password = input("password:") if username == _username and password == _password:
print("welcome lalala...")
user_status = True
else:
print("wrong username or password") if user_status == True:
func()
return inner def home():
print("---首页---") @login
def america():
print("---欧美专区---") def japan():
print("---japan---") @login
def henan():
print("---henan---") home() america() henan()
4.模块
import auth #导入整个模块
from auth import login #导入auth的login函数 __file__ 相对路径
os.path.abspath 相对路径转为绝对路径
 import sys
import os
BaseDir = os.path.abspath( os.path.dirname(os.path.dirname(__file__)))
print(BaseDir)
BaseDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
print(BaseDir)
sys.path.append(BaseDir)
print(sys.path) from day4 import test

5.并发

 import time
def consumer(name):
print("%s 准备吃包子啦!"%name)
while True:
baozi = yield
print("包子[%s]来了,被[%s]吃了!"%(baozi,name)) def producer(name):
c = consumer('A')
c2 = consumer('B')
c.__next__()
c2.__next__()
print("开始准备做包子了!")
for i in range(10):
time.sleep(1)
print("做了2个包子!")
c.send(i)
c2.send(i)
producer("hsc") #send 传递数据给yield
py2
目录里没有__init__,那就只是一个目录,目录是不可以被导入的
有__init__,那这个目录就变成了 “包”==package pypi 公共模块库 序列化:把内存对象转成字符串形式,就叫序列化
把一个字符串专成对应的内存对象,就叫反序列化
作用:持久化内存数据对象 json #支持所有语言,支持字符串,字典等数据类型,但是函数不行
序列化
 import json

 def sayhi():
print('hey') data = {
'name':'hsc',
'age':18,
'func':sayhi
} f = open('data.txt','w')
# f.write(str(data))
#
# f = open('data.txt','r')
# data = eval(f.read())
# print(data) #json.dumps()
#json.dump()
#json.loads()
#json.load()
f.write(json.dumps(data)) #=========================== f.close()
反序列化
 import json

 f = open('data.txt',encoding='utf-8')
# data = json.loads(f.read()) data = json.load(f) print(data['age']) f.close()
        pickle #仅限于python语言,支持所有数据类型
序列化
 import pickle

 def sayhi():
print('hey')
data = {
'name':'hsc',
'age':18,
'func':sayhi
} f = open('data.pkl','wb')
f.write(pickle.dumps(data))
反序列化
 import pickle

 f = open('data.pkl','rb')
data = pickle.loads(f.read()) print(data)

        

Python之路,day5-Python基础的更多相关文章

  1. Python之路,Day5 - Python基础5

    本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 一.列表生成器 , 1, 2, 3, 4, 5, 6, 7, 8, 9 ...

  2. 小白的Python之路 day5 python模块详解及import本质

    一.定义 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能) 本质就是.py结尾的python文件(文件名:test.py,对应的模块名:test) 包:用来从逻辑上组织模块 ...

  3. Python之路,Day4 - Python基础4 (new版)

    Python之路,Day4 - Python基础4 (new版)   本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...

  4. Python之路,Day1 - Python基础1

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  5. Python之路,Day1 - Python基础1(转载Alex)

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  6. Python之路,Day1 - Python基础1 --转自金角大王

    本节内容 Python介绍 发展史 Python 2 or 3? 安装 Hello World程序 变量 用户输入 模块初识 .pyc是个什么鬼? 数据类型初识 数据运算 表达式if ...else语 ...

  7. Python之路,Day1 - Python基础1 介绍、基本语法、流程控制

    本节内容 1.python介绍 2.发展史 3.python 2.x or python 3.x ? 4.python 安装 5.第一个程序 Hello World 程序 6.变量 7.用户输入 8. ...

  8. Python之路:Python简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间他为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 ...

  9. Python之路:Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  10. Python之路-初识python及环境搭建与测试(Python安装、Anaconda安装、PyCharm安装)

    一.认识Python 起源 Python的作者是著名的“龟叔”Guido van Rossum,他希望有一种语言,这种语言能够像C语言那样,能够全面调用计算机的功能接口,又可以像shell那样,可以轻 ...

随机推荐

  1. 《C++primer》v5 第5章 语句 读书笔记 习题答案

    5.1 空语句只有一个";".如果什么也不想做可以使用空语句. 5.2 用花括号{}括起来的叫块,也叫复合语句.有多条语句作用在同一个作用域时,需要用花括号括起来. 5.3 降低了 ...

  2. 自定义jsp标签

    1.类: package ===============================; import javax.servlet.jsp.JspTagException; import javax ...

  3. position属性的四个value

    As we all know, position属性有四个值,分别为 relative,fixed,absolute, static. 1,relative相对定位 (不会脱离文档流) 在一个相对定位 ...

  4. MFC之TreeCtrl控件使用经验总结

    树形控件可以用于树形的结构,其中有一个根接点(Root)然后下面有许多子结点,而每个子结点上有允许有一个或多个或没有子结点.MFC中使用CTreeCtrl类来封装树形控件的各种操作.通过调用BOOL ...

  5. PIC XC8 EEPROM操作

    要做一个报警功能的东东,要求可以通过遥控来改变遥控内容.由于对系统的稳定性要求很高,所以用了看门狗. 可是看门狗复位会引起所有寄存器重置,恢复到默认状态.遥控要改变的内容也被复位了,所以只能借助EEP ...

  6. oracle xmltype导入并解析Excel数据 (二)规则说明

    规则表字段说明如下: 其中RULE_FUNC_CUSTOMIZE表示,用户自己写函数,去判断数据是否合法,存储的是函数的名字 此函数的参数只有一个,该列的值,字段类型是Varchar2, 校验失败的话 ...

  7. 佛祖保佑,永无bug

    /* _ooOoo_ o8888888o 88" . "88 (| -_- |) O\ = /O ____/`---'\____ .' \\| |// `. / \\||| : | ...

  8. CSS3阴影 box-shadow的使用和技巧总结

    text-shadow是给文本添加阴影效果,box-shadow是给元素块添加周边阴影效果.随着html5和CSS3的普及,这一特殊效果使用越来越普遍. 基本语法是{box-shadow:[inset ...

  9. win7 64位安装pygame

    需要的工具包 Python安装包 Pip安装包(版本无要求) Pygame安装包(版本需要与python匹配) http://jingyan.baidu.com/article/425e69e6ed3 ...

  10. wdcp的安装方法与常见问题

    wdcp(WDlinux Control Panel)是一套用PHP开发的Linux服务器管理系统,通过面板来操作可以彻底放弃用ssh 命令来操作的繁琐,让Linux服务器系统变得更容易使用,可以在线 ...