Python Day 05

Python进阶
1.PEP8编码规范:缩进4个空格 = 1个tab
行长:80防止单行逻辑过于复杂
2.import :不要使用 (from xxx import *)
单行内不 import 多个库
顺序:标准库,第三方库,自定义库
3.空格:(:,;)后跟空格,前面无空格

名字(二元操作符前后各一个空格)符号
数学运算符+ - * / // = &
比较运算符== != > < >= <= is not in
逻辑运算符and or not
位运算符& ^ << >>

4.添加空行:适当添加空行
5.注释:忌逐行加注释和没有一个注释
6.命名规则

规则
变量名除 lambda函数外 不能使用单字母的变量名
包名、模块名、函数名、方法名方法名全部小写,单词间_连接
类名、异常名使用首字母大写方式,异常名结尾加 Error 或 wraning
全局变量尽量使用大写

7.字符串拼接:join
8.*和 *2的用法

返回类型
*元组()
**字典{key :value}

强制命名(传参时后者必须命名)
9.== 判断的是值,is判断的是内存地址
浅拷贝copy和深拷贝deepcopy
10.函数闭包格式:

def num():
	l = []
	def bar(i):
		l.append(i)
		return l
	return bar#返回bar函数
if __name__ == "__main__":
	n = num()

11.装饰器格式:

def deco(func):
	def warp():
		print('i')
		return func()
	return warp
@deco#装饰器
def A():
	print('j')
A()

装饰器流程:调用A()函数—>deco —>func:A—>return warp—>print(‘i’)—>返回函数A
---->print(‘j’)
12案例:用随机数写出验证码给装饰器传入参数,当正常执行时正常输出,还有一种情况不管验证码对与否都输出验证码不正确

import random
def deco(parms):
	def deco2(func):
		def warp(*args,**kwargs):
			if parms:
				kwargs['n1'] = -1#让n1的值等于 -1
			return func(*args,**kwargs)
		return warp
	return deco2
@deco(True)#给装饰器传入参数两种True和False
def A(n1,n2):
	if n1 == n2:
		print('验证码正确')
	else:
		print('验证码错误')

num = random.randrange(1000,9999)
print('验证码')
num2 = int(input('>>'))
A(n1 = num,n2 = num2)

13.案例2:请求一个网站 5秒内请求10次以上则返回404,否则正常登陆

import time
TIME1 = 0
TIME2 = 0
def c_ip(func):
	def warp(*args,**kwargs):
		if round(abs(TIME2-TIME1),3)<0.5:
			print('404')
		else:
			return func(*args,**kwargs)
	return warp
@c_ip
def A(ip):
	print('成功进入网页')

#模拟请求
for i in range(50):
	ip = '127.0.0.1'
	TIME1 = time.time()
	A(ip)
	TIME2 = time.time()
	time.sleep(0.5)#每隔多长时间请求一次

14.进程和线程(一个进程下可以包含多个线程)
并发:在一个时间段,处理多个任务,单核也可以并发
并行:在同一个时刻,处理多个任务,必须多核才能并
创建进程,接受元组形式,可以传参

import multiprocessing
def jc():
	print('Hello world')
if __name__ == "__main__":
	#创建进程
	p = multiprocessing.Process(target=jc,args=())
	p.start()#启动进程
	p.join()#进程阻塞
	print('ok')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值