python面试315题(1--->30题)
2018-07-16 02:49:19来源:博客园 阅读 ()
1、为什么学习Python?
-
语言本身简洁,优美,功能超级强大
-
跨平台
-
非常火爆的社区
-
很多有名的大公司在用
2、通过什么途径学习的Python?
培训机构 + 自学
3、Python和Java、PHP、C、C#、C++等其他语言的对比?
-
C,它是现代编程语言的祖师爷,所以非常古老了,在现代应用中使用不多。但由于C是祖师爷,所以绝大部分语言,写法都和C语言差不多。。。常常用作学习其他语言的基础。。而C语言也有其他语言不可替代的用途,现在最主要的应用就是单片机。。。单片机是啥?就是用C语言控制一些简单的电子元件。。。比如电视用的遥控器,其实就是一个单片机。
-
-
PHP是用来做网站的,其实从技术角度,属于第一代的后端技术(植入式脚本技术),现在最新的后端技术,已经发展到第三代了(MVC架构),因此从技术上讲,PHP早该过时了,但由于市场需求的存在,所以它依然是做网站后台的主流之一。。就类似于WindowsXP一样,技术上太淘汰了,但市场却依然是主流,普及度依然很高。缺点一大堆,但又个最主要的优势,就是简单。。。MVC虽好,但学习难度远比PHP要高的多。
-
-
C++是面向对象的C语言,由于偏底层,所以性能非常高,仅次于C语言,主要用在一个要求高性能的领域。。。这个不好说,因为实际需求上,用处挺杂的,而且也确实不太好学。。因为它把C语言面向过程的那套东西,和JAVA面向对象的那些东西,堆砌到了一起。。也就同时把两种完全不同的思想揉在了一起。。个人的理解是,它就像周星驰电影里的那个“要你命3000”,把苍蝇拍,杀虫剂,手枪,手榴弹,灭鼠灵,用一根麻绳串在一起。。。杀虫可以,灭鼠可以,杀人也可以,堪称无所不能。。。但用起来,真是麻烦死了。。所以对于很多人来说,认可它的地位,承认它的功能,但敬而远之。
-
-
JAVA是今天真正意义上的大道正宗,名门正派。。。。丐帮有降龙十八掌,华山派有独孤九剑。。但你却很难说出,少林派有什么武功特别强。。而它又是公认的名门正宗。。。这其实就已经说明问题了,JAVA没有什么特别强的方面,但每个方面都不弱。。整体平均值,便非常高。。JAVA还有一个比较突出的优势,就是它是安卓系统的官方开发语言。。既然说到了少林,就不得不提一下武当。。。那就是微软的官方语言C#。。。.C#和JAVA相比,其实80%都是一样的。。几乎等于学一门,会两门,C#比JAVA稍微简单一些,IDE也好一些,其实比JAVA更适合新手,但由于之前不能跨平台,所以流行度比JAVA低,但确是游戏开发行业的第一大语言。。JAVA与C#基本可以看成一门语言的两种方言。。英式英语和美式英语的差别一样。。说到底还是半斤八两。。。一个是传统应用和安卓系统的第一大语言,一个是WINDOWS系统和游戏开发的第一大语言。。而且学一门会两门,你还要求啥?
-
Python也是个很有历史的语言,诞生时间和JAVA,C#差不多,但今天却依然非常时髦。。因为它的语法,简洁,优雅,风骚到了极致。。像写信一样写代码。。而又无所不能,JAVA和C#能做到的,Python几乎一样都不少。。。简单易学,尤其受到初学者喜爱。。但Python更像一把双刃剑,优点特别突出,缺点也特别明显,就是特别慢。。。一般认为,Python比JAVA慢25倍到50倍。。还有一门语言叫Ruby,和Python相似,也是语法特别简洁。。但比Python更慢,用途也不如Python。。。基本可以看作华山,丐帮,在某些情况下,可以胜过少林武当。。但整体上比较,还是要差一截。。但即便如此,它的前景也是非常好的。。由于语法简单,更容易被机器解析,所以在人工智能领域非常有前途。比如那个下围棋的Alpha Go,以及中国的北斗卫星定位系统。。都有大量的Python代码在里面。
4、简述解释型和编译型编程语言?
-
编译型语言:把做好的源程序全部编译成二进制代码的可运行程序。然后,可直接运行这个程序。
-
-
解释型语言:把做好的源程序翻译一句,然后执行一句,直至结束!python是一门解释型语言
5、Python解释器种类以及特点?
-
Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的种Python解释器:
-
CPython:
-
当 从Python官方网站下载并安装好Python2.7后,就直接获得了一个官方版本的解释器:Cpython,这个解释器是用C语言开发的,所以叫 CPython,在命名行下运行python,就是启动CPython解释器,CPython是使用最广的Python解释器。
-
IPython:
-
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的
-
PyPy:
-
PyPy是另一个Python解释器,它的目标是执行速度,PyPy采用JIT技术,对Python代码进行动态编译,所以可以显著提高Python代码的执行速度。
6、位和字节的关系?
位(bit),数据存储是以“字节”(Byte)为单位,数据传输是以大多是以“位”(bit,又名“比特”)为单位,一个位就代表一个0或1(即二进制),每8个位(bit,简写为b)组成一个字节(Byte,简写为B),是最小一级的信息单位,是计算机信息技术用于计量存储容量的一种计量单位,也表示一些计算机编程语言中的数据类型和语言字符。
7、b、B、KB、MB、GB 的关系?
-
1 B = 8b (8个bit/ 位) 一个字节(byte)等于8位(bit)
-
1 kB = 1024 B (kB - kilobajt)
-
1 MB = 1024 kB (MB - megabajt)
-
1 GB = 1024 MB (GB - gigabajt)
8、请至少列举5个 PEP8 规范(越多越好)。
-
1 缩进。4个空格的缩进(编辑器都可以完成此功能),不使用Tap,更不能混合使用Tap和空格。
-
2 每行最大长度79,换行可以使用反斜杠,最好使用圆括号。换行点要在操作符的后边敲回车。
-
3 类和top-level函数定义之间空两行;类中的方法定义之间空一行;函数内逻辑无关段落之间空一行;其他地方尽量不要再空行。
-
4 不要在一句import中多个库,比如import os, sys不推荐。
-
5 避免不必要的空格。
9、通过代码实现如下转换:
· 二进制转换成十进制:v = “0b1111011”
-
>>> int('0b1111011',2)
-
123
· 十进制转换成二进制:v = 18
-
>>> bin(18)
-
'0b10010'
· 八进制转换成十进制:v = “011”
-
>>> int('011',8)
-
9
· 十进制转换成八进制:v = 30
-
>>> oct(30)
-
'0o36'
· 十六进制转换成十进制:v = “0x12”
-
>>> int('0x12',16)
-
18
· 十进制转换成十六进制:v = 87
-
>>> hex(87)
-
'0x57'
如 10.3.9.12 转换规则为:
10 00001010
3 00000011
9 00001001
12 00001100
再将以上二进制拼接起来计算十进制结果:00001010 00000011 00001001 00001100 = ?
-
def ip(value):
-
res = value.split('.')
-
s=''
-
for i in res:
-
i = (bin(int(i)).strip('0b'))
-
if len(i) != 8:
-
i = i.zfill(8)
-
s+=i
-
return int(s,2)
11、python递归的最大层数?
python默认递归最大的层数是998 不过这个值是可以通过sys.setrecursionlimit(1000)来设置
12、求结果:
v1 = 1or3
1
v2 = 1and3
3
v3 = 0and2and1
0
v4 = 0and2or1
0 and 2 or 1
v5 = 0and2or1or4
1
v6 = 0orFlase and1
False
13、ascii、unicode、utf-8、gbk 区别?
-
ASCII码使用一个字节编码,所以它的范围基本是只有英文字母、数字和一些特殊符号 ,只有256个字符。
-
在表示一个Unicode的字符时,通常会用“U+”然后紧接着一组十六进制的数字来表示这一个字符。在基本多文种平面(英文为 Basic Multilingual Plane,简写 BMP。它又简称为“零号平面”, plane 0)里的所有字符,要用四位十六进制数(例如U+4AE0,共支持六万多个字符);在零号平面以外的字符则需要使用五位或六位十六进制数了。旧版的Unicode标准使用相近的标记方法,但却有些微的差异:在Unicode 3.0里使用“U-”然后紧接着八位数,而“U+”则必须随后紧接着四位数。
-
Unicode能够表示全世界所有的字节
-
GBK是只用来编码汉字的,GBK全称《汉字内码扩展规范》,使用双字节编码。
-
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。现在已经标准化为RFC 3629。UTF-8用1到6个字节编码UNICODE字符。用在网页上可以同一页面显示中文简体繁体及其它语言(如英文,日文,韩文)。
14、字节码和机器码的区别?
-
通常意义上来理解的话,机器码就是计算机可以直接执行,并且执行速度最快的代码。
-
字节码是一种中间状态(中间码)的二进制代码(文件)。需要直译器转译后才能成为机器码。
15、三元运算规则以及应用场景?
-
三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值
-
格式:[on_true] if [expression] else [on_false]
-
res = 值1 if 条件 else 值2
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
下一篇:装饰器路由具体实现梳理
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash