python面试题总结(1)--语言特性
1. 谈谈对 Python 和其他语言的区别
答:
Python 是一门强类型的可移植、可扩展、可嵌入的解释型编程语言,属于动态语言;其语法简洁优美、功能强大无比、应用领域非常广泛且具有强大完备的第三方库。
(注:语言有无类型,弱类型和强类型三种。强类型指的是程序中表达的任何对象所从属的类型都必须能在编译时刻确定。常见的强类型语言有C++、Java、Apex和Python等。)
拿 C 语言和 Python 比: Python 的第三方类库比较齐全并且使用简洁,很少代码就能实现一些功能,如果用 C 去实现相同的功能可能就比较复杂。
但是对于速度来说 Python 的运行速度相较于 C 就比较慢了。所以有利的同时也有弊端,毕竟我们的学习成本降低了。
2. 简述解释型和编译型编程语言
答:
编译型语言是指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码,一次性“翻译”成可被该平台硬件执行的机器语言(包括机器指令和操作数),并包装成该平台所能识别的可执行程序的格式,这个转换过程称为编译(Compile)。
编译生成的可执行程序可以脱离开发环境,在特定的平台上独立运行
解释型语言是指使用专门的解释器,将源程序逐行解释成特定平台的机器代码并立即执行的语言。
解释型语言通常不会进行整体性的编译和链接处理,解释型语言相当于把编译型语言中的编译和解释过程混合到一起同时完成。
可以这样认为,每次执行解释型语言的程序都需要进行一次编译,因此解释型语言的程序运行效率通常较低,而且不能脱离解释器独立运行。但解释型语言有一个优势,就是跨平台比较容易,只需提供特定平台的解释器即可,每个特定平台上的解释器都负责将源程序解释成特定平台的机器指令。
也就是说,解释型语言可以方便地实现源程序级的移植,但这是以牺牲程序执行效率为代价的。
编译型语言和解释型语言的对比如图所示。
不难理解,编译型语言和解释型语言的区别在于,编译是对高级语言程序进行一次性翻译,这样的好处是,一旦源程序被彻底翻译,它就可以重复运行,且今后都不再需要编译器和源代码;而如果使用解释器,则高级语言程序每次运行,都需要借助源程序和解释器,其最大的好处就是,程序有很好的可移植性。
3. Python 的解释器种类以及相关特点?
答:
CPython–c 语言开发的,使用最广的解释器
IPython–基于 cPython 之上的一个交互式计时器,交互方式增强功能和 cPython 一样
PyPy–目标是执行效率,采用 JIT 技术。对 Python 代码进行动态编译,提高执行效率
JPython–运行在 Java 上的解释器,直接把 Python 代码编译成 Java 字节码执行
IronPython–运行在微软 .NET 平台上的解释器,把 Python 编译成 . NET 的字节码。
4. Python3 和 Python2 的区别?
答: 这里例举 5 条
print 在 Python3 中是函数,必须加括号;Python2 中 print 为 class。
Python2 中使用 xrange,Python3 使用 range。
Python2 中默认的字符串类型是 ASCII,Python3 中默认的字符串类型是 Unicode。
Python2 中/的结果是整型,Python3 中是浮点类型。
Python2 中声明元类:metaclass = MetaClass, Python3 中声明元类:class newclass(metaclass=MetaClass):pass。
5. Python3 和 Python2 中 int 和 long 区别?
答:
Python2 有 int 和 long 类型。int 类型最大值不能超过 sys.maxint,而且这个最大值是平台相关的。可以通过在数字的末尾附上一个L来定义长整型,显然,它比 int 类型表示的数字范围更大。
在 Python3 里,只有一种整数类型 int,大多数情况下,表示为长整型,没有 python2 中的 Long。和 Python2中的长整型类似。
6. xrange 和 range 的区别?
答:
首先得说明一下,只有在python2中才有xrange和range,python3中没有xrange,并且python3中的range和python2中的range有 本质的区别。所以这儿说的range和xrange的区别是只针对python2的。
在py2中,range得到的是一个列表,即
x = range(0, 5)
print(type(x)) # 打印x的类型,结果是list
print(x) # 结果是[0,1,2,3,4]
xrange得到的是一个生成器对象, 即
x = xrange(0, 5)
print(type(x)) # 输出类型,结果为一个生成对象
print(x) # 输出x, 结果为xrange(0,5)
那么,python3中为什么没有了range了呢(额,这个怎么描述呢,是有range,但是这个range其实是py2中的xrange,而不是range),因为使用生成器可以节约内存。比如现在有个代码是for i in range(0, 10000),如果还是使用py2中的range的话,那么就会得到一个0到9999的一个列表,这个将会占用很大的空间,但是使用生成器的话,不需要一上来就开辟一块很大的内存空间,会节省很大的资源。
python面试题总结(1)--语言特性相关推荐
- AI算法工程师 | 02人工智能基础-Python基础(二)语言特性_控制语句_切片_数据类型
文章目录 Python基础语法 一.Python语言特性 使用Jupyter Notebook Python是强类型的动态脚本语言 Python中一切皆对象 二.流程控制语句 条件判断语句 循环语句 ...
- 【Python教程】30个语言特性技巧整理
1.分拆 a, b, c = 1, 2, 3 print(a,b,c) # 1 2 3 a, b, c = [1, 2, 3] print(a,b,c) # 1 2 3 a, b, c = (2 * ...
- # Python3 面试试题--Python语言特性
Python语言特性 1 Python的函数参数传递 看两个例子: a = 1 def fun(a):a = 2 fun(a) print(a) # 1 a = [] def fun(a):a.app ...
- python 特性和方法同名_Python语言特性的梳理
对python的语言特性,多线程机制,以及性能局限的梳理 运行环境 由于Python不同版本,尤其是Python2与Pyhton3之间差异明显,所以运行不同项目时往往需要不同版本的运行环境,这种情况下 ...
- 简述python的特性_python的一些语言特性(一)
python的一些语言特性(一) 记录一下方便复习 1 is是对比地址,==是对比值 a = [1] b = [1] print(a is b) # False print(a == b) # Tru ...
- python中的语言特性_python自测——语言特性
语言特性 1.谈谈对 Python 和其他语言的区别 答:Python 是一门语法简洁优美,功能强大无比,应用领域非常广泛,具有强大完备的第三方库,他是一门强类型的可移植.可扩展,可嵌入的解释型编程语 ...
- 总结Python的几点语言特性
总结Python的几点语言特性 Python语言简洁,优雅,扩展性强...... 这些特点常被Python程序员挂在嘴边,确实也都是Python的特点. 要讨论语言的特点或特性,可以得到很多不同的结论 ...
- python语言的变量特点随时_python程序设计——基本语言特性
参考<Python程序设计(第2版)> 清华大学出版社 董付国 ##### 除特殊说明外,以下代码示例,均为python 3.6版本 ##### 一.Python语言特性 1.python ...
- Python语言特性和优缺点及什么是鸭子类型?
1)Python语言特性? Python是静态还是动态类型?是强类型还是弱类型? Python是动态强类型语言(不少人误以为是弱类型) 动态还是静态指的是编译期还是运行期确定类型 强类 ...
- python 3 5的值_python3 语言特性5
一天一个语言特性更新 Number [数字] String [字符串] List [列表] Tuple [元组] Set [集合] Dictionary [字典] 不可变数据类型 Number [数字 ...
最新文章
- 书籍推荐——按内容划分
- 查询mysql视图_MySQL数据库简介及常用命令
- IDEA快捷键的使用成就手速之旅(要想手速变得快,快捷练习必须刚)
- ElasticSearch 文档的添加、获取、更新、删除_05
- java程序员_哪些书是不可错过的?Java程序员书单分享
- 水晶报表从VS2008升级到VS2010 注意事项
- bzoj3196 二逼平衡树——线段树套平衡树
- jmeter脚本录制http/https
- FTP(匿名登录)未授权访问漏洞复现(vsftpd2.3.4)
- android 小米imei 空,[教程]小米2s IMEI刷机造成的丢失 恢复及写入教程 【申精】
- [渝粤教育] 西北农林科技大学 土壤学 参考 资料
- Java生成桌面快捷方式(字节流生成)
- PDF文件怎么修改,PDF文件修改的方法
- SNMP——使用MIB-Browser 并编写 MIB库
- mysql建库图解_数据库 MySQL安装图解
- 聚币网API[Python2版]
- 电商订单仓储ERP管理系统软件源码
- 微信小程序前后端授权登陆
- Jenkins Mac本地环境搭建
- 国王的金币for循环
热门文章
- 数学建模 分支限界算法求解整数规划原理以及编程实现
- Android 将整形颜色值转换成String类型
- 研发团队平稳度过“从小到大”并非易事
- 水滴石穿C语言之指针、数组和函数
- 浅谈:国内软件公司为何无法做大做强?
- TS流头部的调整字段
- Navicat工具导出mySQL数据库某个视图结构的.sql脚本
- 数据结构与算法-ADT-Array
- LeetCode刷题第二天——3Longest Substring Without repeating character 4 Median of Two Sorted Arrays...
- HihoCoder 1323 回文字符串