Python 课课练 (六):列表、元组课后练习题


练习前置知识

  1. Chapter One : 开启 Python 之旅
  2. Chapter Two : Python 语言基础、运算符与表达式、程序的控制结构合集
  3. Chapter Three : Python 序列之字符串操作详解
  4. Chapter Four : Python 序列之列表、元组操作详解合集

一、列表课后练习题

(1) 如果想要将一个列表中的全部元素添加到另一个列表中,可以使用列表对象的什么方法实现?()
A. append()
B. insert()
C. extend()
D. reversed()

(2) 琦琦最近在看中国诗词大会,在第五季的第十场比赛中,进行冠军争夺的四位选手分别为 “彭敏、郑坤健、韩亚轩、姜怡伶”。她编写了4段代码输出最后的冠军“彭敏”和亚军“韩亚轩”。请问哪段代码可以实现她想要的效果。()

A:
mylist = ['彭敏', '郑坤健', '韩亚轩', '姜怡伶']
print(mylist[0:3])

B:
mylist = ['彭敏', '郑坤健', '韩亚轩', '姜怡伶']
print(mylist[::2])

C:
mylist = ['彭敏', '郑坤健', '韩亚轩', '姜怡伶']
print(mylist[1:3])

D:
mylist = ['彭敏', '郑坤健', '韩亚轩', '姜怡伶']
print(mylist[0, 3])

(3) 为了提高数据的可读性,在创建列表时,我们通常()。
A. 放入不同类型数据
B. 如果都是数值类型,建议取整后放入
C. 放入同一类型的数据
D. 将数据先放入一个元组再放入列表

(4) 在 Python 中,“[]”表示的是()。
A. 空集合
B. 空字典
C. 空元组
D. 空列表

(5) 关于删除列表,下列说法正确的是()。
A. 语法格式为 del listneme
B. 删除列表前,列表名称可以不存在,因为即使不存在,删除的时候也会自己创建一个新的列表
C. 删除列表前必须保证列表名称已经存在,不然系统会抛出异常
D. del语句会经常用到,因为 Python 不会自动删除列表。

(6) 通过()函数可以将通过 range 对象转换为列表。
A. array()
B. []
C. list()
D. set()

(7) 遍历列表有哪几种方式,各个方式之间有什么区别?()
A. 使用 for 循环的方式
B. 使用 for 循环和 enumerate() 函数
C. for 循环只能输出列表的元素,for 循环和 enumerate() 既可以输出其中的元素,又可以输出元素的索引值
D. A,B,C 说的都对

(8) 下列代码的运行结果是()。

untitle = ['python', 28, "人生苦短,我用Python", ["爬虫", "自动化运维", "Web开发"]]
print(untitle[2])

A. 人生苦短
B. 28
C. 人生苦短,我用Python
D. 逗号

(9) 下列代码的运行结果是()

lipsticks_list = ["Dior", "Chanel", "Gucci", "Givenchy"]
len(lipsticks_list)
lipsticks_list.append("Lancome")
len(lipsticks_list)
print(lipsticks_list)

A. [‘Dior’, ‘Chanel’, ‘Gucci’, ‘Givenchy’, ‘Lancome’]
B. [‘Dior’, ‘Chanel’, ‘Gucci’, ‘Lancome’]
C. ‘Dior’, ‘Chanel’, ‘Gucci’, ‘Givenchy’, ‘Lancome’
D. ‘Dior’, ‘Chanel’, ‘Gucci’, ‘Givenchy’

(10) 小明想修改周一的课表,将第二节的语文改成英语,请你帮他完成代码。 ()

lesson_list = ["数学", "语文", "政治", "历史"]
print(lesson_list)
print(lesson_list)

A. 在第 2 行和第 3 行代码之间添加 del lesson_list(“语文”)
B. 在第 2 行和第 3 行代码之间添加 insert lesson_list(“语文”) as (“英语”)
C. 在第 2 行和第 3 行代码之间添加 lesson_list[1] = “英语”
D. 在第 2 行和第 3 行代码之间添加 lesson_list[1] = “英语"not"语文”

(11) 下列代码运行结果是()。

verse = ["长亭外", "古道边", "芳草碧连天"]
del verse[-1]
print(verse)

A. [‘古道边’, ‘芳草碧连天’]
B. [‘长亭外’, ‘古道边’]
C. [‘芳草碧连天’]
D. 长亭外,古道边

(12) 小明想用列表给班级的前 10 名同学的成绩进行降序排序,下面是她写的代码,请问______处的代码应该填()。

grade = [98,99,97,100,100,96,94,89,95,100]
print("原列表:",grade)
__________________________
print("降序:", grade)

A. grade.sort()
B. grade.sort(reverse=True)
C. grade.sort(reverse=False)
D. sort(grade)

(13) 小琦由于听写汉字出错,老师罚他把错字每个写 10 遍。小琦想要编写一段代码打印出老师想要的结果。于是他写了下面 4 段代码,请选择中哪一段代码能实现该功能。()

A 
01 word = '佩励博藕薄拂浇'
02 print(word*10)

B
01 word = '佩励博藕薄拂浇'
02 print(word+10)

C 
01 word = '佩励博藕薄拂浇'
02 for i in word:
03 	print(i*10)

D
01 word = '佩励博藕薄拂浇'
02 print(word,10)

(14) 小琦想将把自己定义的 7 的倍数的列表中每个数都乘 3,于是编写了以下代码,运行后没有得到想要的效果,你能帮他改正吗?()

num_list = [7,14,21,28,35,42,49]
print(num_list * 3)

A. 将第 2 句修改为 print(num_list[1]*3)
B. 在第 2 句上面添加:for i in num_list:
C. 将第 2 句修改为:print(i*3)
D. B 和 C都要修改

(15) 小琦定义了一个递增顺序排列的 7 的倍数的列表。现在想要把从第 4 个元素开始的剩下元素全部输出,于是编写了下面的代码,你看看他的代码会报错吗?()

num_list = [7,14,21,28,35,42,49]
print(num_list[3:100])

A. 会报 list index out of range 错误
B. 除了会输出“28,35,42,49” 外,还会输出一串空白值
C. 会报语法错误
D. 能正常输出

(16) 根据身高排排站!已知 4 个人的身高分别为165、172、183、178,要求按照身高由高到低站队排列,下列代码正确的是()

A
x = [165,172,183,178]
x.sort()
print(x)

B x = (165,172,183,178)
x.sort(reverse = True)
print(x)

C
x = [165,172,183,178]
y = sorted(x)
print(y)

D
x = (165,172,183,178)
y = sorted(x,reverse = True)
print(y)

(17) 创建一个空列表,命名为 names,往里面添加 Lihua、Rain、Jack、Xiuxiu、Peiqi 和 Black 元素,往 names 列表里 Black 前面插入一个 Blue,把 names 列表中 Xiuxiu 的名字改成中文,指出下面代码错误的地方()。
在这里插入图片描述
A. 没有错
B. 第 2 行不应该是1,应该是 0
C. 第 2 行不应该是1,应该是 -1
D. 第 2 行应该用 append() 方法

(18) 小红想设计这样一段代码,用户输入月份,判断这个月份是哪个季节,下面是她写的代码,请你帮忙看看有没有错误的地方()。
在这里插入图片描述

A. 没有错误
B. 第 1 行需要使用 int() 函数进行数据类型转换
C. 第 14 行的 elif 应该改为 else
D. B 和 C 说的都对

(19) DRY 是程序员们公认的指导原则:Don’t Repeat Yourself.不要总是重复拷贝代码,所以刚刚学完序列的小明决定自己编写了一段代码,功能为随机输入 5 个整数后,会自动输出这 5 个整数中的最小值。请问这段代码能否实现此功能?

number = ()
j = 0
for i in range(5):
    x = input("请输入数字:\n")
    j += 1
    if j == 6:
        break
    number.append(x)

print(f"五个整数中的最小值为: {min(number)}")

A. 不能,第 6 行代码应改为 if j ==5:
B. 不能,第 1 行代码应改为 number = []
C. 不能,第 4 行代码应改为 x = int(input(“请输入数字:\n”))
D. B 和 C 选项都得改

(20) 华为 P40 pro 的单价为 5988,刚刚学习了列表的 Amo 给自己和妈妈都买了 1 个,现在它想输出总计金额,那么下面的代码能实现想要的功能吗?
在这里插入图片描述
A. 能实现
B. 不能,可以将 p40pro*2 修改为 p40pro[0]*2
C. 不能,可以将 [5988] 修改为5988
D. B 或 C 任何一种方法都可以

二、元组课后练习题

(1) 下面关于元组的说法正确的是?()
A. 在进行元组连接时,连接的内容不限制
B. 元组可以和列表进行连接
C. 如果要连接的元组只有一个元素,那么不需要逗号
D. 元组是不可变序列,不能对它的单个元素值进行修改

(2) 创建元组时,如果只有一个元素,需要()。
A. 给这个元素再加一个括号
B. 给这个值后面再加上一个逗号
C. 添加注释
D. 用赋值运算符给这个元素赋值

(3) 下列关于元组和列表描述错误的是?()
A. 元组使用 () 定义,列表使用 [] 定义
B. 列表中的元素可以直接修改,元组中的元素不可以直接修改
C. 元组是不可变序列结构,列表是可变序列结构
D. 元组是可变序列结构,列表是不可变序列结构

(4) 关于元组的创建与删除,下列说法正确的是?()
A. 创建一个空元组只能应用在为函数传递空值和返回值。
B. 创建空元组,没有具体的命令函数,就是元组函数将 tuple() 里面的参数改为 None。
C. 创建数值元组可以搭配 range() 函数一起使用。
D. 删除元组只能用 del 命令。

(5) 访问元组中的元素有哪几种方式?()
A. 指定索引访问
B. 采用切片的方式获取指定元素
C. 使用 for 循环进行遍历
D. 以上皆是

(6) 关于元组的修改,下列说法正确的是?()
A. 元组是不可变序列,所以元组中的元素不能修改。
B. 可以对元组重新赋值
C. 可以对元组进行拼接,而且元组可以与任何类型的数据进行拼接。
D. 采用元组拼接的方式对元组进行重新赋值,如果其中一个元组只有一个元素,此时将不用在后面加上逗号。

(7) 下列关于利用元组推导式生成的元组,和单独用 tuple() 函数生成的元组的区别,()是错误的。
A. 当数据量较大的时候,使用元组推导式生成的元组更方便快捷一些。
B. 使用元组推导式生成的结果可以直接当成元组来使用。
C. 使用元组推导式生成的结果只是一个元组生成器,需要用 tuple() 函数进行转换才能使用。
D. 要想使用元组推导式生成的元组生成器,可以通过 for 循环遍历或者直接使用 __next__() 方法遍历。

(8) 元组比列表好在哪里?()
A. 元组比列表的访问和处理速度快。
B. 列表能作为字典的键,而元组则不可以。
C. 元组可以随意添加更改数据,列表不能
D. 元组可以与其它任何类型的数据进行连接,列表不能。

(9) 在 Python 中 “()” 表示的是()。
A. 空集合
B. 空字典
C. 空元组
D. 空列表

(10) 下列哪个不是合法的元组()?
A. (1,3,5,7,9)
B. 1,3,5,7,9
C. (1,3,5,7,(2,20,40))
D. (1)

(11) 下列代码的输出结果为()。

verse1 = ("莫轻言放弃",)
print(verse1)

A. (‘莫轻言放弃’,)
B. (‘莫轻言放弃’)
C. ‘莫轻言放弃’
D. 莫轻言放弃

(12) 下面代码的输出结果为()。
在这里插入图片描述

A. (10, 12, 14, 16, 18)
(‘蓝山’, ‘卡布基诺’, ‘曼特宁’, ‘摩卡’, ‘哥伦比亚’)
B. 10,12,14,16,18
蓝山,卡布基诺,曼特宁,摩卡,哥伦比亚
C. (10,12,14,16,18,20)
蓝山,卡布基诺,曼特宁,摩卡,哥伦比亚
D. (10 20)
(‘蓝山’,‘卡布基诺’,‘曼特宁’,‘摩卡’,‘哥伦比亚’)

(13) 下面代码运行后的结果是()。
在这里插入图片描述

A. (‘语文’, ‘数学’ , ‘英语’, ‘政治’, ‘历史’)
B. 语文数学英语政治历史
C. 系统会报 TypeError 错误
D.(语文,数学,英语,政治,历史)

(14) 下面代码的运行结果为()。

verse1 = ("这份爱会不会会不会让你也好疲惫",)
print(f"verse1的类型为: {type(verse1)}")
verse2 = ("这份爱会不会会不会让你也好疲惫")
print(f"verse2的类型为: {type(verse2)}")

A. verse1 的类型为<class ‘tuple’>
verse2 的类型为<class ‘str’>
B. verse1 的类型为 class ‘tuple’
verse2的类型为class ‘str’
C. verse1 的类型为 ‘tuple’
verse2 的类型为 ‘str’
D. tuple
str

(15) 下面代码的运行结果是()。

num = (i for i in range(4))
for i in num:
    pass

print(tuple(num))

A. (0, 1, 2, 3)
B. ()
C. 0,1,2,3
D. <generator object at 0x00000156E6CA80B0>

(16) 想要通过下列代码访问元组元素,将会输出()。

temp = (1,2,3)
print(temp[2:])

A. 3
B. (3,)
C. (3)
D. (2,3)

(17) 小明写了一个元组内容为伊米咖啡馆里的咖啡名称,想要修改其中的第5个元素的内容为“拿铁”,他尝试先通过索引获取到该元素,然后对它进行重新赋值,代码如下,请你帮忙看看他写的代码正确吗?()
在这里插入图片描述
A. 正确
B. 元组是不可变序列,不能直接替换元组中某一个特定的值
C. 元组的符号定义错误,不能用 {},应该用()
D. B 和 C 说的都对

(18) Amo 想在原来咖啡的元组后面添加一个新的元组,他写了如下的代码,请帮忙看看有没有错误()。

coffeename = ('蓝山','卡布奇诺','曼特宁','摩卡')
coffeename = coffeename + ['麝香猫']

A. 没有。
B. 元组是不可变序列,不能直接与列表相连接。
C. 当连接的元组只有一个元素时,元素后面必须加逗号,代码中并没有加
D. B和C说的都对。

(19) Amo 最近学习了编程,想要将 5 个成语编号输出(序号从1开始),请你帮忙看看她的代码有没有错误()。

place = ("金石为开", "笃信好学", "锲而不舍", "水滴石穿", "磨杵成针")
for index, item in enumerate(place):
    print(index, item)

A. 没有错误
B. 第 2 行的 enumerate 修改为 enumerates
C. 第 2 行的 in 修改为 is
D. 第 3 行的 index 修改为 index + 1

(20) Amo 想使用元组推导式生成一个包含10个随机数的生成器对象,然后将其转换为元组并输出,于是她写了如下的代码,请你帮忙看看有没有错误()。
在这里插入图片描述

A. randint 前面添加 random.
B. for 循环中的 1 应该修改为 i
C. A 和 B 说的都对
D. 没有错误

猜你喜欢

转载自blog.csdn.net/xw1680/article/details/115090333