Python学习笔记2:购物车(for,while循环;列表)

 1 import sys
 2 flag = True
 3 list = [('mac',13500),('thinkpad',6700),('Iphone x',8800),('car',150000),('book',32),('bike',1000),('MP3',260)]
 4 buy_file = open('C:/安装包/pycharm/day01/list.txt', 'w+')
 5 while flag is True:
 6         money = input('Please you deposit:')
 7         if money.isdigit():
 8                 money = int(money)
 9                 while flag is True:  # is not True
10                 #        for i in list:
11                 #                print(list.index(i) + 1, i)
12                         for i, v in enumerate(list, 1):
13                                 print(i, v)
14                         code = input('请选择您需要购买的商品编号【退出/Q】:')
15                         if code.isdigit():
16                                 code = int(code)
17                                 if 0 < code <= len(list):
18                                         flag = False
19                                         num = list[(code - 1)][1]
20                                         print(list[code - 1])
21                                         buy_list = str(list[code - 1])
22                                         buy = list[code - 1][0]
23                                         balance = money - num
24                                         if balance < 0:
25                                                 while flag is False:
26                                                         choose_2 = input('您当前余额不足.继续【Y】/退出【Q】:')
27                                                         if choose_2 == 'Q':
28                                                                 buy_file.close()
29                                                                 with  open('C:/安装包/pycharm/day01/list.txt',
30                                                                            'r') as buy_file1:
31                                                                         buy_read1 = buy_file1.readlines()
32                                                                         for line1 in buy_read1:
33                                                                                 line_list1 = line1.strip('\n').split(
34                                                                                         '\[]')
35                                                                                 print(line_list1)
36                                                                 sys.exit('您已购买以上商品,当前余额:%d。'
37                                                                          '祝您购物愉快,欢迎下次再来。' % money)
38                                                         elif choose_2 == 'Y':
39                                                                 flag = True
40                                                                 break
41                                                         else:
42                                                                 continue
43                                         else:
44                                                 print('您购买了%s,已为您添加到购物车中,当前余额为:%d。' % (buy, balance))
45                                                 flag = False
46                                                 while flag is False:
47                                                         choose_3 = input('继续【Y】/退出【Q】:')
48                                                         if choose_3 == 'Y':
49                                                                 buy_file.write(buy_list + '\n')
50                                                                 money = balance
51                                                                 flag = True
52                                                                 break
53                                                         elif choose_3 == 'Q':
54                                                                 buy_file.write(buy_list + '\n')
55                                                                 buy_file.close()
56                                                                 with open('C:/安装包/pycharm/day01/list.txt',
57                                                                           'r') as buy_file2:
58                                                                         buy_read2 = buy_file2.readlines()
59                                                                         for line2 in buy_read2:
60                                                                                 line_list2 = line2.strip('\n').split(
61                                                                                         '\[]')
62                                                                                 print(line_list2)
63                                                                 sys.exit('您已购买以上商品,当前余额:%d。'
64                                                                          '祝您购物愉快,欢迎下次再来。' % balance)
65                                                         else:
66                                                                 continue
67                                 else:
68                                         flag = False
69                                         while flag is False:
70                                                 choose_1 = input('编号不存在,请选择清单中的编号。继续【Y】/退出【Q】:')
71                                                 if choose_1 == 'Q':
72                                                         buy_file.close()
73                                                         with open('C:/安装包/pycharm/day01/list.txt', 'r') as buy_file3:
74                                                                 buy_read3 = buy_file3.readlines()
75                                                                 for line3 in buy_read3:
76                                                                         line_list3 = line3.strip('\n').split('\[]')
77                                                                         print(line_list3)
78                                                         sys.exit('您已购买以上商品,当前余额:%d。'
79                                                                  '祝您购物愉快,欢迎下次再来!' % money)
80                                                 elif choose_1 == 'Y':
81                                                         flag = True
82                                                         break
83                                                 else:
84                                                         print('Invalid input!!!')
85                                                         continue
86                         elif code == 'Q':
87                                 buy_file.close()
88                                 sys.exit('您已购买以上商品,当前余额:%d。'
89                                                 '祝您购物愉快,欢迎下次再来!' % money)
90                         else:
91                                 print('Invalid input,Please input digit ')
92                                 continue
93         else:
94                 print('Invalid input,Please input digit ')
95                 continue

#####

1.for,while循环;continue 结束本次循环,进入下一次循环,break 跳出整个当前的循环(注意:不是跳出所有的循环)

2.flag = True/False 标志位;bool值做判定

3. 列表 [  ]:可以读写,支持增删改查(和切片)操作;元祖 (  ):只读列表,只支持查(切片)。

 1 列表,(元组只支持查和切片)
 2  3             索引(下标) ,都是从0开始,顾头不顾尾
 4             切片,步长
 5             .count 查某个元素的出现次数
 6             .index 根据内容找其对应的位置
 7             "haidilao ge" in a
 8         增加
 9             a.append() 追加
10             a.insert(index, "内容")
11             a.extend 扩展
12 
13         修改
14             a[index] = "新的值"
15             a[start:end] = [a,b,c]
16 
17         删除
18             remove("内容")
19             pop(index)
20             del a, del a[index]
21             a.clear() 清空
22 
23         排序
24             sort ()
25             reverse()
26 
27         身份判断
28             >>> type(a) is list
29             True
30             >>>
View Code

4.嵌套:列表和元祖里面的元素可以是数值,字符串,列表,元祖,和字典等;元祖虽然无法写,可是元祖里面如果嵌套列表,可以对嵌套的列表执行修改动作

元祖的每个元素指向永远不变,元祖指向一个列表,就不能指向其他的对象,可是指向的这个列表里的元素本身是可以修改的。

5.enumerate()是python的内置函数,在字典上是枚举、列举的意思。对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值;多用于在for循环中得到计数。

 1 a = ['A','B','C','D','E']
 2 for i in enumerate(a):
 3         print(i)
 4 >>>
 5 (0, 'A')
 6 (1, 'B')
 7 (2, 'C')
 8 (3, 'D')
 9 (4, 'E')
10 
11 
12 a = ['A','B','C','D','E']
13 for n,i in enumerate(a,1):   
14 #enumerate还可以接收第二个参数,用于指定元素的序列值
15         print(n,i)
16 >>>
17 1 A
18 2 B
19 3 C
20 4 D
21 5 E
22 
23 a = ['A','B','C','D','E']
24 for n,i in enumerate(a,2):
25         print(n,'####',i)
26 #可以在需要打印的返回值值添加一些自定义内容
27 >>>
28 2 #### A
29 3 #### B
30 4 #### C
31 5 #### D
32 6 #### E
33 
34 #如果要统计文件的行数,可以这样写:这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作
35 count = len(open('filepath', 'r').readlines())
36 
37 #可以利用enumerate():
38 count = 0
39 for index, line in enumerate(open(filepath,'r')): 
40     count += 1
enumerate

6.lne() :返回对象(字符串、列表、元组,字典等)长度或项目个数。len(list);

7.打开文件的模式有:r,只读模式(默认,文件不存在时会报错);w,只写模式【不可读;不存在则创建;存在则删除内容;】;a,追加模式【可读;   不存在则创建;存在则只追加内容;】  "+" 表示可以同时读写某个文件: r+,可读写文件【可读;可写;可追加,文件不存在会报错】;w+,写读;a+,同a    "U"表示在读取时,可以将 \r \n \r\n自动转换成 \n (需要与 r 或 r+ 模式同时使用,文件不存在是会报错):rU;r+U      "b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注):rb;wb;ab。

8.为了避免打开文件后忘记关闭,可以通过with语句管理上下文:with open('C:/安装包/pycharm/day01/list.txt', 'r') as buy_file3:

9.标志位引用时  for flag is/(is not) True/False ;使用 for flag = True会有语法错误。

10. for,while循环时,循环内有break,continue,exit等时 else不生效。

猜你喜欢

转载自www.cnblogs.com/win1387key/p/9038027.html