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的一个列表,这个将会占用很大的空间,但是使用生成器的话,不需要一上来就开辟一块很大的内存空间,会节省很大的资源。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/452864.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

视频网站盈利模式与营销策划

在与数十家视频网站进行信息网络传播权交易过程中,在研究视频网站内容和盈利模式基础上,综合自己在传统媒体和新媒体领域十几年的策划和营销经验,我发现:视频网站的盈利模式其实早就形成多种体系,但是盈利之路艰难&…

[UWP]了解模板化控件(4):TemplatePart

原文:[UWP]了解模板化控件(4):TemplatePart1. TemplatePart TemplatePart(部件)是指ControlTemplate中的命名元素。控件逻辑预期这些部分存在于ControlTemplate中,并且使用protected DependencyObject GetTemplateChild(String ch…

动态重定位的增加的紧凑功能

动态重定位增加了紧凑的功能,在动态的分区分配时,可以对外部碎片进行紧凑来为没有内存空间进行存储的进程进行分配。

java 重载 equals_实现Student类的equals重载函数

[java]代码库//测试类public class StudentDemo {public static void main(String[] args) {Student s1 new Student("000","张三",18);Student s2 new Student("000","张三",18);//随便改boolean flag s1.equals(s2);System.out.p…

python面试题总结(3)-- 数据类型(字符串)

1. 列举 Python 中的基本数据类型? 答: Python3 中有六个标准的数据类型:数字(Number)、字符串(String)、列表(List)、元组(Tuple)、集合&#…

Jetty - Container源码分析

1. 描述 Container提供管理bean的能力。 基于Jetty-9.4.8.v20171121。 1.1 API public interface Container {// 增加一个bean,如果bean是一个Container.Listener则隐含调用addEventListener(Container.Listener)方法// Container.Listener只关心两个事件&#xff1…

Ubuntu中安装FastDFS

1 安装fastdfs依赖包 解压缩libfastcommon-master.zip进入到libfastcommon-master的目录中执行 ./make.sh执行 sudo ./make.sh install 2 安装fastdfs 解压缩fastdfs-master.zip进入到 fastdfs-master目录中执行 ./make.sh执行 sudo ./make.sh install 3 配置跟踪服务器tra…

python基本语句及其意思_Python语法基础(1),一

一、Python的对象模型对象是Python语言中最基本的概率,在Python中处理的一切都是对象。Python中许多内置对象可提供编程者使用,内置对象可直接使用,如数字、字符串、列表 、del等;非内置对象需要导入模块才能使用,如正…

Ubuntu中安装nginxError

问题1:出现如下错误: ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCR…

esrgan_ESRGAN: Enhanced Super-Resolution Generative Adversarial Networks【阅读笔记】

针对SRGAN提出的几点改进,获得了PIRM2018视觉质量的第一名。首先是使用去掉BN层的Residual in Residual Dense Block作为网络的basic unit。并且使用residual scling 和 smaller initialization帮助训练更深的网络。第二点改进是使用了Relativistic Discriminator来…

启动FastDFS服务,使用python客户端对接fastdfs完成上传测试

1.启动tracker、storage、nginx服务: 启动fdfs_trackerd:sudo service fdfs_trackerd start 启动fdfs_storaged :sudo service fdfs_storaged start 启动Nginx:sudo /usr/local/nginx/sbin/nginx 注:此处给出重启服务…

Python学习-终端字体高亮显示

1、采用原生转义字符序列,对Windows有的版本不支持(比如win7),完美支持Linux 实现过程: 终端的字符颜色是用转义序列控制的,是文本模式下的系统显示功能,和具体的语言无关。 转义序列是以ESC开头…

js下载文件 java_[Java教程]使用js实现点击按钮下载文件

[Java教程]使用js实现点击按钮下载文件0 2016-11-11 19:02:54有时候我们在网页上需要增加一个下载按钮,让用户能够点击后下载页面上的资料,那么怎样才能实现功能呢?这里有两种方法:现在需要在页面上添加一个下载按钮,点…

Django二次开发对接FastDFS

1.自定义文件存储器类 配置文件settings中加入如下配置 # 设置Django的文件存储类、(名字固定) DEFAULT_FILE_STORAGEutils.fdfs.storage.FDFSStorage# 设置fdfs使用的client.conf文件路径(名字自己定义) FDFS_CLIENT_CONF./util…

微信支付 java 集成案例_Spring Boot项目中集成微信支付v3

1. 前言最近忙的一批,难得今天有喘气的机会就赶紧把最近在开发中的一些成果分享出来。前几日分享了自己写的一个微信支付V3的开发包payment-spring-boot-starter,就忙里偷闲完善了一波。期间给微信支付提交了6个BUG,跟微信支付的产品沟通了好…

16. vim

vim编辑器是vi的升级版本,带颜色显示安装yum install -y vim-enhanced将passwd文件复制到其他目录下,vim后没有颜色 一般模式上下左右方向键或kjhl四个键移动光标n方向键 向特定方向移动n位ctrl b 或 pageup 向上翻页ctrl f 或 pagedown 向下翻页0或sh…

Jmeter(三)_配置元件

HTTP Cookie Manager 用来存储浏览器产生的用户信息 Clear Cookies each Iteration:每次迭代请求,清空cookies,GUI中定义的任何cookie都不会被清除。Implementation:默认HC4CookieHandlerCookie Policy:将用于管理Cook…

Django项目--首页静态化

0前言 1.使用Celery生成静态页面 task.py中新增任务函数generate_static_index_html(),任务函数生成静态页面。 app.task def generate_static_index_html():产生首页静态页面# 获取商品的种类信息types GoodsType.objects.all()# 获取首页轮播商品信息goods_bann…

C语言指针,申请、释放内存,线程

2019独角兽企业重金招聘Python工程师标准>>> 1:普通情况下,C语言的指针是使用虚拟地址,并非物理地址; 2:C语言mallco函数可以根据输入的值,申请一块连续的内存;free(*p&a…