菜鸟去面试之一

Author:闫玉良

春天到了,那颗躁动不安的心又踏上了面试之旅,菜鸟在前方探路,返回一手资料供你参考。

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

1.python基础

1.1 dict

问:有这样一个需求,为字典添加一个键,如果已存在则不做任何操作;如果不存在,添加后需要设置默认值。请使用字典自带的一个方法完成此操作。

答:setdefault 方法可完成此操作。示例如下:

1
2
3
4
5
6
7
mydict = {"1":"小闫", "2":"小良"}
mydict.setdefault('1', 'xx')
print(mydict)
# 结果为 {'1': '小闫', '2': '小良'}
mydict.setdefault('3', 'xx')
print(mydict)
# 结果为 {'1': '小闫', '2': '小良', '3': 'xx'}

1.2 str

问:请问字符串的方法 join 与操作符 + ,哪一个效率高?

答:如果需要拼接大量的字符串,如几万个 ,那么 join 类型的效率要远高于操作符 +;如果仅仅是一两个字符串拼接的话,操作符会更加实用。下面从源码的角度去解析一下原因:

字符串底层是由 C 语言中 PyStringObject 对象所实现,此对象不可变,这就导致了如果要使用操作符 + ,就需要不断的重新申请地址空间去存放拼接后的字符串,在数量庞大的基础上,效率可想而知多么低。join 就不一样了,它是对列表等可迭代对象进行操作,因为操作对象是可变的,因此只需申请一次内存即可。所以结论就是 join 类型效率要高的多。

2.Git

1.1 分支

1.查看当前所属分支

1
git branch

2.删除分支

1
2
3
4
# 删除本地分支
git branch -d [分支名称]
# 删除远程分支
git push origin --delete [分支名称]

3.MVT

问:谈一谈你对 MVT 模式的了解?

答:首先介绍一下这三个字母所代表的的内容,MModel 代表模型类,与数据库进行交互;VView 代表视图,是对请求进行处理并与数据库模板等进行交互;TTemplate 代表模板,是负责填充数据产生前端页面。其大体流程为:客户端发起一个请求,视图接收后,根据内容进行处理,过程中如果涉及到数据库,会进行查询保存等操作并将结果返回给视图,然后模板进行填充并返回给视图一个 html 页面,最后视图将页面返回给客户端进行渲染展示。

更多精彩文章请关注公众号『Pythonnote』或者『全栈技术精选』

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • 页面访问量: 独立访客访问数:
  • 更多精彩文章请关注微信公众号『全栈技术精选』,id 为『Pythonnote』

请我喝杯咖啡吧~

支付宝
微信