一、函数
1.在函数内部可以通过关键字()来定义全局变量:
A.global
B.all
C.def
D.lambda
2.在Python中使用什么表达式创建匿名函数?
A.global
B.lambda
C.def
D.list
3.使用形式参数的名字来确定输入的参数值,是指什么参数?
A.位置参数
B.默认参数
C.形式参数
D.关键字参数
4.使用已存在的字典作为函数的可变参数,需要:
A.直接使用字典名称作为参数
B.在字典名称前加"*"
C.在字典名称前加"**"
D.在字典内每个元素前加"**"
5.使用lambda表达式时,参数可以有多个,用()分隔?
A.\
B.:
C.,
D./
6.函数中没有return语句,将:
A.返回None
B.输出False
C.报错
D.返回True
7.下列哪种参数形参和实参的数量与位置必须完全一致:
A.位置参数
B.关键字参数
C.可变参数
D.默认参数
8.下列说法错误的是:
A.函数定义必须放在调用之前
B.当代码中有main函数时,程序将从main开始执行
C.可以在函数中定义函数
D.函数可以没有返回值
9.()语句只要执行,就会直接结束函数的执行:
A.break 语句
B.pass 语句
C.print 语句
D.return 语句
10.下列关于lambda表达式的说法错误的是:
A.lambda表达式可以创建匿名函数
B.lambda表达式的参数只能有一个
C.lambda表达式只可以包含一个表达式
D.lambda 表达式中不能包含循环语句
11.关于函数,以下选项中描述错误的是:
A.函数是一段具有特定功能的可重用的语句组
B.函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可
C.使用函数的主要目的是降低编程的难度和代码复用
D.Python使用del保留字定义一个函数
12.定义可变参数时,主要有两种形式,一种是*parameter,另一种是什么?
A.parameter
B.**parameter
C.*parameter*
D.#parameter
13.在Python中,可以使用函数名._defaults_
查看函数的默认值参数的当前值,其结果是一个()?
A.序列
B.字符串
C.元组
D.列表
14.()符号与形式参数连用表示函数可以接收以元组组成的任意多个实际参数:
A.#
B.*
C.@
D.**
15.如果想要使用一个已经存在的列表作为函数的可变参数,可以在列表的名称前加()?
A.#
B.$
C.*
D.^
16.想要在函数体内部改变全局变量的值,需要在定义局部变量时,使用什么关键字修饰?
A.in
B.global
C.final
D.static
17.定义函数使用什么关键字实现?
A.function
B.comment
C.def
D.int
18.自定义一个录入信息的函数,下列代码的输出结果为:
def info(name, gender):
return ('name:', name)
return ('gender:', gender)
print(info("Lily", "F"))
A.('name:', 'Lily')
B.报错
C.None
D.name:Lily
19.下列代码的输出结果为:
def func(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
result = func(2, 3)
print(result)
A.4
B.6
C.8
D.9
20.表达式sum(range(10))的值是多少?
A.10
B.20
C.45
D.5
21.已知g=lambda x,y=3,z=5:xyz,则语句print(g(1))的输出结果是()?
A.15
B.20
C.0
D.10
22.“听我指挥,按绝对值升序排列!”第2行代码处应填入:
list1 = [3,5,-4,-1,0,-2,-6]
print(m)
A.m = sorted(list1, key=lambda x: abs(x))
B.m = sorted(list1, key=lambda: abs(x))
C.m = sorted(list1, key= abs(x))
D.m = sorted(list1, key= x, abs(x))
23.身在江湖,江湖却没有小明的传说.身为金庸迷,虽没有绝世武功,但小明志在写出“绝世代码”!想要输出金庸武侠世界的五大高手,如下所示,下列哪项代码正确:
# 1 达摩祖师
# 2 越女阿青
# 3 张三丰
# 4 段思平
# 5 扫地僧
A.
def hero(**name):
for index,item in enumerate(name):
print(index+1,item)
hero("达摩祖师","越女阿青","张三丰","段思平","扫地僧")
B.
def hero(*name):
return(name)
hero("达摩祖师","越女阿青","张三丰","段思平","扫地僧")
for index,item in enumerate(name):
print(index+1,item)
C.
def hero(*name):
for index,item in enumerate(name):
print(index+1,item)
hero("达摩祖师","越女阿青","张三丰","段思平","扫地僧")
D.
def hero(*name):
for index,item in name:
print(index,item)
hero("达摩祖师","越女阿青","张三丰","段思平","扫地僧")
24.已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,“+”)的值为多少?
A.4
B.6
C.8
D.10
25.我的中文名叫小明,英文名叫“Xiao Ming”~下列代码的输出结果为:
def sayhello(name, greeting='Hello'):
print('{},{}'.format(greeting, name))
sayhello('Ming')
sayhello('小明', greeting='你好')
A.
Ming
你好,小明
B.
Hello,Ming
你好,小明
C.
Ming
你好,小明
D.
Hello,Ming
你好,小明
26.以下选项中,对于函数的定义错误的是:
A.def vfunc(a,b=2):
B.def vfunc(a,b):
C.def vfunc(a,*b):
D.def vfunc(*a,b):
27.小明错把“甘之如饴”写成“甘之如怡”,老师罚他写20遍这个成语,他自己写了10遍之后,剩下的想用Python来写words=lambda x,y=20:x*y,输出语句应该写成:
print("甘之如饴")
A.print("甘之如饴")
B.print(words("甘之如饴"))
C.print(words("甘之如饴",10))
D.print(y="甘之如饴",x=10)
28.已知 g=lambda x,y=3,z=5:x*y*z
,则语句print(g(1,2))的输出结果是()?
A.0
B.50
C.10
D.20
29.已知 g=lambda x,y=3,z=5:x*y*z
,则语句print(g(1,z=2))的输出结果是():
A.0
B.20
C.6
D.10
30.同名不同命?重名的全局变量和局部变量,其各自“命运”究竟如何,请从下列代码的运算结果判断:
a = 2
def multiply(x, y=10):
a = x * y
return a
b = multiply(5, 7)
print(b)
print(a)
A.50 50
B.35 35
C.35 2
D.50 2
31.小明想开个“一人食饭馆”,每个人只能点一道菜,默认带主食且为米饭,他写了如下代码,如果输入“水煮鱼”,结果将输出:
def order(x, op="&", y="米饭"):
return (x + op + y)
x = input("请点一道菜:\n")
print(order(x, y="馒头"))
A.水煮鱼&米饭
B.水煮鱼&馒头
C.水煮鱼米饭
D.水煮鱼馒头
32.表达式list(filter(lambda x:x>5,range(10)))的值是多少?
A.[6,7,8,9]
B.[6,7,8,9,10]
C.5
D.10
33.通过遍历的方式计算字符串’amo,you are so cool’的长度,输出结果为:
def length(string):
x = 0
for i in string:
x += 1
print('该字符串的长度为:', x)
return x
length('amo,you are so cool')
A.该字符串的长度为:19
B.该字符串的长度为:16 16
C.amo,you are so cool
D.16
34.表达式list(filter(lambda x: len(x)>3,[‘a’,‘b’,‘abcd’]))的值为多少?
print(list(filter(lambda x: len(x) > 3, ['a', 'b', 'abcd'])))
A.abcd
B.'cd'
C.['abcd']
D.'abcd'
35.想要够潮?你得懂“00后黑话”!比如zqsg:表示真情实感,dbq:是对不起的缩写.小明最近又新学了一句,请问他的代码能正确输出这句“黑话”的意思吗:
n = "Nobody cares"
def f(x):
n
return x + "的意思是:" + n
print(f("NBCs"))
A.可以,输出结果为:NBCs的意思是:Nobody cares
B.不能,应删除第3行代码
C.不能,第4行代码应该改为return (x+"的意思是:"+n)
D.不能,应该在第3行的n 前面加关键字global
36.小崔老师说的“昨天、今天、明天”那是指“过去、现在和将来”,今天学好Python,明天公费旅行!小明想要输出一个“过去,现在,将来”的列表,看看他现在的代码水平能公费旅行吗?
def func(*m):
return list(m.values())
print(func(昨天="过去", 今天="现在", 明天="将来"))
A.恭喜小明,代码正确,公费旅行,指日可待!
B.若想尽快能公费旅行,第1行代码应改为:def func(**m):
C.若想尽快能公费旅行,第2行代码应改为:return m.values()
D.若想尽快能公费旅行,第3行代码应改为:func(昨天="过去",今天="现在",明天="将来")
37.小明编写了一个查找给定序列元素的最大值和最小值的函数,要求以元组内元素降序排列的方式返回,这段代码是否有误:
tMax = tMin = mylist[0]
def myMaxMin(mylist):
for i in mylist[1:]:
if i > tMax:
tMax = i
elif i < tMin:
tMin = i
return (tMax, tMin)
s = [1, 4, 7, -9]
print(myMaxMin(s))
A.有误,应将第1行代码移动至第2行和第4行之间,并且和第4行缩进相同
B.有误,第9行应改为:return(mylist)
C.有误,应将第2行代码改为def myMaxMin(*mylist):
D.没有错误
38.小明编写了一个函数,计算形式如a+aa+aaa+…+aa……aaa的表达式的值,其中,a为小于10的自然数。这段代码能否输出60:
def f(a, x):
a = str(a)
result = sum(eval(a * i) for i in range(1, x + 1))
print(f(5, 2))
A.可以,输出60
B.不能,应删除第2行
C.不能,应在第3行和第4行之间加入return result
D.不能,第4行的print应改为return
39.“晨跑夜跑游几米,平板哑铃划船机,不达目的不放弃!”,发胖了的小明也被这首《燃烧我的卡路里》洗脑了.他决定运动减肥并根据跑步消耗热量的参考公式:跑步热量(kcal)=体重(kg)×距离(公里)×1.036 写了如下代码,请问能否正确输出他跑步所消耗的热量:
def run(a=1.036, weight, distance):
print("跑步燃烧了", int(a * weight * distance), "千卡")
run(60, 8)
A.能正确输出
B.不能,第1行应改为def run(weight,distance, a=1.036):
C.不能,第2行print应改为return
D.不能,第3行应改为run(a,weight=60,distance=8)
40.编程小白想要快速上手?别急!《Python 从入门到项目实践》让小白也能做项目.小明想通过函数输出这本书的名字,却显示出错,请问应该怎么改:
def f():
return "《Python 从入门到项目实践》"
print(f)
A.第1行应改为def f:
B.第2行应改为return 《Python 从入门到项目实践》
C.第4行应改为print(f())
D.第4行应改为return (f)
41.给出如下代码,以下选项中描述错误的是:
ls = ["car", "truck"]
def funC(a):
ls = []
ls.append(a)
return
funC("bus")
print(ls)
A.代码函数定义中,ls.append(a)中的ls是局部变量
B.执行代码输出结果为['car', 'truck']
C.ls.append(a)代码中的ls是列表类型
D.执行代码的输出结果为['car', 'truck','bus']
42.彩虹中有“赤橙黄绿青蓝紫”7种颜色,下列代码能否输出“彩虹中有蓝色”:
def rainbow(color, exists):
neg = '有'
if exists == False:
neg = '没有'
return '彩虹中' + neg + color
print(rainbow("蓝色")
A.能输出
B.不能,第1、2行代码之间应添加:if exists == True:
C.不能,第8行的输出语句应改为:print(rainbow("蓝色",True))
D.不能,第8行的输出语句应改为:print(rainbow("蓝色",False)
二、文件与IO
1.使用上下文管理关键字(),可以确保文件被及时、正确的关闭:
A.with
B.import
C.and
D.pass
2.Python并没有提供直接操作目录的函数或对象,而是使用()实现:
A.sys模块
B.sys.path模块
C.第三方模块
D.os模块和os.path模块
3.打开指定的文件所用的函数是:
A.openfile()
B.open()
C.close()
D.flush()
4.如何关闭一个名为name的txt文件:
A.close('name')
B.close('name.txt ')
C.name.txt.close()
D.name.close()
5.很多时候需要将两个或多个路径拼接在一起组成一个新的路径,下列关于拼接路径的说法正确的是:
A.如果要拼接的路径中没有一个绝对路径,那最后拼接出的将是一个绝对路径
B.拼接路径时,路径必须保证准确、真实
C.多个路径之间可以用分号进行分割
D.可以使用os.path模块提供的join()函数实现
6.()函数可以获取一个文件的绝对路径:
A.path()
B.abspath()
C.dirname()
D.normpath()
7.想要读取文件的部分内容,可以在使用read(size)方法之前使用()方法:
A.tell()
B.set()
C.seek()
D.search()
8.内置的os模块中删除文件的函数是:
A.rmdir()
B.remove()
C.delete()
D.clear()
9.想要创建多级目录,应使用函数:
A.mkdir()
B.mkdirs()
C.makedir()
D.makedirs()
10.下列哪个参数代表文件的打开方式为只写模式:
A.r
B.rb+
C.w
D.w+
11.下列说法正确的是:
A.close()方法会刷将缓冲区还未写入的信息写入到文件中,然后关闭文件
B.关闭文件后,仍能对其进行读写入操作
C.打开文件后,即使不关闭文件也不会有任何后果
D.close()方法和flush()方法的作用完全相同
12.在使用rename()函数重命名目录时,下列说法正确的是:
A.只能修改最顶层目录名称
B.只能修改最后一层目录名称
C.可以修改任意层级目录名称
D.将会报错,因为rename()函数只能修改文件名称
13.向文件中写入内容,运行后却报错,可能的原因是:
A.文件未被打开
B.文件的打开模式不是w或者a
C.write()方法的语法格式错误
D.以上都有可能
14.使用rmdir()函数删除目录时:
A.可以删除非空目录
B.可以删除目录中的文件
C.如果目录不存在,就返回空值
D.只有当删除的目录为空时才起作用
15.在使用seek(offset[,whence])方法读取文件时,如果想要从当前位置读取文件,whence参数应设置为:
A.-1
B.0
C.1
D.2
16.现在许多应用程序在登录时可以选择通过绑定社交账号的方式来快速登录,test.txt文件中保存的内容为“快速登录方式:QQ,微信,微博”,请判断下列代码的输出结果:
f = open('test.txt','r')
f.seek(18)
print(f.read(2))
f.close()
A.快速
B.登录方式:QQ,微信,微博
C.微信
D.快速登录方式:QQ
17.test.txt中的内容为“abcde”,在同一目录下写下Python代码后,test.txt中的内容变为:
with open('test.txt','r+') as a:
a.seek(2)
b = a.write('23')
print(b)
A.ab23
B.a23bcde
C.a23de
D.ab23e
18.桌面上有一个名为test_file的文本文件,内容为“麻屋子,红帐子,里面住着个白胖子。”现在桌面上创建一个demo.py文件,写入如下代码,输出结果为:
f = open('test_file.txt','r',3)
s=f.read()
print(s)
f.close()
A.麻屋子
B.麻屋子,红帐子,里面住着个白胖子。
C.<_io.TextIOWrapper name='test_file.txt' mode='r' encoding='cp936'>
D.程序报错
19.梦想遥不可及?不妨先设定一些小目标.test.txt中的内容为:“定一个能达到的小目标:”,想要将其改为“定一个能达到的小目标:先挣它一个亿”,1、2处可以分别填写:
f = open('test.txt',①)
goal = f.②('先挣它一个亿')
print(goal)
f.close()
A.w ; write
B.w+ ; write
C.a ; write
D.r+ ; join
20.有两个文本文件,test1中的内容为“擀面杖吹火--------一窍不通”,test2为空,想要复制test1中的内容到test2,第2行代码应填写:
with open('test1.txt','r') as a,open('test2.txt','w') as b:
A.a.read(test2)
B.b.write(test1)
C.b.read(a.write ())
D.b.write(a.read())
21.在桌面上的demo.py文件中导入os模块,然后写下下列选项中的代码,哪项不能准确判断桌面上是否存在文件test.txt:
A.print(os.path.exists(r'C:\Users\Administrator\Desktop\test.txt'))
B.print(os.path.exists('Desktop\\test.txt'))
C.print(os.path.exists('test.txt'))
D.print(os.path.exists('C:/Users/Administrator/Desktop/test.txt'))
22.test.txt文件中的内容如下:我送你离开千里之外,在同一目录下的Python文件中写下如下代码,运行后输出:
with open("test.txt","r") as f:
print(f.read(5))
print(f.read())
A.我送你离开我送你离开千里之外
B.我送你离开 我送你离开千里之外
C.我送你离开千里之外
D.我送你离开 千里之外
23.test.txt文件中的内容如下:江山代有才人出,在同一目录下的Python文件中写下如下代码,运行后,test.txt中的内容为:
with open("test.txt","r+") as f:
f.seek(0,0)
f.write("各领风骚数百年。")
A.各领风骚数百年。
B.江山代有才人出,各领风骚数百年。
C.各领风骚数百年。江山代有才人出,
D.各领风骚数百年。
江山代有才人出,
24.已知test.txt中的内容为“Mi fans, Are you OK?”,下列代码的输出结果为:
f = open('test.txt','r')
print(f.read(7))
f.close()
A.Mi fans
B.Mi fans,
C.Mi fans, A
D.Mi f
25.小明想要检验一个路径是否是文件,1、2处应填入:
import ①
path="D:\\test"
print(②)
A.os.path; os.path.isfile(path)
B.os; os.isfile(path)
C.os.path; os.path.exists(path)
D.os; os.exists(path)
26.学Python,练就“一幕十行”!小明想要实现一个只显示文件中前10行内容的功能,下列代码是否正确:
file = input("请输入文件路径:")
f = open(file, "r")
while True:
a = 0
for i in range(10):
b = f.readlines()
if b:
a += 1
print(b)
if a < 10:
print("\n已到最后!")
break
break
f.close()
A.不正确,第2行的r应改为a+
B.不正确,第6行应改为b = f.readline()
C.不正确,第9行应改print(a)
D.不正确,第12行的break语句应删除
27.如果文本文件test.txt里包含敏感词,就将敏感词所在行的整行内容全部删除,下列代码是否有误:
with open('test.txt', 'r+') as f:
lines = f.readlines()
for i in lines:
if '123' not in i:
f.write(i)
A.没有错误
B.第1行的中的r+应改为w+
C.第3行应填入 with open('test.txt','w') as p:且第6行改为p.write(i)
D.应在第6行代码后面添加f.close()
28.想要删除下图Python.py文件所在的目录D:\LovePython,输入下列代码后能否成功:
import os
if os.path.exists('D:\\LovePython'):
os.rmdir('D:\\LovePython')
A.能
B.不能,应导入os.path模块
C.不能,因为LovePython目录不为空
D.不能,第3行的rmdir应改为remove
29.输出test.txt中不是以“#”开头的内容,下列写法是否正确:
f = open("test.txt", "r")
for i in f:
if not i.strip().startswith("#"):
print(i)
f.close()
A.不正确,第1行的r应改为r+
B.不正确,应删除第2行,并将3、4行的缩进级别减少一个单位
C.不正确,应在第4、6行之间加一个break语句
D.完全正确
30.test.txt文件中的内容如下:
Xiao Lei
Xiao Hong
xiaoming
想要在同一目录下创建一个新文件:test_new.txt,内容为:
Xiao Lei
Xiao Hong
Xiao Ming
下列代码能否实现:
f = open("base.txt", "r", encoding="utf-8")
f_new = open("test_new.txt", "w", encoding="utf-8")
for line in f:
if "xiaoming" in line:
line = line.replace("xiaoming", "Xiao Ming")
f_new.write(line)
A.可以
B.不能,应将第1行中的r改为rb
C.不能,应将第5行改为 line = line.replace("Xiao Ming","xiaoming")
D.不能,应在第6行后面填写:
f.close()
f_new.close()