1.下面说法错误的是_____
A.函数能提高应用的模块性,和代码的重复利用率
B.python的函数可以分为内置函数和用户自定义函数
C.不带返回值的return,相当于返回None
D.每个return语句只能返回一个值
解:D
return可以以元组的形式返回多个值
2.函数没有参数时,定义函数和调用函数都不用可以省略函数名后的括号。
解:正确
3.一个函数中可以有多个return语句,但是每次调用函数只会执行其中一个return。
解:正确
4.定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数
解:正确
5.在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦
解:正确
6.调用函数时传递的实参个数必须与函数形参个数相等才行
解:错误
7.在函数中yield语句的作用和return完全一样
解:错误
8.在Python中定义函数时不需要声明函数参数的类型
解:正确
9.在python的函数中不可再定义新的函数
解:错误
10.定义函数时的参数叫形式参数,调用函数时的参数叫__参数
解:实际
11.函数代码块以 __关键词开头,后接函数标识符名称和圆括号()。
解:def
12.以下python程序的输出是多少?
def max(a,b):
if a>b:
return a
else:
return b
print(max(3,6))
解:6
1.如下程序的运行结果是___
def exchange(num1,num2):
num1,num2=num2,num1
num1=5
num2=7
exchange(num1,num2)
print(num1,num2)
A.5 7
B.7 5
C.5 5
D.7 7
解:A
不可变数据类型的值,传入的是复制的值。
2.如下程序的运行结果是___
def exchange(lst):
lst[0]=100
lst=[1,2,3]
exchange(lst)
print(lst)
A.[1,2,3]
B.[100,2,3]
C.[1,1,1]
D.[100,100,100]
解:B
可变数据类型的值,传入的是地址的复制值,所以会更改对应的值。
3.如下程序的运行结果是___
def exchange(lst):
lst=[4,2,3]
lst=[1,2,3]
exchange(lst)
print(lst)
A.[4,2,3]
B.[1,1,1]
C.[1,2,3]
D.[4,4,4]
解:C
因为只是将复制地址的指向更改,所以原列表不变。
4.如下代码被执行,运行结果是____
print(get_max(3,5))
def get_max(num1,num2):
return num1 if num1>num2 else num2
A.3
B.5
C.8
D.语法错
解:D
解释型语言,必须在使用函数前提前定义。
5.Python不仅允许函数嵌套调用,还允许函数嵌套定义。
解:正确
高阶函数的用法
6.在调用函数时,必须牢记函数形参顺序才能正确传值
解:错误
可以使用关键词的方式来进行传参。
7.在Python中定义函数时不需要声明函数的返回值类型
解:正确
8.在函数中没有任何办法可以通过形参来影响实参的值
解:错误
对于可变数据类型,可以通过形参来影响实参的值。
9.在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中
解:正确
10.在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中
解:正确
11.python函数的参数传递是可变类型(如fun(a)),如果在函数内部修改a的值,修改后fun外部的a不会受到影响
解:错误
12.以下python程序的输出是多少
def change(list):
list.append([0,0])
return
mylist = [1,2,3]
change(mylist)
print(mylist)
解:[1,2,3,[0,0]] 或[1, 2, 3, [0, 0]]
1.在函数内没有办法定义全局变量
解:错误
2.在函数内部直接修改形参的值并不影响外部实参的值
解:错误
可变数据类型
3.如果在函数中有语句return 3,那么该函数一定会返回整数3
解:错误
不执行这条语句就不会返回3.
4.调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值
解:错误
可以使用其他值来替换默认值。
5.在同一个作用域内,局部变量会隐藏同名的全局变量
解:正确
6.python函数的必需参数须以正确的顺序传入函数,调用时的数量必须和声明一样
解:正确
7.python使用关键字参数允许函数调用时参数的顺序和声明不一样
解:正确
8.如下函数中需要使用一个全局变量num,请在下划线处补充必要的语句
def fun():
__________
num= numk + 1
解:global num
9.如下程序的输出结果是___
def myfun(x,y=200,z=100):
print(x,y,z)
myfun(50,100)
解:50 100 100
10.如下程序的输出结果是__
def myvar1(*t):
print(t)
myvar1(1,2,3)
解:(1,2,3) 或(1, 2, 3)
11.如下程序的输出结果是____
fun=lambda x,y:x+y
print(fun(5,10))
解:15
12.如下程序的输出结果是___
def fun():
return lambda x,y:x*x+y*y
fx=fun()
print(fx(3,4))
解:25
1.关于python的__name__
,下面描述错误的是
A.**__name__
**是一个变量
B.当前模块被另外模块调用时,当前模块中的____name__
__的值是’main’
C.____name__
__可用于区分当前模块是被调用还是主动执行
D.____name__
__的类型属于字符串
解:B
2.关于函数的说法正确的是__
A.在面对复杂的问题时,函数的数量应该要少,函数内的代码要多
B.python函数的形式参数名称和实际参数名称必须一样
C.python函数的返回值不仅可以是变量、常量,甚至可以是函数
D.python函数的最后一个语句必须使用return
解:C
3.如下函数的返回值是___
def test():
temp=[1,2,3,4,5,6,7,8,9,10]
return [x for x in temp if x%3==2]
A.[2, 5, 8]
B.[1, 3, 6]
C.[3, 6, 9]
D.[1, 4, 7]
解:A
列表推导式
4.如下函数的返回值是__
def test():
l1=[1,2,3]
l2=[4,5,6]
return list(zip(l1,l2))
A.[(1, 1), (2, 2), (3, 3)]
B.[(4, 4), (5, 5), (6, 6)]
C.[(4, 1), (5, 2), (6, 3)]
D.[(1, 4), (2, 5), (3, 6)]
解:D
5.在函数内部没有任何方法可以影响实参的值
解:错误
6.函数中的return 语句一定能够得到执行
解:错误
7.不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量
解:正确
8.函数内部定义的局部变量当函数调用结束后被自动删除
解:正确
9.python函数没有办法处理比当初声明时更多的参数
解:错误
10.如下代码使用了math模块中的sqrt,为了使得该代码正确,需要使用import,请给出和本次调用相适配的import的完整指令____
print(sqrt(3.5))
解:from math import sqrt 或from math import *
注意:因为在使用sqrt函数式并没有指定math包,说明导入了这个函数,需要使用from-import的形式。
11.已知 g = lambda x, y=3, z=5: x+y+z,那么表达式g(2)的值为__
解:10
12.以下python程序的输出结果是多少?
def printinfo(arg1, *others):
print(others)
printinfo(1,2,3)
解:(2,3) 或(2, 3)
一个 * 以元组的形式接受变长参数。
1.函数中必须包含return 语句
解:错误
2.函数可以没有任何参数
解:正确
3.一个函数如果带有默认值参数,那么必须所有参数都设置默认值
解:错误
4.在Python函数体内部可以调用它本身
解:正确
5.在Python函数中,一条return语句可以返回多个值
解:正确
6.Base64是一种用32个字符来表示任意二进制数据的方法
解:错误
7.如下语句的输出结果是 _____
print(5<<1)
解:10
左移1位,原数字变为原来的2倍。
8.如下代码的输出结果是_____
def number1Bit(x):
count = 0
while x:
count = count + 1
x = x & (x-1)
return count
print(number1Bit(17))
解:2
9.如下代码的输出结果是__
a,b=5,3
a ^= b
b ^= a
a ^= b
print(a,b)
解:3 5
10.12 & 8的结果是_______
解:8
11.12 | 8的结果是_______
解:12
12.以下python程序的输出结果的类型是什么?
def printinfo(arg1, **others):
print(others)
printinfo(1,p=2,q=3)
解:字典
两个 * 接受的变长参数会以字典的方式存储
1.下列那个Python内置函数可以返回列表、元组、字典、集合、字符串以及range对象中元素个数
A.len()
B.max()
C.min()
D.sum()
解:A
2.下列那个Python内置函数用来返回序列中的最大元素?
A.len()
B.max()
C.min()
D.sum()
解:B
3.下列那个Python内置函数用来返回序列中的最小元素?
A.len()
B.max()
C.min()
D.sum()
解:C
4.下列哪个Python内置函数用来返回数值型序列中所有元素之和?
A.len()
B.max()
C.min()
D.sum()
解:D
5.如果递归函数没有递归结束的语句,将会导致无穷递归,从而执行时出现“死循环”
解:正确
6.如下程序的运行结果是___
def fact(num):
ret=0;
if(num<=1):
ret=1;
else:
ret=num*fact(num-1)
print(num,end=' ')
return ret
print(fact(3))
解:2 3 6
7.如下程序的运行结果是__
def fact(num):
ret=0;
if(num<=1):
ret=1;
else:
print(num,end=' ')
ret=num*fact(num-1)
return ret
print(fact(3))
解:3 2 6
8.如下程序的运行结果是____
def func(str1):
if len(str1)==1 or len(str1)==0:
return str1
else:
return str1[-1]+func(str1[:-1])
print(func("hello"))
解:olleh
9.如下程序的运行结果是__
def func(str1):
if str1=="":
return str1
else:
return func(str1[1:])+str1[0]
print(func("hello"))
解:olleh
10.已知列表x = [1.0, 2.0, 3.0],那么表达式sum(x)/len(x)的值为__
解:2.0
注意,浮点数进行除法得到的是浮点数
11.以下python程序的输出结果是多少?
sum = lambda arg1,arg2: arg1+arg2
print(sum(1,2))
解:3
12.以下python程序的输出结果是多少?
list = [1,2,3,4]
ITER = iter(list)
print(next(ITER))
解:1
13.以下python程序的输出结果是多少?
class numbers:
def __iter__(self):
self.a = 0
return self
def __next__(self):
x = self.a
self.a += 5
return x
N = numbers()
iter = iter(N)
num1 = next(iter)
num2 = next(iter)
print(num2)
解:5
num1=0,num2=5
1.如下程序的运行结果是_
def lengthOfLastWord(sstr):
for word in sstr.split()[::-1]:
return len(word)
return 0
print(lengthOfLastWord("i like python"))
A.0
B.1
C.4
D.6
解:D
2.如下程序的运行结果是_____
def sortArrayByParity( lst):
lst.sort(key=lambda t: t%2)
return lst
lst=[3,1,2,4]
sortArrayByParity(lst) print(lst)
A.[2, 4, 3, 1]
B.[1, 2, 3, 4]
C.[4, 3, 2, 1]
D.[3, 1, 2, 4]
解:A
3.如下代码的运行结果是___
def transpose(lst):
test = [[0 for i in range(len(lst))] for j in range(len(lst[0]))]
for i in range(len(lst)):
for j in range(len(lst[i])):
test[j][i]=lst[i][j]
return test
print(transpose([[1,2,3],[4,5,6]]))
A.[[1, 2, 3], [4, 5, 6]]
B.[[1, 4], [2, 5], [3, 6]]
C.[[1, 2], [3, 4], [5, 6]]
D.[[4, 5, 6], [1, 2, 3]]
解:B
这个代码执行的是矩阵的转置操作
4.如下程序的运行结果是____
def statistics(str1):
num = 0
isah = 0
kong = 0
other = 0
for i in str1 :
if i.isdigit():
num +=1
elif i.isalpha():
isah +=1
elif i.isspace():
kong +=1
else:
other +=1
return num,isah,kong,other
print(statistics(' das1 32 a2da'))
解:(4, 6, 3, 0) 或(4,6,3,0)
isalpha() 方法检测字符串是否只由字母组成。
注意,多个返回值是以元组的形式返回的。
5.如下程序的运行结果是___
def convert( num):
flag=0
if num==0:
return "0"
if num<0:
num=num*(-1)
flag=1
str1=""
while num:
str1= str(num % 7) + str1
num=num//7
if flag==0:
return str1
else:
return "-" + str1
print(convert(-17))
解:-23
6.已知x = {1:2, 2:3, 3:4},那么表达式sum(x)的值为__
解:6
7.已知x = {1:2, 2:3, 3:4}, 那么表达式sum(x.values())的值为__
解:9
8.已知字典x = {i: str(i+3) for i in range(3)},那么表达式sum(x)的值为__
解:3
9.已知字典x = {i: str(i+3) for i in range(3)},那么表达式sum(item[0] for item in x.items())的值为__
解:3
10.如果函数中return语句不带任何返回值,那么该函数返回值为__
解:None
11.以下python程序的输出结果是多少?
def returnSum(Dict):
sum = 0
for i in Dict:
sum = sum + Dict[i]
return sum
dict = {'a': 1, 'b': 2, 'c': 3}
print(returnSum(dict))
解:6
12.以下python程序的输出结果是多少?
x = {'a':1, 'b':2}
y = {'b': 3, 'c': 4}
from collections import Counter
X, Y = Counter(x), Counter(y)
z = dict(X+Y)
print(z)
解:{‘a’: 1, ‘b’: 5, ‘c’: 4} 或{‘a’:1, ‘b’:5, ‘c’:4} 或{‘a’ : 1, ‘b’: 5, ‘c’ : 4} 或{”a“: 1, “b”: 5, “c”: 4} 或{”a“:1, “b”:5, “c”:4}
从 mapping 中实例化 Counter 对象,mapping 类型的数据就是元素为(x, y)
的列表,字典也属于 mapping 类型的数据。
虽然传入的 mapping 类型的数据是一样的,但是由于字典中的键是唯一的,因此如果字典中的键重复会保留最后一个。