Python学习笔记(十):

  1. 装饰器的应用
  2. 列表生成式
  3. 生成器
  4. 迭代器
  5. 模块:time,random

1. 装饰器的应用-登陆练习

login_status = False	# 定义登陆状态
def type(auth_type): # 装饰器传参函数
def login(fucn): # 装饰器函数
def inner(): # 附加功能
global login_status # 将登陆状态变量变为全局变量
if login_status == False:
if auth_type == 'jingdong':
username = input('username:')
password = input('password:')
with open('jingdong.txt','r') as f:
lines = f.readlines()
for i in lines:
i = eval(i)
if username in i and password == i[username]:
print('welcome %s' % (username))
login_status = True
fucn()
else:
print('wrong username or password')
elif auth_type == 'weixin':
username = input('username:')
password = input('password:')
with open('weixin.txt', 'r') as f:
lines = f.readlines()
for i in lines:
i = eval(i)
if username in i and password == i[username]:
print('welcome %s' % (username))
login_status = True
fucn()
else:
print('wrong username or password')
else:
pass
return inner
return login @type('jingdong') # 连接装饰器
def home(): # 功能函数
print('welcome to home page') @type('weixin')
def finance():
print('welcome to finance page') @type('jingdong')
def book():
print('welcome to book page') if __name__ == '__main__': while True:
print('welcome to JD:')
print('choice 1 to home')
print('choice 2 to finance')
print('choice 3 to book')
print('choice 0 to back')
choice = input('Where are you going:')
if choice == '1':
home()
elif choice == '2':
finance()
elif choice == '3':
book()
elif choice == '0':
break

2. 列表生成式

代码示例:

a = [x for x in range(10)]
print(a) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] a = [x*2 for x in range(10)]
print(a) # [0, 2, 4, 6, 8, 10, 12, 14, 16, 18] def f(n):
return n**3 a = [f(x) for x in range(10)]
print(a) # [0, 1, 8, 27, 64, 125, 216, 343, 512, 729]

3. 生成器

代码示例:

# 第一种方法
s = (x for x in range(100)) # 生成器
# for的作用:消除内存占用,判断遍历完成
for i in s:
print(i)
# 第二种方法
def foo():
i = range(22)
yield i for i in foo():
print(i)
# send方法给yield赋值
def bar():
print('ok1')
count = yield 1 # 接收'ee'
print(count)
print('ok2')
yield 2 b = bar()
b.send(None) # 相当于next(b)
b.send('ee') # 将'ee'赋值给第一个yield

4. 迭代器

  • 生成器都是迭代器

    什么是迭代器?
  1. 有iter方法
  2. 有next方法

5. 模块

1. time模块

函数/方法:

time() -- return current time in seconds since the Epoch as a float

clock() -- return CPU time since process start as a float

sleep() -- delay for a number of seconds given as a float

gmtime() -- convert seconds since Epoch to UTC tuple

localtime() -- convert seconds since Epoch to local time tuple

asctime() -- convert time tuple to string

ctime() -- convert time in seconds to string

mktime() -- convert local time tuple to seconds since Epoch

strftime() -- convert time tuple to string according to format specification

strptime() -- parse string to time tuple according to format specification

tzset() -- change the local timezone

代码示例:

print(time.strftime('%Y-%m-%d  %H:%M:%S'))	#2017-09-20  13:44:01

print(time.strptime('2017-09-20  12:53:21','%Y-%m-%d  %H:%M:%S'))
# time.struct_time(tm_year=2017, tm_mon=9, tm_mday=20, tm_hour=12, tm_min=53, tm_sec=21, tm_wday=2, tm_yday=263, tm_isdst=-1)

2. random模块

print(random.randint(1,8))		# 从1-8中随机取值
print(random.choice('hello')) # 从‘hello’中随机取一个字母
# 实现验证码
def v_code():
code = ''
for i in range(5):
add = random.choice([random.randrange(10),chr(random.randrange(65,91))])
code += str(add)
print(code) v_code()

Python学习笔记(十)的更多相关文章

  1. Python学习笔记(十二)—Python3中pip包管理工具的安装【转】

    本文转载自:https://blog.csdn.net/sinat_14849739/article/details/79101529 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...

  2. python学习笔记(十 一)、GUI图形用户界面

    python图形用户界面就是包含按钮.输入框.选择框等组件的窗口.主要依赖与工具包进行代码编写.python GUI工具包并发互斥的,你可以选择多个工具包进行安装,有极大选择空间.每个工具包都有不同用 ...

  3. python 学习笔记(十二) 文件和序列化

    python 文件读写和序列化学习.## python文件读写`1 打开并且读取文件` f = open('openfile.txt','r') print(f.read()) f.close() ` ...

  4. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  5. python 学习笔记十八 django深入学习三 分页,自定义标签,权限机制

    django  Pagination(分页) django 自带的分页功能非常强大,我们来看一个简单的练习示例: #导入Paginator>>> from django.core.p ...

  6. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  7. python 学习笔记十五 web框架

    python Web程序 众所周知,对于所有的Web应用,本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. Python的WEB框架分为两类: 自己写socket,自 ...

  8. python 学习笔记十五 django基础

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

  9. python 学习笔记十四 jQuery案例详解(进阶篇)

    1.选择器和筛选器 案例1 <!DOCTYPE html> <html lang="en"> <head> <meta charset=& ...

  10. python 学习笔记十二 html基础(进阶篇)

    HTML 超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一种标准,它通过标记符号来标记要显示的网页中的各个部分.网页文件本身 是一种文本文件,通过在文本文件中添加标记符, 可以告诉浏览 ...

随机推荐

  1. 201521123105 第8周Java学习总结

    1.本周学习总结 1.1思维导图 2. 书面作业 本次作业题集集合 1.List中指定元素的删除(题目4-1) 1.1 实验总结 1.删除元素的时候从最后一个元素开始,避免删除元素后位置发生变化而导致 ...

  2. 201521123106《java程序设计》第三周学习总结

    1. 本周学习总结 2. 书面作业 代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pub ...

  3. 201521123105 《Java程序设计》第1周学习总结

    1.学习总结      简单学习jave 了解并区分JVM JRE JDK 了解JAVA语言的发展史 2.书面作业        Q:为什么java程序可以跨平台运行?执行java程序的步骤是什么?( ...

  4. Cookie和Session总结

    Cookie概述     Cookie是什么?       Cookie是一小段文本信息,伴随着用户请求和页面在Web服务器和浏览器之间传递.Cookie包含每次用户访问站点时Web应用程序都可以读取 ...

  5. 201521123019 《java程序设计》 第13周学习总结

    1. 本章学习总结 2. 书面作业 Q1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu.edu.cn,分析返回结果有何不同?为什么会有这样的不同? 访问cec ...

  6. Java实现3DES加密--及ANSI X9.8 Format标准 PIN PAN获取PIN BlOCK

    1, 采用银联ANSI X9.8标准 PIN xor PAN获取PIN BlOCK 2, 采用3Des进行加密 参考: des和3Des加密算法实现 要点:因为3DES是对称加密算法,key是24位, ...

  7. (一)关于java泛型的学习总结(泛型方法、泛型擦除)

    目录概要 一.泛型方法 二.利用泛型方法的特性实现代码的简化 三. 关于泛型的擦除 四.无界通配符和原生类型区别 五.转型和警告   泛型 一般的类中的属性或方法的参数,只能使用具体的类型:要么是基本 ...

  8. 爬虫实战:爬虫之 web 自动化终极杀手 ( 上)

    欢迎大家前往腾讯云技术社区,获取更多腾讯海量技术实践干货哦~ 作者:陈象 导语: 最近写了好几个简单的爬虫,踩了好几个深坑,在这里总结一下,给大家在编写爬虫时候能给点思路.本次爬虫内容有:静态页面的爬 ...

  9. JavaScript中的位置屬性

    屏幕中的位置(直接使用,無需前綴): screenLeft.screenTop:除了火狐都支持 screenX.screenY: 窗口的大小(谷歌的inner=outer,直接使用,無需前綴): in ...

  10. 异常 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-SQL, MySQL, Oracle, PostgreSQL, Sybase]

    使用Spring 的JDBCtemplate 调用数据库的时候 出现了如下的问题 SQLErrorCodes loaded: [DB2, Derby, H2, HSQL, Informix, MS-S ...