专栏首页雪胖纸的玩蛇日常老男孩Python全栈开发(92天全)视频教程 自学笔记17

老男孩Python全栈开发(92天全)视频教程 自学笔记17

day17课程内容:

  装饰器回顾练习 登录功能:

#登录京东,不同的页面,选择页面,然后不同的登录方式 with open('作业5.1jingdong','w',encoding='utf8') as f1,open('作业5.2weixin','w',encoding='utf8') as f2: jingdong={'username':'张三','pwd':'1234'} weixin={'username':'张三微信','pwd':'4321'} f1.write(str(jingdong)) f2.write(str(weixin)) # with open('作业5.1jingdong','w',encoding='utf8') as f1, # open('作业5.2weixin','w',encoding='utf8') as f2: def login(logintype='',flag=False): def logged(f): def hadlog(*x,**y): f(*x,**y) return hadlog def choice(f): def jd(*x,**y): with open('作业5.1jingdong', 'r', encoding='utf8') as f1: dic = eval(f1.read()) username = dic['username'] pwd = dic['pwd'] while True: useid = input('请输入用户名:') usepwd = input('请输入密码:') if useid == username and usepwd == pwd: print('通过京东账号登录成功!') break else: print('用户名或密码错误,登陆失败!') flag = True f(*x,**y) def wx(*x,**y): with open('作业5.2weixin', 'r', encoding='utf8') as f1: dic = eval(f1.read()) username = dic['username'] pwd = dic['pwd'] while True: useid = input('请输入用户名:') usepwd = input('请输入密码:') if useid == username and usepwd == pwd: print('通过微信登录成功!') break else: print('用户名或密码错误,登陆失败!') f(*x,**y) flag=True if logintype=='jd': return jd elif logintype=='wx': return wx else: pass #可增加其他登录方式 if flag==True: return logged if flag==False: return choice @login('jd') def home(): print('欢迎进入首页!') @login('wx') def finance(): print('欢迎来到财经页面') @login('',True) def book(): print('欢迎来到图书页面!') home() finance() book() # 请输入用户名:张三 # 请输入密码:1234 # 通过京东账号登录成功! # 欢迎进入首页! # 请输入用户名:张三微信 # 请输入密码:4321 # 通过微信登录成功! # 欢迎来到财经页面 # 欢迎来到图书页面!

  生成器

def f(n): return n*3 a=[f(x) for x in range(10)] #列表生成式 print(a) #[0, 3, 6, 9, 12, 15, 18, 21, 24, 27] a=(x*3 for x in range(5)) #print(a) #<generator object <genexpr> at 0x0000000002125888> 生成器对象 #for i in range(5):print(a.__next__()) #调用内部方法的方式不提倡 print(next(a)) #next(a)等价于 a.__next__() ,在py2里等价于 a.next() #######生成器就是一个可迭代对象 for i in a: print(i) #迭代出来了 # 生成器有两种创建方式: # 1、a=(x*3 for x in range(5)) # # 2、yield: def f(): print('ok1') yield 1 print('ok2') yield 2 a=f() # next(a) # next(a) for i in a: print(i) # ok1 # 1 # ok2 # 2 def f(): print('ok111') count=yield 1 print(count) yield 2 a=f() b1=a.send(None) #等价于next(a) b2=a.send('传值') print(b1,b2) # ok111 # 传值 # 1 2

############生成器都是迭代器,迭代器不一定是生成器 #list tuple dict,string:Interable(可迭代对象)

#什么是迭代器?

#满足两个条件:1、有iter方法 2、有next方法 迭代协议

  模块

import time #print(time.time()) #time.sleep(1) #print(time.gmtime())#英国世界标准时间 结构化格式 time.struct_time(tm_year=2017, tm_mon=11, tm_mday=29, tm_hour=7, tm_min=26, tm_sec=5, tm_wday=2, tm_yday=333, tm_isdst=0) print(time.ctime(time.time())) #将时间戳转为 格式输出 print(time.localtime())#当地时间 结构化格式time.struct_time(tm_year=2017, tm_mon=11, tm_mday=29, tm_hour=15, tm_min=31, tm_sec=41, tm_wday=2, tm_yday=333, tm_isdst=0) print(time.mktime(time.localtime())) #将结构化格式时间转化为时间戳 import datetime print(datetime.datetime.now()) # 2017-11-29 15:34:54.708226 ####很实用! import random print(random.random()) #生成0到1 的一个随机数 0.876389575379323 print(random.randint(1,10)) #生成1到10的随机整数 包括1和10 print(random.choice('hello'))#随机选取一个元素输出 print(random.randrange(1,10))#生成1到10随机整数 包括1 不包括10 更加常用! ###########生成验证码 #chr(65) ascii()码转化 import random def f(a=5): cod='' for i in range(a): b = random.random() if b<0.5: cod+=str(random.randrange(1,10)) else: cod+=chr(random.randrange(65,91)) return cod print(f(6))

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 老男孩Python全栈开发(92天全)视频教程 自学笔记14

    玩蛇的胖纸
  • 老男孩Python全栈开发(92天全)视频教程 自学笔记05

    玩蛇的胖纸
  • 第三章 函数与变量

    玩蛇的胖纸
  • 基于Faker生成中文测试数据实例

    上一篇 基于Python生成中文测试数据 讲解了如何使用python代码自己实现中文测试数据的生成,这篇我们分享如何基于Faker开源库来实现。

    苦叶子
  • Python基本输出函数print()用法小结

    Python内置函数print()是基本输出函数,可以使用help()函数查看其详细用法和参数含义: >>> help(print) Help on built...

    Python小屋屋主
  • 《笨办法学python》 第14课手记

    《笨办法学Python》 第14课手记 本节课将argv和raw_input和起来使用,作者在之前说,这个组合是个蛮顺手的用法。请注意,引入argv并使用arg...

    Steve Wang
  • 37道Python经典面试题(附答案),看完面试不愁了

    python多线程有个全局解释器锁(global interpreter lock),这个锁的意思是任一时间只能有一个线程使用解释器,跟单cpu跑多个程序一个意...

    吾非同
  • Python—字符串常用的格式化方法

    其实如果要通读字符串的所有方法,只需要在pycharm中输入st.就会自动弹出字符串的方法列表,挨个试过去就知道了

    Ed_Frey
  • 告别裸奔,赶集抓手

    在爬虫过程中,有时有些网站具有反爬虫设置,当爬取次数到达一定程度,那么这个网站就会禁止你的IP对其进行访问,这就是裸奔操作,为了不让对方服务器发现你在爬取对面的...

    公众号guangcity
  • Python学习笔记:第一天python

    python是在1989年吉多·范罗苏姆(Guido van Rossum)为打发圣诞夜时间而开发的一门脚本程序,作为ABC语言的一种继承。python拥有简单...

    py3study

扫码关注云+社区

领取腾讯云代金券