Python学习【day03】- Python基础练习题(列表、元组、字典)

时间:2023-02-24 10:42:09
  1 #!/usr/bin/env python
  2 # -*- coding:utf8 -*-
  3 
  4 # 1、有两个列表
  5 #   l1 = [11,22,33]
  6 #   l2 = [22,33,44]
  7 # a.获取内容相同的元素列表
  8 l1 = [11, 22, 33]
  9 l2 = [22, 33, 44]
 10 for v in l1 :
 11     if v in l2 :
 12         print(v)
 13 # b.获取l1中有,l2中没有的元素列表
 14 print("------------------------------------------")
 15 for v in l1 :
 16     if v not in l2 :
 17         print(v)
 18 # c.获取l2中有,l1中没有的元素列表
 19 print("--------------------------------------------")
 20 for v in l2 :
 21     if v not in l1 :
 22         print(v)
 23 # d.获取l1和l2中内容都不同的元素
 24 # b.c合集
 25 
 26 
 27 # 2、 用代码实现,利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','Witharush']
 28 print("--------------------------------------------")
 29 li = ['alex','eric','Witharush']
 30 s = "_".join(li)
 31 print(s)
 32 
 33 
 34 # 3、有以下列表:
 35 # nums = [2,7,11,15,1,8,7], 请找到列表中任意两个元素相加能够等于9的元素组合,如, [(0,1),(4,5)]
 36 print("--------------------------------------------")
 37 nums = [2, 7, 11, 15, 1, 8, 7]
 38 n = 0
 39 li = []
 40 for i in range(len(nums)) :
 41     for j in range(len(nums)) :
 42         if nums[i] + nums[j] == 9 :
 43             li.append((i, j))
 44 print(li)
 45 
 46 
 47 # 4、写代码,有如下列表,按照要求实现每一个功能
 48 # li = ["Witharush","eric","rain"]
 49 # a.计算列表长度并输出
 50 print("--------------------------------------------")
 51 li = ["Witharush", "eric", "rain", "aa", "bb", "cc", "dd"]
 52 print(len(li))
 53 # b.列表中追加元素"seven",并输出添加后的列表
 54 li.append("seven")
 55 print(li)
 56 # c.请在列表的第1个位li请在列表的第一个位置插入元素"Tony",并输出添加后的列表
 57 li.insert(0, "Tony")
 58 print(li)
 59 # d.请修改列表的第2个位置插入元素"Kelly",并输出添加后的列表
 60 li[1] = "Kelly"
 61 print(li)
 62 # e.请删除列表中的元素"eric",并输出修改后的列表
 63 li.remove("eric")
 64 print(li)
 65 # f.请删除列表中的第2个元素,并输出删除的元素的值和删除元素后的列表
 66 v = li.pop(1)
 67 print(v, li)
 68 # g.请删除列表中的第3个元素,并输出删除元素后的列表
 69 li.pop(2)
 70 print(li)
 71 # h.请删除列表中的第2至4个元素,并输出删除元素后的列表
 72 l = li[1:3]
 73 for v in l :
 74     li.remove(v)
 75 print(li)
 76 # i.请将列表所有的元素反转,并输出反转后的列表
 77 li.reverse()
 78 print(li)
 79 # j.请使用for,len,range输出列表的索引
 80 for i in range(len(li)) :
 81     print(i)
 82 # k.请使用enumerate是输出列表元素和序号(序号从100开始)
 83 print(list(enumerate(li, 100)))
 84 # l.请使用for循环输出列表的所有元素
 85 for v in li :
 86     print(v)
 87 
 88 
 89 # 5、写代码,有如下元祖,按照要求实现每一个功能
 90 print("----------------------------------------------")
 91 tu = ("alex", "eric", "Witharush")
 92 # a.计算元祖长度并输出
 93 print(len(tu))
 94 # b.获取元祖的第二个元素,并输出
 95 print(tu[1])
 96 # c.获取元祖的第 1-2 个元素,并输出
 97 print(tu[1:2])
 98 # d.请使用for输出元祖的元素
 99 for v in tu :
100     print(v)
101 # e.请使用for,len,range输出元素的索引
102 for i in range(len(tu)) :
103     print(i)
104 # f.请使用enumerate输出元祖元素和序号(序号从10开始)
105 print(tuple(enumerate(tu, 10)))
106 
107 
108 # 6、有如下变量,请实现要求的功能
109 print("--------------------------------------------------")
110 tu = ("Witharush",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
111 # a.讲述元祖的特性
112 # 答:不可变类型、其他和列表相同
113 # b.请问tu变量中的第一个元素"Witharush"是否可以被修改?
114 # 答:不可以
115 # c.请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
116 # 答:k2对应的是列表类型,可以被修改
117 tu[1][2]["k2"].append("Seven")
118 print(tu[1][2]["k2"])
119 # d.请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素"Seven"
120 # 答:k3对应元组类型,不可修改
121 
122 
123 # 7、用1,2,3,4,5,6,7,8 ,8个数,能组成多少个互不相同且无重复的两位数?
124 li = []
125 for i in range(1, 9) :
126     j = i
127     for j in range(1, 9) :
128         if i != j:
129             li.append("".join([str(i), str(j)]))
130 print(li)
131 print(len(li))
132 
133 # 8、九九乘法表
134 for i in range(1, 10) :
135     s = ""
136     for j in range(1, i + 1) :
137         s += str(j) + " * " + str(i) + " = " + str((i * j)) + "\t"
138     print(s)
139 
140 
141 # 9、print用法中的“sep” 、"end"
142 # 答:end:在打印最后放置什么内容默认是\n所以会换行
143 #    sep:连接多个values的连接符 默认是空格
144 # print("aaa", "ccc", sep="_", end="BBB")
145 # print("aaa", sep="ccc", end="ddd")
146 
147 # 10、分页实现内容
148 # a.通过for循环创建301条数据,数据类型不限,如:
149 # Witharush-1     Witharush1@live.com      pwd1
150 # Witharush-2     Witharush2@live.com      pwd2
151 # Witharush-3     Witharush3@live.com      pwd3
152 # ...
153 # 提示用户 请输入要查看的页码,当用户输出指定页码,也显示指定数据
154 # 注意:
155 # 每页显示10条数据
156 # 用户输出页码是非十进制数字,也提示输入内容格式错误
157 print("--------------------------------------------------")
158 """
159 while True:
160     user_list = []
161     for i in range(1,302):
162         temp = {
163             "name": "Witharush" + str(i),
164             "email": "Witharush" + str(i) + "@live.com",
165             "password": "pwd" + str(i)
166         }
167         user_list.append(temp)
168     pageSize = input("请输入要查看的页码:")
169     pageSize = int(pageSize)
170     start = (pageSize - 1) * 10
171     end = pageSize * 10
172     result = user_list[start:end]
173     for item in result:
174         print(item)
175 """
176 
177 # 11、用python开发程序自动计算方案
178 # 公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买100只鸡,其
179 # 中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100问钱?
180 for i in range(1, 20) :
181     for j in range(1, 33) :
182         for g in range(1, 100) :
183             if i + j + g == 100 and 5 * i + 3 * j + g /3 == 100 :
184                 print("公鸡:" + str(i), "母鸡:" + str(j), "小鸡:" + str(g))