码迷,mamicode.com
首页 > 编程语言 > 详细

python笔试题(三)

时间:2018-02-15 20:32:00      阅读:294      评论:0      收藏:0      [点我收藏+]

标签:处理   mysql   import   sort   就是   body   mysql数据库   tuple   常用   

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 全局---->(内置)变量

 

python笔试题(三)

标签:处理   mysql   import   sort   就是   body   mysql数据库   tuple   常用   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!