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

Posted win1387key

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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不生效。

 

以上是关于Python学习笔记2:购物车(for,while循环;列表)的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记(if else流程判断while循环for循环)

python学习笔记二

Python 2.7 学习笔记 条件与循环语句

Python学习笔记(Ⅱ)——循环/选择/函数

python 学习笔记(循环,print的几种写法,操作符)

python基础2------跳出多层循环和购物车程序