1. Python视频

1) 多层装饰器

USER_INFO = {}def check_login(func):def inner(*args, **kwargs):if USER_INFO.get('is_login', None):ret = func(*args, **kwargs)return retelse:print('please login')return innerdef check_admin(func):def inner(*args, **kwargs):if USER_INFO.get('type', None) == 2:ret = func(*args, **kwargs)return retelse:print('no permission')return inner@check_login
@check_admin
def index():        # managerprint('Index')def home():            # userprint('home')def login():user = input('input username\n>>>')pwd = input('input password\n>>>')if user == 'admin' and pwd == 'admin':USER_INFO['is_login'] = TrueUSER_INFO['type'] = 2else:if user == 'wayne' and pwd == 'phuck':USER_INFO['is_login'] = TrueUSER_INFO['type'] = 1def main():while True:inp = input('1.login 2.information 3.management\n>>>')if inp == '1':login()elif inp == '2':home()elif inp == '3':index()main()

2) 字符串格式化
  - 百分号方式
    %[(name)][flags][width].[precision]typecode
    1.顺序传入参数
    2.指定名称传入参数
    3.保留小数点后几位
    4.如果出现占位符,只写%%,打印时%
  - Format方式
    [[fill]align][sign][#][0][width][,][.precision][type]

# s1 = 'i am %s' %'alex'
# s1 = 'i am %s age %d' %('alex',18)
# s1 = 'i am %(name)s age %(age)d' %{'name':'alex','age':18}
# s1 = 'percent %.2f' %99.97623
# s1 = 'i am %(pp).2f' %{'pp':123.425556}
# s1 = 'i am %.2f %%' %123.43556
# print(s1)s1 = 'i am {}, age {}, {}'.format('seven',18,'alex')
s1 = 'i am {}, age {}, {}'.format(*['seven',18,'alex'])
s1 = 'i am {0}, age {1}, really {0}'.format('seven',19)
s1 = 'i am {0}, age {1}, really {0}'.format(*['seven',19])
s1 = 'i am {name}, age {age}, really {name}'.format(name='seven',age=20)
s1 = 'i am {name}, age {age}, really {name}'.format(**{'name':'seven','age':20})
s1 = 'i am {0[0]}, age {1[1]}, really {0[2]}'.format([1,2,3],[11,22,33])
s1 = 'i am {:s}, age {:d}, money {:f}'.format('seven',18,8888.1)
s1 = 'i am {:s}, age {:d}'.format(*['seven',18])
s1 = 'i am {name:s}, age {age:d}'.format(name='seven',age=18)
s1 = 'i am {name:s}, age {age:d}'.format(**{'name':'seven','age':18})
s1 = 'numbers:{:#b},{:#o},{:#d},{:#x},{:#X},{:%}'.format(15,15,15,15,15,15,87623,2)
s1 = 'numbers:{0:b},{0:o},{0:d},{0:x},{0:X},{1:%}'.format(15,16)
s1 = 'numbers:{num:b},{num:o},{num:d},{num:x},{num:X},{num:%}'.format(num=15)print(s1)

  

3) 生成器
  - 一个函数调用时返回一个迭代器,那这个函数就叫做生成器(generator);

  - 如果函数中包含yield语法,那这个函数就会变成生成器;  

>>> def func():
... yield 1
... yield 2
... yield 3
... yield 4
...
>>>
>>> temp = func()
>>> temp
<generator object func at 0x00000207CC064A40>
>>> temp.__next__()
1
>>> temp.__next__()
2
>>> temp.__next__()
3
>>> temp.__next__()
4
>>> temp.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration
>>>

  

def func():print(111)yield 1print(222)yield 2print(333)yield 3ret = func()
r1 = ret.__next__()  # 进入函数找到yield,获取yield后面的数据
print(r1)r2 = ret.__next__()
print(r2)r3 = ret.__next__()
print(r3)# r4 = ret.__next__()
# print(r4)

  

def myrange(arg):start = 0while True:if start > arg:returnyield startstart += 1ret = myrange(3)
r = ret.__next__()
print(r)
r = ret.__next__()
print(r)
r = ret.__next__()
print(r)
r = ret.__next__()
print(r)

4) 迭代器
  - 迭代器是访问集合元素的一种方式。
  - 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。
  - 迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退。
  - 迭代器的一大优点是不要求事先准备好整个迭代过程中所有的元素。
    迭代器仅仅在迭代到某个元素时才计算该元素,而在这之前或之后,元素可以不存在或者被销毁。
    这个特点使得它特别适合用于遍历一些巨大的或是无限的集合,比如几个G的文件
  - 特点:
    访问者不需要关心迭代器内部的结构,仅需通过next()方法不断去取下一个内容
    不能随机访问集合中的某个值 ,只能从头到尾依次访问
    访问到一半时不能往回退
    便于循环比较大的数据集合,节省内存

>>> a = iter([1,2,3,4,5])
>>> a
<list_iterator object at 0x00000207CC08FFD0>
>>> a.__next__()
1
>>> a.__next__()
2
>>> a.__next__()
3
>>> a.__next__()
4
>>> a.__next__()
5
>>> a.__next__()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
StopIteration

5) 递归

def mul(n):
if n>1:
res = n * mul(n-1)
return res
else:
res = 1
return resr = mul(8)
print(r)

  

6) 模块
  - py:模块 (先导入,后使用)
  - 内置模块
  - 自定义模块
  - 第三方模块
  - 其他:类库
  - 为什么要有模块:将代码归类。
  - 导入模块的依据:

import sys
for item in sys.path:
print(item)
sys.path.append('E:\\')

  

  - 模块名称的重要性 (不要与内置模块重名)
  - 导入模块:
    单模块:import
    嵌套在文件夹下:from xxx import xxx
    from xxx import xxx as ooo
  - 第三方模块安装:
    - 通过pip3安装: pip3 install requests
    - 通过源码: $ python setup.py install
7) 模块 - 序列化
  - json 用于[字符串]和[python基本数据类型]间进行转换
  - json模块提供了四个功能: dumps, dump, loads, load

# import json# dic = {'k1': 'v1'}
# print(dic, type(dic))
#
# res = json.dumps(dic)  # 将python的基本数据类型转化成字符串类型
# print(res,type(res))
#
#
# s1 = '{"abc": 123}'  # 外面单引号,里面双引号
# dic2 = json.loads(s1)  # 将python的字符串类型转化成基本数据类型
# print(dic2, type(dic2))import jsonli = [11,22,33]
json.dump(li, open('db', 'w'))  # dump:列表转化为字符串,再写入文件li = json.load(open('db','r'))  # load:读取文件,并将字符串转化为列表
print(type(li),li)

  

  - 基于天气API获取天气相关JSON数据

import requests
import json_test1response = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=北京')
response.encoding = 'utf-8'print(type(response.text))dic = json_test1.loads(response.text)
print(type(dic))

  

  - pickle

转载于:https://www.cnblogs.com/wnzhong/p/5887076.html

2016/09/19相关推荐

  1. 菜鸟网络工程师的成长笔记——第19天(2016.09.05)

    菜鸟网络工程师的成长笔记--第19天(2016.09.05) 不知道要有多久的浸润,才能算是精通web全栈开发 30.前端的日期选择插件 问题类型:前端 解决状态:已解决 问题描述 日期选择是web上 ...

  2. 【我的书】Unity Shader的书 — 目录(2016.5.19最后一次更新)

    写在前面 感谢所有点进来看的朋友.没错,我目前打算写一本关于Unity Shader的书. 出书的目的有下面几个: 总结我接触Unity Shader以来的历程,给其他人一个借鉴.我非常明白学Shad ...

  3. 电大计算机网考怎么过,史上最牛--电大计算机网考小抄(考试必备)--2016.09.08【呕心沥血整理、电大考试必过】.doc...

    史上最牛--电大计算机网考小抄(考试必备)--2016.09.08[呕心沥血整理.电大考试必过] 计算机网考Windows操作系统及其应用-选择题B A.Ctrl + Alt B.Ctrl + Shi ...

  4. U3D笔记11:47 2016/11/30-15:15 2016/12/19

    U3D笔记11:47 2016/11/30-15:15 2016/12/19 技术BLOG:http://www.unity.5helpyou.com/2373.html#comment-43108 ...

  5. Cheatsheet: 2011 09.13 ~ 09.19

    Web stream.js Asynchronous Programming in JavaScript with "Promises" Building Your First N ...

  6. 华为校招2016.09机试 第2题: 字符串查找

    华为校招2016.09机试 第2题: 字符串查找 描述: 输入两个字符串,查找字符串1中与字符串2最先匹配的内容,将匹配的字符串输出.字符串2支持?通配符,?代表任意一个字符. 已知字符串2不可能出现 ...

  7. 2016.09.14,英语,《Using English at Work》全书笔记

    半个月时间,听完了ESLPod出品的<Using English at Work>,笔记和自己听的时候的备注列在下面.准备把每个语音里的快速阅读部分截取出来,放在手机里反复听. 下一阶段把 ...

  8. 滴滴2016.09.06校招 在线笔试 - 2道编程题

    滴滴2016.09.06校招 在线笔试 - 2道编程题 1.连续子数组的最大和 题目描述 一个数组有N个元素,求连续子数组的最大和.例如:[-1,2,1],和最大的连续子数组为[2,1],其和为3. ...

  9. 纬创科技面试 2021.10.09 19:00

    纬创科技面试 面试时间:2021.10.09 19:00 面试方式:两个面试官 腾讯视频面试 面试总结:总体面试比较简单,但是问题较多,也很全面.总体上还是比较满意的 问题 基本情况: 介绍之前的项目 ...

最新文章

  1. 【直播回顾及资料下载】小程序云应用入门实操系列课程第一讲...
  2. VC++2019 使用wininet下载文件
  3. python json.loads json.dumps(ensure_ascii = False) 汉字乱码问题解决
  4. Docker实践(二)镜像
  5. SQL SERVER 2005 使用订阅发布同步数据库
  6. python中的闭包与装饰器
  7. APP跳转H5、微信小程序与微信小程序之间互跳
  8. 推荐一款2.5v 基准 电压源 芯片
  9. 学习《医学三字经白话解》之医学源流+中风
  10. win7文件和文件夹可以重名吗_怎么取消WIN7复制同名文件自动重命名
  11. 81-RabbitMQ详解
  12. 使用CVXQUAD时出现,函数或变量 ‘op_rel_entr_epi_cone‘ 无法识别。
  13. 【CTF基础】有限域椭圆曲线定义与计算方式
  14. SLAM在机器人中的应用
  15. 基于焦散线方法的自加速光束设计
  16. 【Leetcode】232.用栈实现队列
  17. 二分图判断以及二分图最大匹配
  18. 学习四旋翼(三):DMP姿态解算和串级PID控制姿态
  19. Java8新特性学习(lambda,函数式接口,stream,Optional)
  20. 【Android】网页广告植入规避方案

热门文章

  1. php写 被转移,php从windows往linux迁移注意事项
  2. java 文件下载 组件_java文件夹上传下载组件
  3. Problem L. Graph Theory Homework
  4. prim最小生成树算法 邻接表+STL实现
  5. 文件包含原理及本地文件包含漏洞演示(本地文件,远程包含文件的测试)
  6. bzoj 1659: [Usaco2006 Mar]Lights Out 关灯(IDA*)
  7. solrcloud 7.5在k8s上的部署安装和使用教程
  8. -矩阵-创建矩阵-meshgrid函数
  9. 图像处理四:霍夫变换
  10. 用自己的数据集训练Mask-RCNN实现过程中的坑