2018校招深信服编程题与面试题

第一题:

顺时针输出矩阵元素:

def printMatrix(matrix):
    res = []
    while matrix:
        res += matrix.pop(0)
        if matrix and matrix[0]:
            for row in matrix:
                res.append(row.pop())
        if matrix:
            res += matrix.pop()[::-1]
        if matrix and matrix[0]:
            for row in matrix[::-1]:
                res.append(row.pop(0))
    return res
if __name__=='__main__':
    a = raw_input()
    print a
    result = []
    b = a.split('],[')
    print b
    for i in range(len(b)):
        if i == 0:
            t = b[i].lstrip('[[')
            cat = t.split(',')
            result.append(cat)
        elif i == len(b) - 1:
            t = b[i].rstrip(']]')
            cat = t.split(',')
            result.append(cat)
        else:
            cat = b[i].split(',')
            result.append(cat)
    print ','.join(printMatrix(result))

# [[2,3,6],[5,5,9],[3,6,9]]

运行结果:

知识点:

Python join()方法


描述

Python join() 方法用于将序列中的元素以指定的字符连接生成一个新的字符串。

语法

join()方法语法:

str.join(sequence)

参数

  • sequence -- 要连接的元素序列。

返回值

返回通过指定字符连接序列中元素后生成的新字符串。

实例

以下实例展示了join()的使用方法:

实例(Python 2.0+)

#!/usr/bin/python # -*- coding: UTF-8 -*- str = "-"; seq = ("a", "b", "c"); # 字符串序列 print str.join( seq );

以上实例输出结果如下:

a-b-c

2、软件测试面试:

结合自己的项目:比如跟Python相关的项目;

Django和flask的区别:

转自:https://www.jianshu.com/p/cddd837155a3

Flask

  • Flask确实很“轻”,不愧是Micro Framework,从Django转向Flask的开发者一定会如此感慨,除非二者均为深入使用过
  • Flask自由、灵活,可扩展性强,第三方库的选择面广,开发时可以结合自己最喜欢用的轮子,也能结合最流行最强大的Python库
  • 入门简单,即便没有多少web开发经验,也能很快做出网站
  • 非常适用于小型网站
  • 非常适用于开发web服务的API
  • 开发大型网站无压力,但代码架构需要自己设计,开发成本取决于开发者的能力和经验
  • 各方面性能均等于或优于Django
  • Django自带的或第三方的好评如潮的功能,Flask上总会找到与之类似第三方库
  • Flask灵活开发,Python高手基本都会喜欢Flask,但对Django却可能褒贬不一
  • Flask与关系型数据库的配合使用不弱于Django,而其与NoSQL数据库的配合远远优于Django
  • Flask比Django更加Pythonic

Django

  • Django太重了,除了web框架,自带ORM和模板引擎,灵活和自由度不够高
  • Django能开发小应用,但总会有“杀鸡焉用牛刀”的感觉
  • Django的自带ORM非常优秀,综合评价略高于SQLAlchemy
  • Django自带的模板引擎简单好用,但其强大程度和综合评价略低于Jinja
  • Django自带ORM也使Django与关系型数据库耦合度过高,如果想使用MongoDB等NoSQL数据,需要选取合适的第三方库,且总感觉- Django+SQL才是天生一对的搭配,Django+NoSQL砍掉了Django的半壁江山
  • Django目前支持Jinja等非官方模板引擎
  • Django自带的数据库管理app好评如潮
  • Django非常适合企业级网站的开发:快速、靠谱、稳定
  • Django成熟、稳定、完善,但相比于Flask,Django的整体生态相对封闭
  • Django是Python web框架的先驱,用户多,第三方库最丰富,最好的Python库,如果不能直接用到Django中,也一定能找到与之对应的移植
  • Django上手也比较容易,开发文档详细、完善,相关资料丰富

可参考链接有:https://www.zhihu.com/question/41564604

3、get 、post方式的区别:

 

转载请注明预见才能遇见的博客:http://my.csdn.net/

原文地址:http://blog.csdn.net/pcaxb/article/details/79151915

GET和POST的区别

 

在客户端和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。
(1)GET - 从指定的资源请求数据。查询字符串 键值对 是在 GET 请求的 URL 中发送的。
(2)POST - 向指定的资源提交要被处理的数据。查询字符串 键值对 是在 POST 请求的HTTP消息主体中发送的


1.W3C描述的GET和POST的区别


(1)对参数的数据类型,GET只接受ASCII字符,而POST没有限制,允许二进制。
(2)GET在浏览器回退/刷新时是无害的,而POST会再次提交请求。
(3)GET请求只能进行url编码(application/x-www-form-urlencoded),而POST支持多种编码方式(application/x-www-form-urlencoded 或 multipart/form-data),可以为二进制使用多重编码。
(4)POST 比 GET 更安全,因为GET参数直接暴露在URL上,POST参数在HTTP消息主体中,而且不会被保存在浏览器历史或 web 服务器日志中。
(5)对参数数据长度的限制,GET方法URL的长度是受限制的,最大是2048个字符,POST参数数据是没有限制的。
(6)GET请求会被浏览器主动缓存,POST不会,除非手动设置。
(7)GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。
(8)GET请求可被收藏为书签,POST不能。

参考WSC:点击打开链接

2.GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。


GET和POST是HTTP协议中的两种发送请求的方法。HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。HTTP的底层是TCP/IP。所以GET和POST的底层也是TCP/IP,也就是说,GET/POST都是TCP链接。GET和POST能做的事情是一样一样的。你要给GET加上request body,给POST带上url参数,技术上是完全行的通的。 

业界不成文的规定是,(大多数)浏览器通常都会限制url长度在2K个字节,而(大多数)服务器最多处理64K大小的url。

总结:GET和POST本质上就是TCP链接,并无差别。但是由于HTTP的规定和浏览器/服务器的限制,导致他们在应用过程中体现出一些不同。

3.GET产生一个TCP数据包;POST产生两个TCP数据包。
 

对于GET方式的请求,浏览器会把http header和data一并发送出去,服务器响应200(返回数据);
而对于POST,浏览器先发送header,服务器响应100 continue,浏览器再发送data,服务器响应200 ok(返回数据)。

也就是说,GET只需要汽车跑一趟就把货送到了,而POST得跑两趟,第一趟,先去和服务器打个招呼“嗨,我等下要送一批货来,你们打开门迎接我”,然后再回头把货送过去。

在网络环境好的情况下,发一次包的时间和发两次包的时间差别基本可以无视。而在网络环境差的情况下,两次包的TCP在验证数据包完整性上,有非常大的优点。


并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次。

参考资料:点击打开链接
 

GET和POST的区别

博客地址:http://blog.csdn.net/pcaxb/article/details/79151915

--------------------- 本文来自 预见才能遇见 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/pcaxb/article/details/79151915?utm_source=copy

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值