笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 原创文章转载请注明出处。如果喜欢请点赞+关注,感谢支持!
《Python实战系列》所有实例训练题都是从Python各个知识点精挑细选出来的,希望能对大家有所帮助。
Python实战系列每周不定时更新,想看上一期实战训练的朋友请点击=>传送门。不多废话,直接上干货!
目录
Python实战10-19例:列表、字典、循环等综合训练
10.删除列表元素
删除列表中的"不明飞行物
",写出 2 种或以上方法:
info = ["Carter", 45, "男", "不明飞行物", ["高", "富", "帅"], True, None, "狼的眼睛是啥样的"]
-
#方法1 pop()
-
info = [
"Carter",
45,
"男",
"不明飞行物", [
"高",
"富",
"帅"],
True,
None,
"狼的眼睛是啥样的"]
-
print(
'打印原先列表:\n',info)
-
info.pop(
3)
-
print(
'方法1 利用pop()函数删除,删除后的列表内容:\n',info)
-
-
#方法2 remove()
-
info = [
"Carter",
45,
"男",
"不明飞行物", [
"高",
"富",
"帅"],
True,
None,
"狼的眼睛是啥样的"]
-
info.remove(
'不明飞行物')
-
print(
'方法2 利用remove()函数删除,删除后的列表内容:\n',info)
-
-
#方法3 del语句
-
info = [
"Carter",
45,
"男",
"不明飞行物", [
"高",
"富",
"帅"],
True,
None,
"狼的眼睛是啥样的"]
-
del info[
3]
-
print(
'方法3 利用del语句,删除后的列表内容:\n',info)
-
-
#方法4 列表分片
-
info = [
"Carter",
45,
"男",
"不明飞行物", [
"高",
"富",
"帅"],
True,
None,
"狼的眼睛是啥样的"]
-
info1 = info[:
3]
-
info2 = info[
4:]
-
print(
'方法4 利用列表重新拼接,不包括要删除的元素,删除后的列表内容:\n',info1 + info2)
-
打印原先列表:
-
[
'Carter',
45,
'男',
'不明飞行物', [
'高',
'富',
'帅'],
True,
None,
'狼的眼睛是啥样的']
-
方法
1 利用pop()函数删除,删除后的列表内容:
-
[
'Carter',
45,
'男', [
'高',
'富',
'帅'],
True,
None,
'狼的眼睛是啥样的']
-
方法
2 利用remove()函数删除,删除后的列表内容:
-
[
'Carter',
45,
'男', [
'高',
'富',
'帅'],
True,
None,
'狼的眼睛是啥样的']
-
方法
3 利用
del语句,删除后的列表内容:
-
[
'Carter',
45,
'男', [
'高',
'富',
'帅'],
True,
None,
'狼的眼睛是啥样的']
-
方法
4 利用列表重新拼接,不包括要删除的元素,删除后的列表内容:
-
[
'Carter',
45,
'男', [
'高',
'富',
'帅'],
True,
None,
'狼的眼睛是啥样的']
注意,删除元素轻易不要用del语句去删除,太危险。
11.修改列表
现在有一个列表 li2=[1,2,3,4,5]。请通过相关的操作改成li2 = [0,1,2,3,66,4,5,11,22,33]。
-
#方法1 赋值
-
li2 = [
1,
2,
3,
4,
5]
-
print(
'原始li2列表内容:',li2)
-
li3 = [
0,
1,
2,
3,
66,
4,
5,
11,
22,
33]
-
li2 = li3[::]
-
print(
'方法1 通过最简单的赋值来进行修改,修改后的li2列表内容:\n',li2)
-
-
#方法2 利用insert()
-
li2 = [
1,
2,
3,
4,
5]
-
li2.insert(
0,
0)
-
li2.insert(
4,
66)
-
li2.insert(
7,
11)
-
li2.insert(
8,
22)
-
li2.insert(
9,
33)
-
print(
'方法2 只通过insert()添加元素,修改后的li2列表内容:\n',li2)
-
-
#方法3,insert(),append()
-
li2 = [
1,
2,
3,
4,
5]
-
li2.insert(
0,
0)
-
li2.insert(
4,
66)
-
li2.append(
11)
-
li2.append(
22)
-
li2.append(
33)
-
print(
'方法3 通过insert()和append()添加元素,修改后的li2列表内容:\n',li2)
主要考察对列表的添加元素操作,根据具体的需求选择合适的方法。
12.判断可变和不可变的数据类型
请指出下面那些为可变类型的数据,那些为不可变类型的数据
1、 (11)
2、 {11,22}
3、 ([11,22,33])
4、 {"aa":111}
-
print(
'''分析:(11)是整形,而整形是不可变的数据
-
{11,22}是集合,可以使用add()函数对集合进行添加元素的操作,所以是可变的数据。
-
([11,22,33])是个陷阱,虽然()是元组的表示方式,但当元组只有一个元素时且后面没有用逗号隔开时,只能表示元素本身的数据类型。也就是列表类型。而列表是可变类型,所以这个也是可变类型。
-
{"aa":111}是字典,字典是可变的类型,所以得出结论。''')
-
print(
'总结:编号为1的是不可变类型的数据;编号为2、3、4的是可变的类型数据。')
各种陷阱,基础知识点。如果不确定可以打印出数据类型,再进行判断是否为可变数据类型。
13.元素去重和删除
当前有一个列表 li = [11,22,33,22,22,44,55,77,88,99,11]。
- 要求一:去除列表中的重复元素
- 要求二:删除 77,88,99这三个元素
-
li = [
11,
22,
33,
22,
22,
44,
55,
77,
88,
99,
11]
-
#去重用集合类型转换,再转换为列表
-
li_new =
list(set(li))
-
li_new.sort()
-
print(li_new)
-
#要求二中利用remove函数删除列表的三个元素
-
li_new.remove(
77)
-
li_new.remove(
88)
-
li_new.remove(
99)
-
print(li_new)
-
-
#或者用pop()删除三个元素
-
li = [
11,
22,
33,
22,
22,
44,
55,
77,
88,
99,
11]
-
li_new =
list(set(li))
-
li_new.sort()
-
#pop()删除元素,由于已经排序,所以默认删除最后一个
-
li_new.pop()
-
li_new.pop()
-
li_new.pop()
-
print(li_new)
-
-
#或者用切片删除
-
li = [
11,
22,
33,
22,
22,
44,
55,
77,
88,
99,
11]
-
li_new =
list(set(li))
-
li_new.sort()
-
n=len(li_new)
-
lst = li_new[:n
-3]
-
print(lst)
-
[
11,
22,
33,
44,
55,
77,
88,
99]
-
[
11,
22,
33,
44,
55]
-
[
11,
22,
33,
44,
55]
-
[
11,
22,
33,
44,
55]
这道题考察的知识点:集合用来去重。
14.数据类型转换字典
有下面几个数据 :
t1 = ("aa",11)
t2= (''bb'',22)
li1 = [("cc",11)]
请通过学过的知识点,进行相关操作变为如下字典: {"aa":11,"cc":11,"bb":22}:
-
#方法1 extend()
-
a,b,c = t1,li1[
0],t2
-
list = []
-
list.extend([a,b,c])
-
print(dict(
list))
{'aa': 11, 'cc': 11, 'bb': 22}
-
#方法2
-
t1 = (
'aa',
11)
-
t2 = (
'bb',
22)
-
li1 = [(
'cc',
11)]
-
li1.insert(
0,t1)
-
li1.insert(
2,t2)
-
print(dict(li1))
{'aa': 11, 'cc': 11, 'bb': 22}
-
#方法3
-
ti = (
"aa",
11)
-
t2 = (
"bb",
22)
-
li1 = [(
"cc",
11)]
-
new_dict = {}
-
new_dict[t1[
0]] = t1[
1]
-
new_dict[t2[
0]] = t2[
1]
-
new_dict[li1[
0][
0]] = li1[
1]
{'aa': 11, 'cc': 11, 'bb': 22}
每种方法都要掌握!
15.利用判断计算价格
一家商场在降价促销,所有原价都是整数(不需要考虑浮点情况),如果购买金额50-100元(包含50元和100元)之间,会给
10%的折扣,如果购买金额大于100元会给20%折扣。编写一程序,询问购买价格,再显示出折扣(%10或20%)和最终价格。
-
price = int(input(
'请输入购买金额:'))
-
if price >=
50
and price <=
100:
-
price_sale = price * (
1 -
0.1)
-
#利用format(price_sale,'.2f')函数,取小数点后两位
-
print(
'折扣为:10%,最终价格为:{}元。'.format(format(price_sale,
'.2f')))
-
elif price >
100:
-
price_sale = price * (
1 -
0.2)
-
print(
'折扣为:20%,最终价格为:{}元。'.format(format(price_sale,
'.1f')))
-
else:
-
print(
'没有折扣,最终价格为:{}元。'.format(price))
-
请输入购买金额:
111
-
折扣为:
20%,最终价格为:
88.8元。
需要注意取小数点。
16.判断是否为闰年
-
输入一个有效的年份(如:2019),判断是否为闰年(不需要考虑非数字的情况)
-
如果是闰年,则打印“2019年是闰年”;否则打印“2019年不是闰年”
-
year = int(input(
'输入一个有效的年份(如:2019):'))
-
#闰年判断条件:首先保证年数能被4整除
-
if year %
4 ==
0:
-
#年份能被100整除,但不能被400整除时,是平年
-
if year %
100 ==
0
and year %
400 !=
0:
-
print(
'公元{}年不是闰年。'.format(year))
-
else:
-
print(
'公元{}年是闰年。'.format(year))
-
else:
-
print(
'公元{}年不是闰年。'.format(year))
-
请输入第
1个整数:
190
-
请输入第
2个整数:
210
-
请输入第
3个整数:
65
-
最大值为:
210
-
#方法2
-
year = int(input(
"请输入需要查询的年份:"))
-
if year %
4 ==
0:
-
if year %
100 ==
0:
-
if year %
400 ==
0:
-
print(
"是闰年")
-
else:
-
print(
"不是闰年")
-
else:
-
print(
"是闰年")
-
else:
-
print(
"不是闰年")
闰年的两个判断条件:年数能被4整除,年份能被100整除,同时要被400整除。方法很多,这里只列举一个。
17.求数字最大值
求三个整数中的最大值,提示:定义 3 个变量。
-
a = int(input(
"请输入第1个整数:"))
-
b = int(input(
"请输入第2个整数:"))
-
c = int(input(
"请输入第3个整数:"))
-
-
if a >= b
and a >= c:
-
print(
"最大值为:{}".format(a))
-
elif b >= a
and b >= c:
-
print(
"最大值为:{}".format(b))
-
else:
-
print(
"最大值为:{}".format(c))
-
请输入第
1个整数:
190
-
请输入第
2个整数:
210
-
请输入第
3个整数:
65
-
最大值为:
210
当然这里可以用max函数,更简单。
-
a = int(input(
"请输入第1个整数:"))
-
b = int(input(
"请输入第2个整数:"))
-
c = int(input(
"请输入第3个整数:"))
-
print(max(a,b,c))
-
请输入第
1个整数:
3
-
请输入第
2个整数:
2
-
请输入第
3个整数:
1
-
3
18.使用for打印九九乘法表
输出九九乘法表,格式如下:(每项数据之间空一个Tab键,可以使用"\t")
-
#x是被乘数
-
for x
in range(
1,
10):
-
#y是乘数
-
for y
in range(
1,x +
1):
-
print(y,
'x' ,x ,
'=',x*y,end=
'\t')
-
print(
'')
-
1 x
1 =
1
-
1 x
2 =
2
2 x
2 =
4
-
1 x
3 =
3
2 x
3 =
6
3 x
3 =
9
-
1 x
4 =
4
2 x
4 =
8
3 x
4 =
12
4 x
4 =
16
-
1 x
5 =
5
2 x
5 =
10
3 x
5 =
15
4 x
5 =
20
5 x
5 =
25
-
1 x
6 =
6
2 x
6 =
12
3 x
6 =
18
4 x
6 =
24
5 x
6 =
30
6 x
6 =
36
-
1 x
7 =
7
2 x
7 =
14
3 x
7 =
21
4 x
7 =
28
5 x
7 =
35
6 x
7 =
42
7 x
7 =
49
-
1 x
8 =
8
2 x
8 =
16
3 x
8 =
24
4 x
8 =
32
5 x
8 =
40
6 x
8 =
48
7 x
8 =
56
8 x
8 =
64
-
1 x
9 =
9
2 x
9 =
18
3 x
9 =
27
4 x
9 =
36
5 x
9 =
45
6 x
9 =
54
7 x
9 =
63
8 x
9 =
72
9 x
9 =
81
乘法表就不多叙述了,面试必备!
19.循环删除元素
你的微信好友当中有 5 个推销的,他们存在一个列表 black_list=['卖茶叶', '卖面膜', '卖保险', '卖花生', '卖手机']
请依次把这 5 个人分别从 black_list 当中删除,最后 black_list 为空。
-
black_list = [
'卖茶叶',
'卖面膜',
'卖保险',
'卖花生',
'卖手机']
-
print(black_list)
-
length = len(black_list)
-
for i
in range(length):
-
black_list.pop()
-
print(black_list)
-
[
'卖茶叶',
'卖面膜',
'卖保险',
'卖花生',
'卖手机']
-
[]
以上便是《Python实战10-19例》的所有内容,本系列持续更新,每道都是精挑细选的质量题。
原创不易,转载请注明原作者。如果喜欢请点赞和关注,谢谢大家的支持!
转载:https://blog.csdn.net/JackMengJin/article/details/105948903