【python好题集】持续更新...

1、【多选】下面的代码,哪些是执行会报错的
A. int(33)   B. int(‘3.3’)   C. float(3h)   D. str([1,3])

答案解析:B选项 ’3.3’为字符串,不能转换成int;C选项 3h是错误表达,不能进行转换。故选BC

2、【多选】定义这样一个函数 - 下面说法正确的是

def e1():
 print('in e1')
 return False

A. 执行 False and e1() 屏幕会 显示 ‘in e1’
B. 执行 e1() and False 屏幕会 显示 ‘in e1’
C. 执行 True or e1() 屏幕会 显示 ‘in e1’
D. 执行 False or e1() 屏幕会 显示 ‘in e1’

答案解析:
本题考查and和or的用法。
and用法:一假都假,全真才是真
or用法:一真全真,全假才是假
A选项:考察and。False为假,一假全假,那么就不会继续判断了,所以走不到e1()
B选项:考察and。调用e1(),不管return什么,都不影响打印‘in e1’
C选项:考察or。True为真,一真全真,那么就不会继续判断了,所以走不到e1()
D选项:考察or。第一个为False,全假才是假,所以继续判断,调用e1(),不管return什么,都不影响打印‘in e1’
故正确的只有BD

3、【判断】下面的代码执行完后,变量b 的值仍然为 ‘a’

def f1(para):
    para=3
b = 'a'
f1(b)

答案解析:f1(b)相当于f1(‘a’),将‘a’传入函数中,’a‘=3,并没有对b的值进行更新,所以b的值不变
故答案:正确

4、【判断】下面的代码执行完后,变量b 的值仍然为 [1]

def f1(para):
    para[0]=3
b = [1]
f1(b)

答案解析:f1(b)相当于f1([1]),将[1]传入函数中,[1][0]=3表示对列表[1]索引为0的值更新为3,所以b的值变为3
故答案:错误

5、以下代码输出结果为

x = True
y = False
z = False

if not x or y:
    print(1)
elif not x or not y and z:
    print(2)
elif not x or y or not y and x:
    print(3)
else:
    print(4)

A、1   B、2  C、3  D、4

答案解析:
本题考察优先级:not>and>or。not x为False、not y为True
A:False or False==>False
B:not y and z 即为 True and False=>False,False or False=>False
C:not y and x 即为 True and True =>True ,False or False or True =>True
只有3对应的判断返回True,故选C

6、以下代码输出结果为

def greetPerson(*name):
    print('Hello', name)
  
greetPerson('Runoob', 'Google')

A、Hello Runoob
  Hello Google
B、Hello (‘Runoob’, ‘Google’)
C、Hello Runoob
D、错误!函数只能接收一个参数。

参考答案:
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数,故B正确

7、以下代码输出结果为

result = lambda x: x * x
print(result(5))

A、lambda x: xx   B、10  C、25  D、55

答案解析:
lambda函数,也称匿名函数,匿名函数可以在程序中的任何地方使用,但是这个函数只能使用一次,即一次性的,lambda也称为丢弃函数
lambda 形参列表 : 函数返回值表达式语句
所以传入5,返回计算结果25

8、以下代码输出结果为

def Foo(x):
    if (x==1):
        return 1
    else:
        return x+Foo(x-1)

print(Foo(4))

A、10  B、24  C、7  D、1

答案解析:
第一次走else: 4+Foo(3)
第二次走else: 4+(3+Foo(2))
第三次走else: 4+3+(2+Foo(1))
第一次走if: 4+3+2+1=10
故A正确

9、以下代码输出结果为

x=2
def Foo():
    global x
    x=9
    print('x1=',x)
Foo()
print('x2=',x)

A、x1= 9 x2= 9  B、x1= 9 x2= 2

答案解析
正确选项:B。因为在函数中申明了x为全局变量,所以调用函数时,x的值由2变成了9,故输出均是9

你可能感兴趣的:(python习题集,python)