编程:Python基础笔试题(附答案)编程:Python基础笔试题(附答案)
⼀、单项选择题
1.下列哪个语句在Python中是⾮法的?
A、x = y = z =1
B、x = (y = z + 1)
C、x, y = y, x
D、x += y
截取字符串的函数名字答案:B
2.关于Python内存管理,下列说法错误的是
A、变量不必事先声明
B、变量⽆须先创建和赋值⽽直接使⽤
C、变量⽆须指定类型
D、可以使⽤del释放资源
答案:B. (不先赋值会报错,is not defined)
3、下⾯哪个不是Python合法的标识符
A、int32
B、40XL
C、self
D、name
答案:B(合法的标识符不能以数字开头)
4、下列哪种说法是错误的
A、除字典类型外,所有标准对象均可以⽤于布尔测试
B、空字符串的布尔值是Falsepython基础代码实例
C、空列表对象的布尔值是False
D、值为0的任何数字对象的布尔值是False
答案:D (a=0,0, bool(a)为True)
5、下列表达式的值为True的是
A、5+4j >2-3j
B、3>2>2
C、(3,2)<(‘a’,‘b’)
D、’abc’ > ‘xyz’
答案:C (在Py2.x版本中正确,在Py3.x运⾏错误)
6、Python不⽀持的数据类型有
A、char
B、int
C、float
D、list
答案:A(python⾥⽆char型数据,有string字符串类型;但C语⾔中有char数据类型)
7、关于Python中的复数,下列说法错误的是
A、表⽰复数的语法是real + imagej
B、实部和虚部都是浮点数
C、虚部必须后缀j,且必须是⼩写
D、⽅法conjugate返回复数的共轭复数
答案:C(复数虚部的后缀也可以是⼤写的J)三角函数正割余割公式
8、关于字符串下列说法错误的是
A、字符应该视为长度为1的字符串
B、字符串以\0标志字符串的结束
C、既可以⽤单引号,也可以⽤双引号创建字符串
D、在三引号字符串中可以包含换⾏回车等特殊字符
答案:B(python因为字符串有长度限制,到了长度就标志字符串的结束)
9、以下不能创建⼀个字典的语句是
A、dict1 = {}
B、dict2 = { 3 : 5 }
C、dict3 ={[1,2,3]: “uestc”}
D、dict4 = {(1,2,3): “uestc”}
答案:C(字典的键必须是不变的,⽽列表是可变的)
10、下列Python语句正确的是:
A、min = x if x< y = y
B、max = x > y ?x:y
C、if (x >y) print x
D、while True :pass
答案:D
11、以下代码运⾏结果是什么(假设在python 2.X下)()
print type(1/2)
A. int
B. float
C. 0
D. 1
E.0.5
答案:A(在Py3.x的版本中,结果是float型)
12、以下代码运⾏结果是什么?()
counter = 1
def doLotsOfStuff():
global counter
for i in (1, 2, 3):
counter += 1
doLotsOfStuff()
print counter
A.1
B.3
C.4
D.7
< of the above
答案:C
13、以下代码运⾏结果是什么?()
print r"nwoow"
B.the text exactly like this: r”nwoow”
C.the text like exactly like this: nwoow
D.the letter r and then newline then the text: woow
E.the letter r then the text like this: nwoow
答案:C(字符串前⾯加r,表⽰禁⽌字符串转义)
14、以下代码运⾏结果是什么?()
for i in range(2):
print i
for i inrange(4,6):
print i
A.2, 4, 6
B.0,1, 2, 4, 5, 6
C.0, 1, 4, 5
D.0,1, 4, 5, 6, 7, 8, 9
E.1, 2, 4, 5, 6
答案:C
15、以下代码运⾏结果是什么?()
import math
print math.floor(5.5)
A.5
B.5.0
C.5.5
D.6
E.6.0
答案:B
16、假设有个⽂件/usr/lib/python/person.py内容如下,执⾏以下命令输出结果是什么? python /usr/lib/python/person.py
class Person:
def__init__(self):
pass
defgetAge(self):
print__name__
p = Person()p.getAge()
A.Person
C.usr.lib.python.person
D.main
E.Anexception is thrown
答案:D (当内部单独执⾏模块时,name__的返回值就是__main,当被外部模调⽤时,返回的是模块的名字,在此即为person) 17、以下代码运⾏结果是什么?()
names1 = [‘Amir’, ‘Barry’, ‘Chales’, ‘Dao’]
if ‘amir’ in names1:
print 1
else:
print 2
A.1
B.2
C.An exception is thrown
D.Nothing
答案:B
18、以下代码运⾏结果是什么?()
numbers = [1, 2, 3, 4]
numbers.append([5,6,7,8])
print len(numbers)
A.4
B.5
C.8
D.12
E.An exception is thrown
答案:B(numbers为[1,2,3,4,[5,6,7,8]])
19、以下代码运⾏结果是什么?()
kvps = { ‘1’ :1, ‘2’ : 2 }
theCopy =py()
kvps[‘1’] = 5
轮播海报制作sum = kvps[‘1’]+ theCopy[‘1’]
print sum
oracle系统教程A.1
B.2
C.6
D.10
E.An exception is thrown
答案:C(字典的浅拷贝,只拷贝⽗对象,即theCopy拷贝了kvps,当kvps改变表⾯时,theCopy不改变相应值)
以下选项中,不是 Python 语⾔保留字的是 ()
A: do
B: pass
C: except
D: while
答案:A(查看保留字的⽅法如下:import keyword; keyword.kwlist)
⼆、判断题
列表中的元素可以是不同数据类型 T
元组中的元素只能是同⼀数据类型 F
元组中的元素是不可更改的 F
字典中可以添加新的键-值 T
a = 1; a = a + 1;前者a的地址与后者a的地址相同 F
a = [1, 2, 3]; a.append(7); 前者a的地址与后者a的地址相同 T
a = {‘a’:1, ‘b’:2}; a[‘c’] = 3; 前者a的地址与后者a的地址相同 T
在函数中,传⼊数字、字符或者元组等不可变对象属于值传递 T
数组转字符串教学视频在函数中,传⼊列表、字典等可变对象属于引⽤传递 T
在函数中,定义fun(a=1, b),按照fun(2)调⽤, 运⾏不会报错 F
使⽤可变长参数函数fun(*args, **kwargs),按照fun(2,3,4)调⽤,则args值为(2,3,4),kwargs为空字典 T 字符串函数title()是使字符串开头⾸字母⼤写 F
字符串函数capitalize()是使字符串开头⾸字母⼤写 T
python不能多继承 F
python在删除对象时会⾃动调⽤析构函数 T
python私有成员只能内部访问,不能从对象来访问 T
静态变量与静态⽅法属于实例 F
静态⽅法可以直接访问,不需要使⽤“类名.静态⽅法名”调⽤。 F
静态⽅法可以直接对类静态变量进⾏操作 F
类⽅法可以对类静态变量进⾏操作 T
静态⽅法不需要关键字self T
静态⽅法可以访问对象变量 F
类⽅法可以访问对象变量 F
静态⽅法、类⽅法都可以被对象调⽤ T
标准输出是指输出⾄⽂件 F
标准输⼊是指从键盘输⼊ T
⽂件’wb’模式是指按照⽂本模式只写 F
⽂件’r+'模式是只读模式 F
⽂件’r+'模式可以读写,但⽂件⼀定要存在 T
⽂件’w+'模式可以读写,⽂件不存在时先建⽴⽂件 T
三、问答题
1.Python是如何进⾏内存管理的?
答:从三个⽅⾯来说,⼀对象的引⽤计数机制,⼆垃圾回收机制,三内存池机制
⼀、对象的引⽤计数机制
Python内部使⽤引⽤计数,来保持追踪内存中的对象,所有对象都有引⽤计数。
引⽤计数增加的情况:
1,⼀个对象分配⼀个新名称
2,将其放⼊⼀个容器中(如列表、元组或字典)
引⽤计数减少的情况:
1,使⽤del语句对对象别名显⽰的销毁
2,引⽤超出作⽤域或被重新赋值
多数情况下,引⽤计数⽐你猜测得要⼤得多。对于不可变数据(如数字和字符串),解释器会在程序的不同部分共享内存,以便节约内存。⼆、垃圾回收
1,当⼀个对象的引⽤计数归零时,它将被垃圾收集机制处理掉。
2,当两个对象a和b相互引⽤时,del语句可以减少a和b的引⽤计数,并销毁⽤于引⽤底层对象的名称。然⽽由于每个对象都包含⼀个对其他对象的应⽤,因此引⽤计数不会归零,对象也不会销毁。(
从⽽导致内存泄露)。为解决这⼀问题,解释器会定期执⾏⼀个循环检测器,搜索不可访问对象的循环并删除它们。
三、内存池机制
Python提供了对内存的垃圾收集机制,但是它将不⽤的内存放到内存池⽽不是返回给操作系统。
1,Pymalloc机制。为了加速Python的执⾏效率,Python引⼊了⼀个内存池机制,⽤于管理对⼩块内存的申请和释放。
2,Python中所有⼩于256个字节的对象都使⽤pymalloc实现的分配器,⽽⼤的对象则使⽤系统的malloc。
3,对于Python对象,如整数,浮点数和List,都有其独⽴的私有内存池,对象间不共享他们的内存池。也就是说如果你分配⼜释放了⼤量的整数,⽤于缓存这些整数的内存就不能再分配给浮点数。
2.什么是lambda函数?它有什么好处?
答:lambda 表达式,通常是在需要⼀个函数,但是⼜不想费神去命名⼀个函数的场合下使⽤,也就是指匿名函数
lambda函数:⾸要⽤途是指点短⼩的回调函数
lambda [arguments]:expression
a=lambdax,y:x+y
a(3,11)
3.Python⾥⾯如何实现tuple和list的转换?
答:直接使⽤tuple和list函数就⾏了,type()可以判断对象的类型
4.请写出⼀段Python代码实现删除⼀个list⾥⾯的重复元素
答:
1,使⽤set函数,set(list)
2,使⽤字典函数,
a=[1,2,4,2,4,5,6,5,7,8,9,0]
b={}
b=b.fromkeys(a)
c=list(b.keys())
c
5.编程⽤sort进⾏排序,然后从最后⼀个元素开始判断
a=[1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
a.sort()
last=a[-1]
for i inrange(len(a)-2,-1,-1):
if last==a[i]:
del a[i]
else:last=a[i]
print(a)
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论