今日考题
今日考题
1.现有三个普通函数a,b,c都需要用户登陆之后才能访问。现需要你写一个装饰器校验用户是否登陆,并且用户只要登陆一次其他函数在调用时也无需再校验
略
2.再次谈谈python垃圾回收机制
当一个变量值的引用计数为0的时候,会触发垃圾回收机制,变量值会被回收
3.什么是进程,线程,协程,程序中如何依次创建/实现它们
#进程: 一堆代码运行的过程
from multiprocessing import Process
import time
def task(name):
print(f'{name}的任务开始执行')
time.sleep(1)
print(f'{name}的任务已经结束')
if __name__ == '__main__':
p = Process(target=task, args=('jason',))
p.start()
print('主进程')
#线程: 线程与进程都是虚拟单位,目的是为了更好地描述某种事物.进程: 资源单位,线程: 执行单位.开启一个进程,一定会有一个线程,线程才是真正执行者.
from threading import Thread
import time
def task():
print('线程开启')
time.sleep(1)
print('线程结束')
if __name__ == '__main__':
t = Thread(target=task)
t.start()
#协程: 在单线程下实现并发
4.js代码书写位置有几种,什么是事件,js如何绑定事件,常见的事件有哪些
//js代码书写位置1.script标签内直接写,2.script src属性引入外部js文件
//事件,当符合某个条件下 自动触发的动作/响应
//js绑定事件的方式
function func() {
alert('我被点击了')
}
var i1Ele = document.getElementById('d1');
i1Ele.onclick = function () {
func()
onlick
onfocus
onblur
onchange
5.什么是JQuery,它的基本语法是什么,利用jQuery查找标签的方式有哪些
//JQuery有点类似于python后端的模块 帮你封装了一些简易的操作
//jQuery('选择器').action(属性)
$('选择器').action(属性)
// 查找标签的方式
$('p') // 标签选择器
$('.c1') // 类选择器
$('#d1') // id选择器
$('p.c1') // 找含有c1样式类的p标签
$('p#d1') // 找含有id是d1的p标签
$('#d1,.c1,div') // 组合选择器
$("x y");// x的所有后代y(子子孙孙)
$("x > y");// x的所有儿子y(儿子)
$("x + y")// 找到所有紧挨在x后面的y
$("x ~ y")// x之后所有的兄弟y
6.bit,bytes,KB,MB,GB,TB,PB的关系
1 Byte=8bit
1 KB=1024Bytes
1 MB=1024KB
1 GB=1024MB
1 TB=1024GB
1 PB=1024TB
7.ascii,gbk,utf-8,gbk的区别
ascii:把所有的字母的大小写,各种符号用二进制来表示,1bytes代表一个字符
Unicode:为了统一世界各国语言的不同,统一用2个bytes代表一个字符,特点:速度快,但浪费空间
utd8:为了改变Unicode的这种缺点,规定一个英文字符用一个字节表示,一个中文字符用三个字节表示,特点:节省空间,速度慢
gbk:是中文的字符编码,用2个字节代表一个字符
8.请用至少两种方式实现m与n值交换m=10,n=5
# 1:
m,n=n,m
# 2:
x=m
m=n
n=x
9.什么是深浅拷贝
浅拷贝:对于浅拷贝,字典、列表、元组等类型,它们只拷贝第一层地址
深拷贝:对于深拷贝,字典、列表、元组等类型,它里面嵌套多少层,就会拷贝多少层出来,但是最底层的数字和字符串地址不变
10.什么是HTTP协议
HTTP协议,超文本传输协议,规定了服务端与浏览器数据传输的数据格式