刷题系列之Python基础

  • Post author:
  • Post category:python

1、题目描述:
下列表达式的值为True的是:
A、5+4j > 2-3j
B、3>2>2
C、(3,2)<(’a’,’b’)
D、’abc’ >’xyz’

对于A:复数不能比较大小
B: Python2支持连续比较,相当于3>2and2>2,所以B不对
C:元组类型的比较是元素多的大于元素少的,若元素个数相等,则从第一个元素开始依次向后比较,直到两个元素不相等才结束。也就是判断3<’a’就结束了,因为两者不等
在比如,比较(1,9) <(2,3) ,也是返回True,因为1<2就结束了。
D:字符串的比较不会像tuple一样先看长短,而是直接从第一个开始比较,直到两者不等就结束,这里’a’<’x’结束了。

2、解释性语言的特性:

A. 非独立
B. 效率低
C. 独立
D. 效率高

解释性语言和编译性语言的定义:
计算机不能直接理解高级语言,只能直接理解机器语言,所以必须要把高级语言翻译成机器语言,计算机才能执行高级语言编写的程序。
翻译的方式有两种,一个是编译,一个是解释。两种方式只是翻译的时间不同。

解释性语言的定义:
解释性语言的程序不需要编译,在运行程序的时候才翻译,每个语句都是执行的时候才翻译。这样解释性语言每执行一次就需要逐行翻译一次,效率比较低。
现代解释性语言通常把源程序编译成中间代码,然后用解释器把中间代码一条条翻译成目标机器代码,一条条执行。

编译性语言的定义:
编译性语言写的程序在被执行之前,需要一个专门的编译过程,把程序编译成为机器语言的文件,比如exe文件,以后要运行的话就不用重新翻译了,直接使用编译的结果就行了(exe文件),因为翻译只做了一次,运行时不需要翻译,所以编译型语言的程序执行效率高。

非独立:依赖解释器

3、下面哪个不是Python合法的标识符:
A.int32
B. 40XL
C. self
D. name

正像其他普通编程语言的通用规则,Python中的标识符不能以数字开头。

4、有一段python的编码程序如下:urllib.quote(line.decode(“gbk”).encode(“utf-16”)),请问经过该编码的字符串的解码顺序是( )
字符串编译的过程:gbk==>unicode==>utf16==>url解码
字符串解码顺序为:url解码==>utf16==>unicode==>gbk

5、任何数的0次方都等于1

6、下列对象的布尔值都是False:
NONE;
False(布尔类型)
所有的值为零的数
0(整型)
0.0(浮点型)
0L(长整型)
0.0+0.0j(复数)
“”(空字符串)
[] (空列表)
() (空元组)
{} (空字典)

7、unicode是一种编码标准,具体的实现标准可能是utf-8,utf-16,gbk ……python 在内部使用两个字节来存储一个unicode,使用unicode对象而不是str的好处,就是unicode方便于跨平台。你可以用如下两种方式定义一个unicode:
s1 = u”人生苦短”
s2 = unicode(“人生苦短”, “utf-8”)

8、python my.py v1 v2 命令运行脚本,通过 from sys import argv如何获得v2的参数值? ——argv[2]

9、 issubclass(a,b)——判断a是否是b的子类
isinstance(c,d)——判断c,d类型是否相同,考虑继承,如果存在继承关系那就return True

10、以下不能创建一个字典的是:C

A. dict = {}
B. dict2 = {3:5}
C. dict3 = {[1,2,3]:”uestc”}
D. dict4 = {(1,2,3):”uestc”}

字典中键必须是唯一的。列表中的项目包括在方括号中。列表是可变的数据类型(可以增加或删除项目)。所以,列表中的项目不能用来作为字典的键。

11、Python中单下划线 _ foo与双下划线 _ foo 与 __ foo _的成员,下列说法正确的是?ABC
A、_foo 不能直接用于’from module import *’
B、__ foo解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名
C、_ foo _代表python里特殊方法专用的标识
D、__foo 可以直接用于’from module import *’

解答:
_xxx 不能用’from module import *’导入 (相当于protected)
_ xxx _ 系统定义名字 (系统内置的,比如关键字)
__xxx 类中的私有变量名 (privated),所以更加不能使用from module import进行导入了

12、下列代码运行结果是? c
a = ‘a’
print a > ‘b’ or ‘c’
解答:
对python而言
其一, 在不加括号时候, and优先级大于or
其二, x or y 的值只可能是x或y. x为真就是x, x为假就是y
第三, x and y 的值只可能是x或y. x为真就是y, x为假就是x

13、关于字符串下列说法错误的是: B
A、字符应该视为长度为1的字符串
B、字符串以\0标志字符串的结束
C、既可以用单引号,也可以用双引号创建字符串
D、在三引号字符串中可以包含换行回车等特殊字符

解答:B 以”\0”结尾是C/C++中存在,在python中不存在!!!!!!!!

14、_ new __ init _的区别,说法正确的是? ABCD
A、_ new_是一个静态方法,而_ init _是一个实例方法
B、_ new _ 方法会返回一个创建的实例,而_init _什么都不返回
C、只有在_ new_返回一个cls的实例时,后面的_ init_才能被调用
D、当创建一个新实例时调用_ new _,初始化一个实例时用_init_

解答:
_ init _是当实例对象创建完成后被调用的,然后设置对象属性的一些初始值。
_ new _ 是在实例创建之前被调用的,因为它的任务就是创建实例然后返回该实例,是个静态方法。
即:_ new __ init _ 之前被调用的,_ new _ 的返回值(实例)将传递给 _ init _给这个实例设置一些参数。

15、math.floor()向下取整,注意Python2中该函数返回值为浮点数,Python3中返回值为整型。

16、what gets printed? Assuming python version 2.x()
print type(1/2)
答案: type ‘init’
解答:Python2中除了除法默认向下取整,而Python3中除法为正常除法,会保留小数位,为浮点型

17、如何解释下面的执行结果? B
print 1.2 – 1.0 == 0.2
False
A、Python的实现由错误
B、浮点数无法精确表示、
C、布尔运算不能用于浮点数比较
D、Python将非0数视为False
解答:因为Python中浮点数的运算存在误差,看下面例子:
这里写图片描述

18、Assuming the filename for the code below is /usr/lib/python/person.py
and the program is run as: python /usr/lib/python/person.py
What gets printed?() D

class Person:
 def __init__(self):
 pass
 def getAge(self):
 print __name__
p = Person()p.getAge()

A、Person
B、getAge
C、usr.lib.python.person
D、main E.An exception is thrown

解答:在Python2的解释环境下,正确的输出应该为:_ main _
19、运行结果? 4

a = 0
try:
    a +=1
except:
    a += 1
else:
    a += 1
finally:
    a+=1
print a

解答:

try:
    正常的操作
   ......................
except:
    发生异常,执行这块代码
   ......................
else:
    如果没有异常执行这块代码
finally:
     退出try时总会执行
raise

20、下列对协程的理解错误的是? D
A、一个线程可以运行多个协程
B、协程的调度由所在程序自身控制
C、Linux中线程的调度由操作系统控制
D、Linux中协程的调度由操作系统控制
解答:


版权声明:本文为ZiTeng_Du原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。