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 >>>
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
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循环)