Python程序只能在安装了Python环境的计算机上以源代码形式运行。
此题为判断题(对,错)。
Python源代码程序编译后的文件扩展名为_________。
以下关于解释方式下运行程序的叙述中,错误的是( )。
A.先将高级语言程序转换为字节码,再由解释器运行字节码B.由解释器直接分析并执行高级语言程序代码C.先将高级语言程序转换为某种中间代码,再由解释器运行中间代码D.先将高级语言程序转换为机器语言,再由解释器运行机器语言代码
以下关于解释方式运行程序的叙述中,错误的是( )。
A.先将高级语言程序转换为字节码,再由解释器运行字节码B.由解释器直接分析并执行高级语言程序代码 C.先将高级语言程序转換为某种中间代码,再由解释器运行中间代码D.先将高级语言程序转换为机器语言,再由解释器运行机器语言代码
能将高级语言编写的源程序转换为目标程序的是什么?
A)将高级语言转换为目标程序
B)将汇编语言转换为目标程序
C)解释执行高级语言程序
D)解释执行汇编语言程序
软控股份有限公司6月招聘面试题面试题面试官常问到的一些题目整理如下:问题 Q1:如何解释Python?可用的回答 :Python语言是一种解释语言。Python程序直接从源代码运行。它将程序员编写的源代码转换为中间语言,再次转换为必须执行的机器语言。问题 Q2:描述数组、链表、队列、堆栈的区别?可用的回答 : 数组与链表是数据存储方式的概念,数组在连续的空间中存储数据,而链表可以在非连续的空间中存储数据; 队列和堆栈是描述数据存取方式的概念,队列是先进先出,而堆栈是后进先出; 队列和堆栈可以用数组来实现,也可以用链表实现。 问题 Q3:什么是粘包? socket 中造成粘包的原因是什么? 哪些情况会发生粘包现象?可用的回答 : 粘包:在接收数据时,一次性多接收了其它请求发送来的数据(即多包接收)。如: 对方第一次发送hello,第二次发送world,在接收时,应该收两次, 一次是hello,一次是world,但事实上是一次收到helloworld,一次收到空,这种现象叫粘包。 原因: 粘包问题主要还是因为接收方不知道消息之间的界限,不知道一次性提取多少字节的数据所造成的。 什么情况会发生: 1、发送端需要等缓冲区满才发送出去,造成粘包 发送数据时间间隔很短,数据很小,会合到一起,产生粘包 2、接收方不及时接收缓冲区的包,造成多个包接收 客户端发送了一段数据,服务端只收了一小部分, 服务端下次再收的时候还是从缓冲区拿上次遗留的数据,产生粘包 解决方案: 一个思路是发送之前,先打个招呼,告诉对方自己要发送的字节长度, 这样对方可以根据长度判断什么时候终止接受 注意: 只有TCP有粘包现象,UDP永远不会粘包! 问题 Q4:什么是Python中的单元测试?可用的回答 :它支持共享设置,自动化测试,测试关闭代码,将测试聚合到集合等。包括unittest,pytest等框架问题 Q5:django 中当一个用户登录 A 应用服务器(进入登录状态),然后下次请求被 nginx 代理到 B 应用服务器会出现什么影响?可用的回答 :如果用户在A应用服务器登陆的session数据没有共享到B应用服务器,那么之前的登录状态就没有了。问题 Q6:Post和get区别?可用的回答 : 1. 请求数据 GET请求,请求的数据会附加在URL之后,以?分割URL和传输数据,多个参数用&连接。URL的编码格式 采用的是ASCII编码,而不是uniclde,即是说所有的非ASCII字符都要编码之后再传输。 POST请求:POST请求会把请求的数据放置在HTTP请求包的包体中。上面的item=bandsaw就是实际的传输数据。 因此,GET请求的数据会暴露在地址栏中,而POST请求则不会。 2、传输数据的大小 在HTTP规范中,没有对URL的长度和传输的数据大小进行限制。但是在实际开发过程中,对于GET,特定的浏览器和服务器对URL的长度有限制。 因此,在使用GET请求时,传输数据会受到URL长度的限制。 对于POST,由于不是URL传值,理论上是不会受限制的,但是实际上各个服务器会规定对POST提交数据大小进行限制,Apache、IIS都有各自的配置。 3、安全性 POST的安全性比GET的高。这里的安全是指真正的安全,而不同于上面GET提到的安全方法中的安全, 上面提到的安全仅仅是不修改服务器的数据。比如,在进行登录操作,通过GET请求,用户名和密码都会暴露再URL上, 因为登录页面有可能被浏览器缓存以及其他人查看浏览器的历史记录的原因,此时的用户名和密码就很容易被他人拿到了。 除此之外,GET请求提交的数据还可能会造成Cross-site requestfrogery攻击。 问题 Q7:谈谈你对闭包的理解?可用的回答 : #闭包函数的实例 # outer是外部函数 a和b都是外函数的临时变量 def outer( a ): b = 10 # inner是内函数 def inner(): #在内函数中 用到了外函数的临时变量 print(a+b) # 外函数的返回值是内函数的引用 return inner if _name_ = _main_: # 在这里我们调用外函数传入参数5 #此时外函数两个临时变量 a是5 b是10 ,并创建了内函数,然后把内函数的引用返回存给了demo # 外函数结束的时候发现内部函数将会用到自己的临时变量,这两个临时变量就不会释放, 会绑定给 这个内部函数demo = outer(5) # 我们调用内部函数,看一看内部函数是不是能使用外部函数的临时变量 # demo存了外函数的返回值,也就是inner函数的引用,这里相当于执行inner函数 demo() # 15 demo2 = outer(7)问题 Q8:单引号,双引号,三引号的区别?可用的回答 : 单引号和双引号是等效的,如果要换行,需要符号(),三引号则可以直接换行,并且可以包含注释 如果要表示Lets go 这个字符串 单引号:s4 = Lets go 双引号:s5 = “Lets go” s6 = I realy like“python”! 这就是单引号和双引号都可以表示字符串的原因了 问题 Q9:一行代码实现1-100之和?可用的回答 :使用sum函数。sum(range(1, 101)问题 Q10:迭代器和生成器的区别?可用的回答 : 1)迭代器是一个更抽象的概念,任何对象,如果它的类有next方法和iter方法返回自己本身。对于 string、list、dict、tuple等这类容器对象,使用for循环遍历是很方便的。在后台for语句对容器对象调 用iter()函数,iter()是python的内置函数。iter()会返回一个定义了next