python老师布置的作业,以及对之前学习的回顾

  1 一、回顾内容
  2     1、顶部
  3         解释器
  4         编码(2.7默认ascii,3.6默认utf-8  5     2、print"hello")2.7
  6         print "hello"  3.6
  7     3、编码之间的关系
  8         ascii    万国码  (最少两个字节unicode) gbk   utf-8
  9         1个字节     最少两个字节                 2个        中文3个字节
 10     4、命名
 11         首字母不是数字
 12         变量名不能是关键字
 13         数字字母下划线
 14         变量存在的意义-->方便调用
 15     5、条件
 16         if条件:
 17             pass
 18         elif 条件:
 19             pass
 20         else 21             pass
 22         注意缩进,冒号
 23     6、while
 24         while 条件:
 25             pass   每次条件被判断成立无限执行
 26         continue 中止此次循环,从新开始循环
 27         break  终止所有循环
 28     7、运算符
 29         *=
 30         +=
 31         -=
 32         /=
 33         %= 取余
 34         一个等号是赋值,两个等号才是等于
 35         num = 13
 36         zq = num % 2 #余数
 37         if zq == 0: 
 38             # 偶数
 39         else 40             # 奇数
 41         
 42         in 判断元素在不在列表里面
 43         num = “zq”
 44         li = ["zq","zw"] 
 45         if num in li: 
 46             print('zai')
 47         else 48             print('buzai')
 49         再加一个判断是否以z开头的
 50         if num in li and num.startwith('z' 51         # and 可以在加一个条件
 52         
 53     8、基本的数据类型
 54         int,整形
 55             n = 123
 56             n = int(123) # int类的 ——init——
 57             s = "123"
 58             m = int(s) #字符串类型转换整形
 59             整形有个长度限制,32位电脑正负2的31次方....(python2.7 60             python3.6里面没有long了 不管多长的数字都是int。2.7里面超过范围会转换成长整形
 61             
 62             s = "132sdfg" #字符串里面只包含数字时才能转换
 63             m = int(s)
 64             
 65         str,字符串
 66             s = "zq"
 67             s = str("zq")
 68             
 69             a = 123
 70             m = str(a) 把一个数字转换成字符串
 71             
 72             =======
 73             bytes =》 字节类型 
 74             str   =》 字符串
 75             目的:字节转换成字符串
 76             b = 字节类型的对象
 77             # m = bytes(b)
 78             m = str(b,encoding=“utf-8”)
 79             
 80             首字母变大写 去空格 变大小写 替换 是否为数字、字母 开头结尾 查找
 81             个数  格式化  编码解码  居中左飘右飘  连接
 82             li = ["zq","ss"]
 83             l1 = "_".join(li)
 84             l1对应的值 zq_ss
 85             
 86         list,列表
 87             i = [11,22,33]
 88             i = list(11,22,33) 这是错误的
 89             i = list([11,22,33]) list 是个类名 后面小括号里面的元素只能有一个但是里面必须用中括号加序列
 90             =====
 91             t = (11,22,33)
 92             i = list([t]) 这是错误的 出来的结果是这样的[(11,22,33)]
 93             i = list(t) 这是正确的
 94             
 95             t = [11,22,33]
 96             t = [11,22,33,]这两种是样的 
 97             
 98             列表的公共功能:
 99                 索引
100                 切片
101                 for
102                 长度
103                 enumerate
104                 删除 del li[0]
105                      del li[0:2]
106             特有的功能:
107                 翻转
108                 排序
109                 追加
110                 插入
111                 索引位置
112                 删除
113                 pop
114                 扩展
115                 清楚
116         tuple:
117             t = (11,22,33,44)
118             t = tuple(可迭代的对象)
119             
120             li = (11,22,33,44)
121             l1 = tuple(li)
122             
123             公共功能:
124                 索引
125                 切片
126                 for
127                 长度
128                 enumerate
129                 in
130             特有的功能:
131                 个数
132                 索引位置
133                 
134             特性:不能修改....
135         dict:
136             d = {"k":123,"k2":65}
137             d2 = {
138                 "k":123,
139                 "k2":156
140             } 
141             
142             li = [1,2,3,4]
143             字典: key:10 递加
144                    value: 列表的元素
145             dic = []
146             for i,j in enumerate(li,10):
147             new_dict = dict(enumerate(li,10))
148             公共功能:
149                 索引
150                 增加 dic[key]=vlue
151                 删除
152                 for
153                 长度
154                 in
155             特有的功能:
156                 项 键 值 get haskey--》is
157                 update
158                 fromkey
159     字符串,字节
160         str
161         bytes
162         
163         a = "张强"  gbk编码的字节
164         b = bytes(a,encoding="gbk") type(b)=> bytes
165         c = str(b,encoding="gbk")
166     
167     int优化机制
168         a = 123
169         b = 123
170         id(a)
171         相同,因为有优化,-5~257
172         
173         a = 123
174         b = a
175         
176 二、作业
177     1、元素分类
178     有如下值集合【11,22,33,44,55,66,77,88,99,90】,将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中。
179     既:{k1:大于66的所有值,k2:小于66的所有值}
180         第一种方法
181             # li = [11,22,33,44,55,66,77,88,99,90]
182             #字典
183             # {
184             #     "k1":[11,22,33,44,55],
185             #     "k2":[66,77,88,99]
186             # }
187             #code
188             li = [11,22,33,44,55,66,77,88,99,90]
189             l1 = []
190             l2 = []
191             for i in li:
192                 if i <= 66:
193                     l1.append(i)
194                 else:
195                     l2.append(i)
196             temp = {"k1":l1, "k2":l2}
197             print(temp)
198         第二种方法
199             dic = {
200                 "k1":[],
201                 "k2":[]
202             }
203             li = [11,22,33,44,55,66,77,88,99,90]
204             for i in li:
205                 if i <= 66:
206                     dic['k1'].append(i)
207                 else:
208                     dic['k2'].append(i)
209             print(dic)
210             
211     2、查找
212        查找列表中元素,移动空格,并查找以a或A开头并且以c结尾的所有元素。
213        h=["alec","aric","Alex","Tony","rain"]
214        tu=["alec","aric","Alex","Tony","rain"]
215        dic=['k1':"alec",'k2':"aric",'k3':"Alex",'k4':"Tony",'k5':"rain"]
216        
217         li = ["aleb","aric","  Alex","Tony","rain"]
218         for i in li:
219             new_i = i.strip()
220             if new_i.startswith('a') or new_i.startswith('A') and new_i.endswith('c'):
221                 print(i)
222             换成元组序列也一样    
223         li = ("aleb","aric","  Alex","Tony","rain")
224         for i in li:
225             new_i = i.strip()
226             if new_i.startswith('a') or new_i.startswith('A') and new_i.endswith('c'):
227                 print(i)
228 
229         dic={'k1':"alec",'k2':"aric",'k3':"Alex",'k4':"Tony",'k5':"rain"}
230         for i in dic.values():
231             new_i = i.strip()
232             if new_i.startswith('a') or new_i.startswith('A') and new_i.endswith('c'):
233                 print(i)
234     3、输出商品列表,用户输入序号,显示用户选中的商品
235         商品li=["手机""电脑""鼠标""游艇"]
236         li = ["手机","电脑","鼠标","游艇"]
237         # for i,j in enumerate(li):
238         #     print(i,j)
239         for i,j in enumerate(li):
240             print(i+1,j)
241         num = input('num:')
242         num = int(num)
243         len_i = len(li)
244         # if num >0 and num < 5:
245         if num > 0 and num <= len_i:
246             good = li[num-1]
247             print(good)
248         else:
249             print("商品不存在")
250             
251     5、用户交互,显示省市县三级联动的选择
252             dic = {
253             "河北":{
254                 "石家庄": ["上单","打野","下路"],
255                 "邯郸" : ["地方","对方","好人"]
256              },
257             "河南":{
258                     "郑州": ["上上","下下","左左"],
259                     "开封" : ["悠悠","多少","东方"]
260             },
261             "山西":{
262                     "太原": ["一一","二二","三三"],
263                     "长治" : ["四四","呜呜","溜溜"]
264             }
265         }
266 
267                 #循环输出所有的省
268                 for x in dic:
269                     print(x)
270                 i1 = input("请输入省份:")
271                 a = dic[i1]
272                 #循环输出所有的市
273                 for j in a:
274                     print(j)
275                 i2 = input("请输入省份:")
276                 b = dic[i1][i2]
277                 #print(b)#列表类型
278                 for z in b:
279                     print(z)
280     4、购物车
281                 功能要求:
282                     a.要求用户输入总资产,例如:2000
283                     b.显示商品列表,让用户根据序号选择商品,加入
284 
285             购物车
286                     c.购买,如果商品总额大于总资产,提示账户余额
287 
288             不足,否则,购买成功。
289                     d.附加:可充值、某商品移除购物车
290                 goods = [
291                 {"name":"电脑","price":1999},
292                 {"name":"鼠标","price":10},
293                 {"name":"游艇","price":20},
294                 {"name":"美女","price":998}
295             ]
296 
297                 allset = 0
298                 car_list = []
299                 # {
300                 #      "电脑":{'price':"单个商品价格","num":"购买多少"}
301                 # }
302 
303                 i1 = input("请输入总资产:")
304                 allset_all = int(i1)
305                 for i in goods:
306                     #i, 每一个列表的元素,字典
307                     print(i['name'],i['price'])
308                 while True:
309                     i2 = input('请选择商品(Y/y结算):')
310                     if i2.lower() == "y":
311                         break
312                     for j in goods:
313                         if j['name'] == i2:
314                             # print(j)
315                             car_list.append(j)
316                     print(car_list)
317                 # 结算
318                 all_price = 0
319                 for item in car_list:
320                     p = item['price']
321                     all_price = all_price + p
322                 print(allset_all,all_price)
323                 if all_price > allset_all:
324                     print('不行')
325                 else:
326                     print('')
327                     
328                 
329                 #总资产
330                 asset_all = 0
331                 i1 = input("请输入总资产:")
332                 asset_all = int(i1)
333                 goods = [
334                     {"name":"电脑","price":1999},
335                     {"name":"鼠标","price":10},
336                     {"name":"游艇","price":20},
337                     {"name":"美女","price":998}
338                 ]
339                 for i in goods:
340                     #  {"name":"电脑","price":1999}
341                     print(i['name'],i['price'])
342                 car_dict = {}
343                 # car_dict = {
344                 #     "电脑":{"price":"单价", "num":123}
345                 # }
346                 while True:
347                     i2 = input("请选择商品(Y/y结算):") #  电脑
348                     if i2.lower() == "y":
349                         break
350                     # 循环所有的商品,查找需要的商品
351                     for item in goods:
352                         if item['name'] == i2:
353                             name = item['name']
354                             # 判断购物车是否已经有该商品,有,num+1
355                             if name in car_dict.keys():
356                                 #  pass
357                                 car_dict[name]['num'] = car_dict[name]['num'] + 1
358                             else:
359                                 car_dict[name] = {"num":1,"single_price": item['price']}
360                 print(car_dict)
361                     # {
362                     # '电脑': {'num': 6, 'single_price': 1999}  6*1999
363                     # '鼠标': {'num': 3, 'single_price': 10}}     3*10
364 
365                     # }
366                 all_price = 0
367                 for k,v in car_dict.items():
368                      n = v['single_price']
369                      m = v['num']
370                      all_sum = m*n
371                      all_price = all_price + all_sum
372 
373                 if all_price > asset_all:
374                         print('买不起')
375                 else:
376                     
377                 从第一个print往后一格效果完全不一样
378                 #总资产
379                 asset_all = 0
380                 i1 = input("请输入总资产:")
381                 asset_all = int(i1)
382                 goods = [
383                     {"name":"电脑","price":1999},
384                     {"name":"鼠标","price":10},
385                     {"name":"游艇","price":20},
386                     {"name":"美女","price":998}
387                 ]
388                 for i in goods:
389                     #  {"name":"电脑","price":1999}
390                     print(i['name'],i['price'])
391                 car_dict = {}
392                 # car_dict = {
393                 #     "电脑":{"price":"单价", "num":123}
394                 # }
395                 while True:
396                     i2 = input("请选择商品(Y/y结算):") #  电脑
397                     if i2.lower() == "y":
398                         break
399                     # 循环所有的商品,查找需要的商品
400                     for item in goods:
401                         if item['name'] == i2:
402                             name = item['name']
403                             # 判断购物车是否已经有该商品,有,num+1
404                             if name in car_dict.keys():
405                                 #  pass
406                                 car_dict[name]['num'] = car_dict[name]['num'] + 1
407                             else:
408                                 car_dict[name] = {"num":1,"single_price": item['price']}
409                     print(car_dict)
410                         # {
411                         # '电脑': {'num': 6, 'single_price': 1999}  6*1999
412                         # '鼠标': {'num': 3, 'single_price': 10}}     3*10
413 
414                         # }
415                     all_price = 0
416                     for k,v in car_dict.items():
417                          n = v['single_price']
418                          m = v['num']
419                          all_sum = m*n
420                          all_price = all_price + all_sum
421 
422                     if all_price > asset_all:
423                             print('买不起')
424                     else:
425                             print('可以')
426                 
427 
428        

 

posted @ 2017-05-04 22:33  rumenzq  阅读(160)  评论(0)    收藏  举报