python笔试题(三)

1.MySQL有哪些存储引擎,优化MySQL数据库的方法有哪些?
    MySQL支持的存储引擎有MyISAM,InnoDB,Memory,CSV,Archive
    创建索引,使用复合索引,使用短索引,不在列上进行运算,不使用NOT IN操作,不在包含有NULL值得列上加索引
2.WEB开发中session与cookie的作用与区别?
    cookie通过在客户端记录用户身份的信息,session通过在服务端记录用户身份信息
  cookie机制:理论上一个用户的所有请求都应该属于一个会话,由于web程序应用是基于http协议传输信息的,
                但是,http协议是无状态协议,一旦数据交换完毕,两者的连接立刻断开,再次交换数据需要重新建立连接,这就意味着服务器无法连接上跟踪会话。要跟踪该会话,就引入了一种机制Cookie
              服务器就给客户端颁发一个通信证,每次来访问同一个网站时浏览器必需携带cookie,以便确认用户身份。
  session机制:是服务器端记录用户状态的一种机制,使用上比较简单,但是增加了服务器内存的压力。
      客户端浏览器第一次访问服务器的时候,服务器把客户端的信息以某种形式保存下来,session对象也是在这个时候创建,
        所有该客户端的状态信息,都被保存在这里。session相当于在程序在服务器上建立的客户端档案,客户来访时只要查询这些档案就可以了。
3.WEB开发中有哪些技术手段防止SQL注入?
    使用预编译绑定变量的SQL语句;
    加密处理用户的关键信息;
    不随意开启生产环境中的Webserver的错误;
    使用正则表达式过滤传入的参数;
    字符串过滤;
    检查是否包含非法字符;
4.编写快速排序或者冒泡排序
    def bubble_sort(lis):
        for j in range(len(lis),-1,-1):
            for i in range(0,len(lis)-1):
                if lis[i] > lis[i+1]:
                    lis[i],lis[i+1]=lis[i+1],lis[i]
        print(lis)
    lis=[20,49,50,0,8,65,56,89,77,46]
    bubble_sort(a)
5.请实现一个装饰器,限制该函数被调用的频率
    import time #5秒一次
    def wraper(func):
        def inner(*args,**kwargs):
            time.sleep(5)
            return func(*args,**kwargs)
        return inner
    @wraper
    def rando():
        print(‘被装饰的函数‘)
    rando()
    rando()
6.请说一说lambda函数的作用,请用lambda和reduce实现1到100的累加
    Lambda函数又称匿名函数,也就是没有名字的函数,有些函数如果只是临时一用,而且业务逻辑也比较简单,这时就可以用用Lambda函数
    from _functools import reduce
    print(reduce(lambda x,y:x+y,range(1,101)))
7.请描述一下tuple,list,dict,set的特点
    tuple:不可对元素进行修改,但元素本身可以变化,比如元素为列表,值可以重复,元素有序
    list:元素可以修改,值可重复,相比dict具有占用内存小的特点,常用于堆栈的处理
    dict:键不可变,值可变,键不可以重复,值可以重复,元素无需,符合用内存换速度思想,常用于查找
    set:元素不可重复,无序
8.就你熟悉的web框架,讲一讲如何维持用户的登录状态的
    把用户信息存放一session中,再给客户端返回一个cookie;
    通过form表单;
    通过querystring
9.python函数中经常有*args,**kwargs,这两个参数,它们是什么意思,为什么要使用它们
    如果我们不确定要往函数中传入多少个参数,或者我们想往函数中以列表和元组的形式传参数时,那就使要用*args;
    如果我们不知道要往函数中传入多少个关键词参数,或者想传入字典的值作为关键词参数时,那就要使用**kwargs。
10.python中变量作用域(变量查找顺序)
    局部变量--->闭包作用域 ----> Global 全局---->(内置)变量

原文地址:https://www.cnblogs.com/sxh-myblogs/p/8449759.html

时间: 2024-07-30 08:17:12

python笔试题(三)的相关文章

python笔试题42-69

42.如何在Python中拷贝一个对象,并说明他们之间的区别    答:Python中有两种拷贝方式,深拷贝与浅拷贝 浅拷贝:用赋值符号(=)即可,内存地址公用,一个改复制对象全都改 深拷贝:用copy模块下的deepcopy方法,每一个拷贝对象都是独立的内存地址 43.谈谈你对Python装饰器的理解 答:装饰器是一个内嵌函数 他能不改变原函数代码的情况下增加其装饰函数的功能 44.Python里的match()与search()区别 答:match是从字符串第一位开始匹配,若第一位不同则找不

python笔试题(-)

1.如何查看占用8080端口的是什么进程? netstat –apn | grep 8080 2.DNS解析过程是怎样的?有几种解析方式,各自的区别是什么? 1) 浏览器缓存 当用户通过浏览器访问某域名时,浏览器首先会在自己的缓存中查找是否有该域名对应的IP地址(若曾经访问过该域名且没有清空缓存便存在): 2) 系统缓存 当浏览器缓存中无域名对应IP则会自动检查用户计算机系统Hosts文件DNS缓存是否有该域名对应IP: 3) 路由器缓存 当浏览器及系统缓存中均无域名对应IP则进入路由器缓存中检

python面试题(三)

一.项目技术点梳理 (一)Django项目 本项目是用python的Django框架开发的前后端不分离项目.项目采用MVT架构,使用的MySQL和redis数据库,用Django自带的orm与数据库交互. 1.用户模块 a.使用Django自带的用户认证系统,来完成用户登录,密码使用pbkdf2_sha256加密存入mysql数据库. b.使用itsinstance模块对user_id进行加密生成token,将生成的token放在url通过邮件发送给用户来实现激活逻辑. c.使用celery+r

python面试题三:Python 网络编程与并发

1 简述 OSI 七层协议. 2 什么是C/S和B/S架构? 3 简述 三次握手.四次挥手的流程. 4 什么是arp协议? 5 TCP和UDP的区别? 6 什么是局域网和广域网? 7 为何基于tcp协议的通信比基于udp协议的通信更可靠? 8 什么是socket?简述基于tcp协议的套接字通信流程. 9 什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象? 10 IO多路复用的作用? 11 什么是防火墙以及作用? 12 select.poll.epoll 模型的区别?

常见笔试题(三)

11.面向对象的三大特征,并作简单的介绍. 面向对象的三个基本特征是:封装.继承.多态. 封装是面向对象的特征之一,是对象和类概念的主要特性. 封装,也就是把客观事物封装成抽象的类,并且类可以把自己的 数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏.隐藏对象的属性和实现细节,仅对外公开接口,提高代 码安全性,封转程度越高,独立性越强,使用越方便. 继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展. 通过 继承创建的新类称为"子类&q

数据结构笔试题三

[微笑天使收集整理QQ:84024257] 一.选择题(每小题2分,共8分) 1. 若需要利用形参直接访问实参,则应把形参变量说明为( )参数. A. 指针 B. 引用C. 值 2. 在一个单链表HL中,若要在指针q所至结点的后面插入一个由指针p所指向的结点,则执行(). A. q->next=p->next; p->next=q;B. p->next=q->next; q=p;C. q->next=p->next; p->next=q;D. p->n

传说中的华为Python笔试题——两等长整数序列互换元素,序列和的差值最小(修正)

有两个序列a,b,大小都为n,序列元素的值任意整形数,无序:要求:通过交换a,b中的元素,使[序列a元素的和]与[序列b元素的和]之间的差最小. 1. 将两序列合并为一个序列,并排序,得到sourceList2. 拿出最大元素Big,次大的元素Small3. 在余下的序列S[:-2]进行平分,得到序列max,min4. 将Small加到max序列,将Big加大min序列,重新计算新序列和,和大的为max,小的为min. 如下,提供递归版本和迭代版本的解体思路: #!/usr/bin/env py

python笔试题1-21

1.如何实现对python列表去重并保持原先顺序 答:再创建一个列表,依次循环原列表元素并判断,若当前元素不在新建列表中,则添加即可 2.现在有两个元组(('a'),('b')),(('c'),('d')),请使用python中匿名函数,生成列表[{'a':'b'},{'c':'d'}] 答: #答案一 test = lambda t1,t2 :[{i:j} for i,j in zip(t1,t2)] print(test(t1,t2)) #答案二 print(list(map(lambda

Java常见笔试题<三>

1.Servlet的生命周期可以分为初始阶段.运行阶段和销毁阶段,以下属于初始阶段的是: A.加载Servler类以及.calss对应的数据 B.创建servletRequest和servletResponse对象 C.创建ServletConfig对象 D.创建Servlet对象 参考答案:ACD 2.关于Java和C++的比较,说法错误的是: A.Java不支持指针,C/C++支持 B.Java程序不需要显式地关心内存释放,而C/C++需要 C.Java和C++一样,是纯编译语言,因此它们的