我的试题回顾(9-15)
我的试题回顾(9-15)
1. 单项选择题
函数abs()用于返回参数的绝对值(正数的绝对值是它本身,负数的绝对值则是它的相反数)。
要求运行代码后打印出-5的绝对值,请问# 代码1应该替换成哪个选项?(A)
def pro(a):
print(abs(a))
# 代码1
A:pro(-5) B:print(pro(-5))
C: a = pro(-5) D:print(-5)
print(a)
答案解析
考察重点:调用函数。
A正确,
pro()
函数中带有print()
语句,调用即可打印。
B错误,pro()
函数没有返回值,所以会打印出None。
C错误,虽然有赋值操作,但是也会打印出None。
D错误,这是打印函数。
2. 单项选择题
请你仔细阅读代码,思考打印结果是什么?(B)
def my_len(words):
counter = 0
for i in words:
counter = counter + 1
return counter
a = '风变编程,助教七七'
print(my_len(a))
A:9 B:1 C:风变编程,助教七七 D:风变编程
答案解析
考察重点:return
语句,循环过程与循环次数。
# 在函数中,return语句时标志函数的结束,return语句之后的代码都不会被执行,因此for循环只遍历了一次,因此counter = 1
# 作出下列改动后,将会打印出9
def my_len(words):
counter = 0
for i in words:
counter = counter + 1
return counter # return语句放在for循环之后
a = '风变编程,助教七七'
print(my_len(a))
3. 单项选择题
下列代码输出的结果是:(A)
def a(x):
list1 = []
for i in x:
list1.append(i)
print(list1)
a('新年快乐')
A:['新', '年', '快', '乐']
B:['新年快乐']
C:('新', '年', '快', '乐')
D:'新年快乐'
答案解析
考察重点:参数传递,append()
函数。
a()
函数的作用是遍历字符串,将每个字符串的元素都抽取出来,形成新的列表。
将'新年快乐'作为参数传入
a()
函数中,由for循环遍历字符串'新年快乐'(for遍历字符串后,取出的仍然是字符串),再使用append()
函数将遍历的元素导入列表list1
,最后打印出list1
。
4. 判断题
定义类的方法的时候,必须在方法中至少定义一个参数且这个参数必须命名为 self。
正确答案:【 错误 】
答案解析
在类中定义方法的时候,必须在方法中至少定义一个参数;
一般情况下我们将其命名为self
,但是也可以命名为其他名称。
5.判断题
当运用 init()方法时,第一个参数必然为 self。
正确答案:【 错误 】
答案解析
在init()
方法定义中,第一个参数是必不可少的;
但是,self
并不是Python的关键字,它只是作为实例的替身,可以用其他单词取代。但是按照惯例和标准的规定,推荐使用self
。
6. 单项选择题
运行下列代码,在终端中的打印结果是:(D )
class A:
def __init__(self, choice='出去玩耍', name='卡普'):
self.name = name
class B(A):
def __init__(self, choice='回家过年'):
A.__init__(self, choice, name='蓬蓬')
self.choice = choice
print(self.name+self.choice)
b = B()
A:卡普出去玩耍 B:卡普回家过年
C:蓬蓬出去玩耍 D:蓬蓬回家过年
答案解析
考察重点:类的继承。
B
类是A
类的子类,继承父类的属性和方法,默认self.name = '卡普'
,没有定义self.choice
;
B
类对属性进行了自定义,choice = '回家过年'
,调用A
的初始化方法时,为name
重新赋值,name = '蓬蓬'
。
因此打印结果为'蓬蓬回家过年'。
7. 单项选择题
运行下列代码,在终端中的打印结果是:(D )
class A:
def __init__(self, choice='出去玩耍', name='卡普'):
self.name = name
self.choice = choice
class B(A):
def __init__(self):
A.__init__(self, choice='过年回家', name='蓬蓬')
print(self.name + self.choice)
b = B()
A:运行报错 B:运行正常,却无结果显示
C:卡普出去玩耍 D:蓬蓬过年回家
答案解析
考察重点:类的继承。
B
类是A
类的子类,所以会继承父类的方法和属性,self.name = '卡普'
,self.choice = '出去玩耍'
;
B
类的初始化方法中,调用了A
类的初始化方法,同时重写了 A类的初始化方法的默认参数,choice = '过年回家'
,name = '蓬蓬'
;
因此B
类属性也随着修改为:self.choice = '过年回家'
,self.name = '蓬蓬'
,打印结果为'蓬蓬过年回家'。
8.多项选择题
关于下列代码,说法正确的是:(C 、 D )
class A:
def __init__(self, choice='出去玩耍', name='卡普'):
self.name = name
self.choice = choice
class B(A):
def __init__(self, choice='过年回家', name='蓬蓬'):
A.__init__(self)
print(self.name + self.choice)
b = B()
A:运行题中代码,会报错
B:将 A.init(self)替换为 A.init(self, choice, name),打印结果为“卡普出去玩耍”
C:将 A.init(self)替换为 A.init(self, choice='出去玩耍', name='卡普'),打印结果为“卡普出去玩耍”
D:将 A.init(self)替换为 A.init(self, choice, name='卡普'),打印结果为“卡普过年回家”
答案解析
考察重点:类的继承和类方法的调用。
在本题中,A.init(self)是调用A类中的初始化方法,注意:括号内必须要有self。因为A是一个类,初始化方法是类的实例方法,实例方法必须要有实例,没有实例时需要用self替代。
B
类是A
类的子类,所以会继承父类的方法和属性,self.name = '卡普'
,self.choice = '出去玩耍'
;
A错误,
B
的初始化方法中,虽然重新设置了默认参数,但是完全调用了A
类的初始化方法(类似于变量赋值,最后的赋值才是变量的值),因此打印“卡普出去玩耍“;
B错误,B
类的初始化方法中,设置了默认参数choice = '过年回家'
,name = '蓬蓬'
,同时在调用A
类的初始化方法时,并没有设置choice
和name
的值,因此打印“蓬蓬过年回家”;
C正确,虽然在B
类的初始化方法中,设置了默认参数choice = '过年回家'
,name = '蓬蓬'
,但是在调用A
类的初始化方法时,设置了choice
和name
的值,因此打印“卡普出去玩耍”;
D正确,逻辑和C相同。