我是靠谱客的博主 丰富月饼,最近开发中收集的这篇文章主要介绍python学习测试题4及参考答案,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?

比如:member.append(['竹林小溪', 'Crazy迷恋'])member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗?

答案:
append() 方法是将参数作为一个元素增加到列表的末尾。
extend() 方法则是将参数作为一个列表去扩展列表的末尾。

member1 = ["米兔"]
member2 = ["米兔"]
member1.append(['竹林小溪', 'Crazy迷恋'])
member2.extend(['竹林小溪', 'Crazy迷恋'])
print(member1)
print(member2)

最后输出结果

['米兔', ['竹林小溪', 'Crazy迷恋']]
['米兔', '竹林小溪', 'Crazy迷恋']

2.假设给定以下列表:

member = ['小甲鱼', '黑夜', '迷途', '怡静', '秋舞斜阳']

要求将列表修改为:

member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

答案:

member.insert(1, 88)
member.insert(3, 90)
member.insert(5, 85)
member.insert(7, 90)
member.append(88)

3.如何将下边这个列表的’小甲鱼’修改为’小鱿鱼’?

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]

答案:

list1 = [1, [1, 2, ['小甲鱼']], 3, 5, 8, 13, 18]
list1[1][2][0] = '小鱿鱼'

4.现在有两个列表,想合并为一个,请按照升序进行组合打印,再按照降序进行组合打印。

如输入:
list1=[1,3,5] list2=[2,4,6]

输出
list3=[1,2,3,4,5,6] #升序
list4=[6,5,4,3,2,1] #降序

答案

list1 = [1, 3, 5]
list2 = [2, 4, 6]
list3 = list1 + list2
list3.sort()
# 升序排列
list4 = list1 + list2
list4.reverse()
# 降序排列
print(list3)
print(list4)

5.列表的赋值 list2 = list1[:] 与 list2 = list1有何不同

示例:

list1 = [1, 3, 2, 9, 7, 8]
list2 = list1[:]
list3 = list1
print("list1排序前:")
print("list2:", list2)
print("list3:", list3)
print("list2排序后:")
list1.sort()
print("list2:", list2)
print("list3:", list3)

从上述示例代码可以看到在list1排序前,list2与list3进行不同的赋值操作后,都得到了相同的值。但在list1进行排序后,使用分片的方式得到的list2很有原则、很有格调,并不会因为list1的改变而改变,但list3就好像汉奸、墙头草,Ta跟着list1改变了。

list1排序前:
list2: [1, 3, 2, 9, 7, 8]
list3: [1, 3, 2, 9, 7, 8]
list2排序后:
list2: [1, 3, 2, 9, 7, 8]
list3: [1, 2, 3, 7, 8, 9]

其实Python的变量就像一个标签,就一个名字而已,贴哪是哪,指哪打哪
在这里插入图片描述
我们这里的list3=list1赋值后,list1与list3其实都是指向了同一段内存地址,只是换了一个别名,只是向同一个东西增加一个新的标签而已。而list2这样进行分片创建是重新开辟了一个新的数据进行存储的。

6.试写一个程序,要求每次从列表的末尾取出一个元素,并将这个元素插入到列表的最前边。

list1 = ['1', '2', '3', '4', '5']
print(list1)
list1.insert(0, list1.pop())
print(list1)

输出结果:

['1', '2', '3', '4', '5']
['5', '1', '2', '3', '4']

7.现有两个列表:

list1 = ['1.Just do it', '2.一切皆有可能', '3.永不止步', '4.Impossible is Nothing']
list2 = ['4.阿迪达斯', '2.李宁', '3.安踏', '1.耐克']

请利用这两个列表,生成一个list3列表:

list3=['1.耐克:Just do it', '2.李宁:一切皆有可能', '3.安踏:永不止步', '4.阿迪达斯:Impossible is Nothing']

答案:
有两种解答方法,分别为列表推导式写法与常规逻辑

list1 = ['1.Just do it', '2.一切皆有可能', '3.永不止步', '4.Impossible is Nothing']
list2 = ['4.阿迪达斯', '2.李宁', '3.安踏', '1.耐克']
list3 = [name + ':' + slogan[2:] for slogan in list1 for name in list2 if slogan[0] == name[0]]
# 列表推导式写法
list4 = []
for l1 in list1:
for l2 in list2:
if l2[0] == l1[0]:
list4.append(l2 + ': ' + l1[2:])
# 常规逻辑
break
print(list1)
print(list2)
print(list3)
print(list4)

输出结果:

['1.Just do it', '2.一切皆有可能', '3.永不止步', '4.Impossible is Nothing']
['4.阿迪达斯', '2.李宁', '3.安踏', '1.耐克']
['1.耐克:Just do it', '2.李宁:一切皆有可能', '3.安踏:永不止步', '4.阿迪达斯:Impossible is Nothing']
['1.耐克: Just do it', '2.李宁: 一切皆有可能', '3.安踏: 永不止步', '4.阿迪达斯: Impossible is Nothing']

python之字符串、列表、元组

8.系统里面有多个用户,用户的信息目前保存在列表里面,如:

users = ['root','westos']
passwd = ['123','456']

写一个程序实现用户登录,登录条件:

1)判断用户是否存在,若用户不存在,直接打印“用户{用户名}不存在
2)如果用户存在,判断该用户密码是否正确,若正确打印“{用户名}登录成功
2)如果密码不正确,打印“{用户名}登录失败:密码错误!”,总共有三次机会登陆

在这里插入图片描述
在这里插入图片描述
答案:

# 定义列表,用来记录用户名和密码
users = ['root', 'westos']
passwds = ['123', '456']
# 定义尝试登陆的次数
trycount = 0
# 判断尝试登陆次数是否超过3次
while trycount < 3:
# 接收用户输入的用户名和密码
inuser = input("用户名:")
inpasswd = input("密码:")
trycount += 1
# 判断用户是否存在
if inuser in users:
# 先找出用户对应的索引值
index = users.index(inuser)
# 找出密码列表中对应的索引值的密码
passwd = passwds[index]
# 判断输入的密码是否正确
if inpasswd == passwd:
print(inuser + "登陆成功")
break
else:
print(inuser + "登陆失败: 密码错误!")
else:
print(inuser + "用户不存在")
else:
print("已经超过三次机会")

9.用列表的知识实现程序:10个人围成一圈开始报数,每次数到3的倍数的人退出,请输出退出顺序

 第一轮: 3 6 9
剩下:1,2,4,5,7,8,10
第二轮: 2 7
剩下:1,4,5,8,10
第三轮: 1 8
剩下:4,5,10
第四轮: 5
剩下:4,10
第五轮: 10
剩下:4
第六轮: 4

答案:10个人要一直循环报数,而且头尾相接,如何设置循环体是是关键点。

list1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 将所有人放入一个列表
count = 0
# 设置一个变量,用于计算报数
j = 1
# 第几轮
while len(list1) > 1:
# 当数组中至少有2个元素时进行循环
print("第" + str(j) + "轮:", list1)
j = j + 1
l1 = list1[:]
# 把原数组拷贝到新数组中,用于限制内层循环次数
print("去除:", end='')
for i in range(0, len(list1)):
# 内层循环开始,从第一个人开始报数
count = count + 1
# 每报一次,count计数器加1
if count % 3 == 0:
# 如果count能被3整除,则是报到3的人
list1.remove(l1[i])
# 把报到3的人移除原数组,进行下一次循环
print(l1[i], "", end='')
print("")
print("最后留下", list1)

10.编写一个程序,输入以逗号分隔的数字序列,去除数字后的字符并打印生成包含每个数字的列表和元组。

假设向程序提供以下输入:
34岁,67年,55岁,33岁,12日,98年
则输出为:
['34', '67', '55', '33', '12', '98']
('34', '67', '55', '33', '12', '98')

答案:

list1 = ["34岁", "67年", "55岁", "33岁", "12日", "98年"]
list2 = []
for l in list1:
list2.append("".join(list(filter(str.isdigit, l))))
print(list2)
# 列表
print(tuple(list2))
# 元组

提取字符串中的数字

最后

以上就是丰富月饼为你收集整理的python学习测试题4及参考答案的全部内容,希望文章能够帮你解决python学习测试题4及参考答案所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部