1 #!/usr/bin/env python
2 # -*- conding:utf8 -*-
3
4 # 1、请用代码实现:利用下划线将列表的每一个元素拼接成字符串,li = ['alex','eric','rain']
5 li = ['alex','eric','rain']
6 v = "_".join(li)
7 print(v)
8
9 li = ['alex','eric',123]
10 count = 0
11 for i in li:
12 li[count] = str(i)
13 count += 1
14 v = "_".join(li)
15 print(v)
16
17 # 2、查找列表中元素,移除每个元素的空格,并查找以a或者A开头 并且以c结尾的所有元素
18 li = ["alec"," aric","Alex","Tony","rain"]
19 count = 0
20 for item in li:
21 v = item.strip()
22 li[count] = v
23 count += 1
24 print(li)
25 for i in li:
26 if i.startswith('a') or i.startswith('A') and i.endswith('c'):
27 print(i)
28
29 tu = ("alec"," aric","Alex","Tony","rain")
30 dic = {"k1":"alec","k2":" aric","k3":"Alex","k4":"Tony"}
31
32
33 # 3、写代码,有如下列表,按照要求实现每一个功能
34 li = ['alex','eric','rain']
35 a.计算列表长度并输出
36 b.列表中追加元素 "seven",并输出添加后的列表
37
38 # 4、写代码,有如下列表,请按照功能要求实现每一个功能
39 li = ["hello",'seven',["moom",["h","kelly"],'all'],123,446]
40 a.请根据索引输出 "Kelly"
41 b.请使用索引找到 'all' 元素并将其修改为 "ALL". 如:li[0][1][9]...
42
43 # 5、写代码,有如下元组,按照要求实现每一个功能
44 # tu = ('alex','eric','rain')
45 # a.计算元组长度并输出
46 # b.获取元组的第2个元素,并输出
47 # c.获取元组的第1-2个元素,并输出
48 # d.请使用for输出元组的元素
49 # e.请使用for、len、range输出元组的索引
50 # f.请使用enumrate输出元组元素和序号(序号从10开始)
51 tu = ('alex','eric','rain')
52 a
53 print(len(tu))
54 for i in tu:
55 print(i)
56 b
57 print(tu[1])
58 c
59 print(tu[0:2])
60 d
61 for i in tu:
62 print(i)
63 e
64 for i in range(len(tu)):
65 print(i)
66 f
67 for i , j in enumerate(tu, 10):
68 print(i,j)
69 ############新的知识点!!!!!!
70 # 创建序列
71 """
72 enumerate(sequence, [start=0])
73 其中:sequence 一个序列、迭代器或其他支持迭代对象(例如本题中的元组tu)
74 其中:start 下标起始位置 例如本题f 中的(序号从10开始)
75 for i , j in enumerate(tu, 10):
76 print(i,j)
77
78 """
79 ############新的知识点!!!!!!
80
81
82 # 6、有如下变量,请实现要求的功能
83 # tu = ("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
84 # a.讲述元组的特性
85 # b.请问tu变量中的第一个元素 "alex" 是否可被修改?
86 # c.请问tu变量中的"k2"对应得值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
87 # d.请问tu变量中的"k3"对应得值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 "Seven"
88 tu = ("alex",[11,22,{"k1":'v1',"k2":["age","name"],"k3":(11,22,33)},44])
89 c
90 tu[1][2]["k2"].append("Seven")
91 print(tu)
92
93 # 9、元素分类
94 # 有如下值集合[11,22,33,44,55,66,77,88,99,90],将所有大于66的值保存至字典的第一个key中,将小于66的值
95 # 保存至字典的第二个key的值中。
96 # 即:{'k1':大于66的所有值,‘k2’:小于66的所有值}
97 li = [11,22,33,44,55,66,77,88,99,90]
98 dic = {"k1":[],"k2":[]}
99 for i in li:
100 if i > 66:
101 dic["k1"].append(i)
102 if i < 66:
103 dic["k2"].append(i)
104 print(dic)
105
106 # 10、输出商品列表,用户输入序号,显示用户选中的商品
107 # 商品 li = ["手机","电脑","鼠标垫","游艇"]
108 # a.允许用户添加商品
109 # b.用户输入序号显示内容
110 li = ["手机", "电脑", "鼠标垫", "游艇"]
111 v = input("请选择是否添加商品(1 or 0):")
112 if v == 1:
113 new_v = input("请输入添加的产品:")
114 li.append(new_v)
115 else:
116 m = int(input("请选择你需要查看的商品:"))
117 print(li[m])
118
119 # 11、用户交互显示类似省市县N级联动的选择
120 # a.允许用户增加内容
121 # b.允许用户选择查看某一个级别内容
122
123 # 12、列举布尔值是False的所有值
124 0 / None / [] / () / {} / ""
125
126 # 13、有两个列表
127 # l1 = [11,22,33]
128 # l2 = [22,33,44]
129 # a.获取内容相同的元素列表
130 # b.获取l1中有,l2中没有的元素列表
131 # c.获取l2中有,l1中没有的元素列表
132 # d.获取l1和l2中内容都不同的元素
133 a
134 for i in l1:
135 if i in l2:
136 print(i)
137 b
138 for i in l1:
139 if i not in l2:
140 print(i)
141 c
142 for i in l2:
143 if i not in l1:
144 print(i)
145 d
146 for i in l2:
147 if i not in l1:
148 print(i)
149 for i in l1:
150 if i not in l2:
151 print(i)
152
153 # 14、利用For循环和range输出
154 # a.For循环从大到小输出1-100
155 # b.For循环从小到大输出100-1
156 # c.while循环从大到小输出1-100
157 # d.while循环从小到大输出100-1
158
159
160 # 15、购物车
161 # 功能要求:
162 # 要求用户输入总资产,例如:2000
163 # 显示商品列表,让用户根据序号选择商品,加入购物车
164 # 购买,如果商品总额度大于总资产,提示账号余额不足,否则购买成功。
165 # goods = [{"name":"电脑","price":"1999"},
166 # {"name":"鼠标","price":"10"},
167 # {"name":"游艇","price":"20"},
168 # {"name":"美女","price":"998"}]
169
170 # 16、分页显示内容
171 # a.通过for循环创建301条数据,数据类型不限,入:
172 # alex-1 alex1@live.com pwd1
173 # alex-2 alex2@live.com pwd2
174 # alex-3 alex3@live.com pwd3
175 # alex-4 alex4@live.com pwd4
176 # alex-5 alex5@live.com pwd5
177 # b.提示用户 请输入要查看的页码,当用户输入指定页码,则显示指定数据
178 # 注意:
179 # - 每页显示10条数据
180 # - 用户输入页码是非十进制数字,则提示输入内容格式错误
181 # 自己做的 忘记了 切片方法!1!
182 dic = {}
183 v = ""
184 for item in range(0, 301):
185 if v.count("\n") == 10:
186 v = ""
187 v += "alex-" + str(item) + "\t" + "alex" + str(item) + "@live.com" + "\t" + "pwd" + str(item) + "\n"
188 else:
189 v += "alex-" + str(item) + "\t" + "alex" + str(item) + "@live.com" + "\t" + "pwd" + str(item) + "\n"
190 dic.update({(item // 10 + 1): v})
191 # print(dic)
192 m = input("请输入要查看的页码:")
193 new_m = dic[int(m)]
194 print(new_m)
195
196 # 答案
197 user_list = []
198 for i in range(1,302):
199 temp = {"name":"newmet"+str(i),"email":"newmet@top"+str(i),"pwd":"pwd"+str(i)}
200 user_list.append(temp)
201 while True:
202 # 用切片实现,每次输入页面,只显示10页
203 v = int(input("请输入要查看的页码:"))
204 start = (v-1)*10
205 end = v * 10
206 result = user_list[start:end]
207 for item in result:
208 print(item,type(item))
209
210
211
212
213 # 17、有1、2、3、4、5、6、7、8、8个数字,能组合多少个互不相同切无重复数字的两位数?
214 li = []
215 for i in range(1,9):
216 for j in range(1,9):
217 if j != i:
218 v = str(i) + str(j)
219 if v not in li:
220 li.append(v)
221 print(li,len(li))
222
223 # 18、利用for循环和range输出 9 * 9 乘法表
224 for i in range(1,10):
225 v = ""
226 for j in range(i,10):
227 v += str(i) + " × " +str(j) + " = " + str(i*j) + "\t"
228 print(v)
229
230 for i in range(1,10):
231 v = ""
232 for j in range(1,i+1):
233 v += str(i) + " × " +str(j) + " = " + str(i*j) + "\t"
234 print(v)
235
236 for i in range(1,10):
237 for j in range(1,i+1): # 不加 end="" ,每次输出print,默认有(\n)是自动换行,加上则不换行
238 print(str(i) + " × " +str(j) + " = " + str(i*j) + "\t",end="")
239 print("\n",end="")
240 ############新的知识点!!!!!!
241 """
242 print("newmet",end="") # end="" 默认是 end="\n"
243 print('new','met','top') # 结果:new met top
244 print('new','met','top',sep='*') # 结果:new*met*top
245 # sep="" 默认是 sep=" "
246 """
247 ############新的知识点!!!!!!
248
249 # 19、有以下列表,
250 # nums = [2,7,11,15,1,8,7]
251 # 请找到列表中任意两个元素相加能够等于9的元素合集,如:[(0,1),(4,5)]
252 nums = [2, 7, 11, 15, 1, 8, 7]
253 li = []
254 count1 = 0
255 for i in nums:
256 count2 = 0
257 for j in nums:
258 if i + j == 9 and count1 != count2 and count2 > count1:
259 tu = (count1,count2)
260 li.append(tu)
261 count2 += 1
262 count1 += 1
263 print(li)
264
265 # 只要求索引,不考虑重复与否
266 li = []
267 for i in range(len(nums)):
268 for j in range(len(nums)):
269 if nums[i] + nums[j] == 9:
270 li.append((i,j,))
271 print(li)
272
273
274 # 20、用Python开发程序自动计算方案:
275 # 公鸡5文钱一只,母鸡3文钱一只,小计3只一文钱,用100文钱买100只鸡,其中公鸡、母鸡、小鸡必须要有,
276 # 问公鸡、母鸡、小鸡要买多少只刚好凑够100文钱?
277 for i in range(1,20):
278 for j in range(1, 33):
279 for m in range(1, 100):
280 if i * 5 + j * 3 + m / 3 == 100 and i + j + m == 100:
281 print(i, j, m)
282 # 结果:4 18 78
283 # 结果:8 11 81
284 # 结果:12 4 84