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

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不生效。

原文地址:https://www.cnblogs.com/win1387key/p/9038027.html

时间: 2024-11-08 21:30:19

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

python学习笔记之条件分支和循环

1.python if条件分支语法 if 条件: 条件为真,执行的操作 else: 条件为假,执行的操作 if 条件: 条件为真,执行的操作 elif: 条件为假,执行的操作 else: 条件为假执行的操作 #如下两种语法的区别是当第一个if条件为真时,其他的if或else条件还是会继续执行,如果使用elif分支,则不会继续执行(消耗机器的cpu不同) 2.python while循环语法 while 条件: 条件为真,执行的操作 补充知识:random模块生成随机数 #randint()  模

Python学习笔记2:构造序列:列表推导和生成器表达式

欢迎访问个人网站:www.comingnext.cn 1. 关于Python内置序列类型 a. 按能否存放不同类型的数据区分 容器序列: list.tuple 和collections.deque这些序列能存放不同类型的数据 扁平序列: str.bytes.bytearray.memoryview和array.array,这类序列只能容纳一种类型. b. 按能否被修改来分类 可变序列: list.bytearray.array.array.collections.deque 和 memoryvi

Python学习笔记_Day2_数据类型及数据结构(列表和元组)

1. 数据类型 2. 数据结构 通过某种方式(例如对元素进行编号)组织在一起的数据元素的集合.最基本的数据结构是序列(Sequence).序列中的每个元素被分配一个序列号--即元素的位置,被称为索引.索引从0开始. Python中6中内建序列: list列表 (可以修改) tuple元组 (不可以修改,指向不可改变) unicode字符串 buffer对象 xrange对象 通用序列操作:indexing索引, slicing分片, adding加, multiplying乘,成员资格 索引:从

python学习笔记七:条件&循环语句

1.print/import更多信息 print打印多个表达式,使用逗号隔开 >>> print 'Age:',42 Age: 42   #注意个结果之间有一个空格符 import:从模块导入函数 import 模块 from 模块 import 函数 from 模块 import * 如果两个模块都有open函数的时候, 1)使用下面方法使用: module1.open()... module2.open()... 2)语句末尾增加as子句 >>> import ma

python基础教程_学习笔记7:条件、循环、其它语句

条件.循环.其它语句 print和import 随着更加深入地学习python,可能会出现这种感觉:有些自以为已经掌握的知识点,还隐藏着一些让人惊讶的特性. 使用逗号输出 打印多个表达式,只要将这些表达式用逗号隔开即可: >>> print "age:",28 age: 28 参数之间都插入了一个空格符. 如果在结尾加上逗号,那么接下来的语句会与前一条语句在同一行打印: print "Hello,", print "World!"

OpenCV之Python学习笔记

OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书<OpenCV Computer Vision with Python>,于是就看一遍,顺便把自己掌握的东西整合一下,写成学习笔记了.更需要的朋友参考. 阅读须知: 本文不是纯粹的译文,只是比较贴近原文的笔记:         请设法购买到出版社出版的书,支持正版. 从书名就能看出来本书是介绍在Pytho

Python学习笔记--未经排版

Python 学习笔记 Python中如何做到Print() 不换行 答:Print("输出内容",end='不换行的分隔内容'),其中end=后面为2个单引号 注:在Python 2.x中,Print "输出内容", 即在输出内容后加一逗号 Python中 is 和 == 的区别 答:Python中的对象包含三要素:id.type.value 其中id用来唯一标识一个对象,type标识对象的类型,value是对象的值 is判断的是a对象是否就是b对象,是通过id来

python 学习笔记 6 -- 异常处理

当你的程序中出现某些 异常的 状况的时候,异常就发生了.例如,当你想要读某个文件的时候,而那个文件不存在.或者在程序运行的时候,你不小心把它删除了. 那么如果你是在IDE中运行,一个错误发生,异常会被打引出来,这便是未处理异常:当异常发生时,如果没有代码去关注和处理它,这些异常会传给置在Python中的缺省处理,他会输出一些调试信息并且终止运行.如果是在IDE中,这不是什么大事,但是如果是Python程序运行中的异常,它会导致整个程序终止,对于这些情况可以使用异常来处理. 1.try..exce

python学习笔记5:python读写文件

python学习笔记5:python读写文件 一.文件的打开模式 1.打开文件 1) f=open('D:\\a.txt','w') 第一个参数是文件的路径,如果只写文件的名字,默认是在当前执行目录下的文件:第二个参数是文件的打开模式 这种方式打开文件,在使用完了之后一定要记得,关闭文件: f.close() 2) with open('D:\\a.txt','w') as f 这种方式打开文件,文件在使用完后会自动关闭文件,不需要close  2. 文件的打开模式 总的来说,文件的打开模式有三

python学习笔记2:字符串

python学习笔记2:字符串 总结:字符串是不可变变量,不能通过下标修改其值 字符串的方法都不会改变字符串原来的值,而是新生成一个字符串 一.3种写法--单引号,双引号,三引号 二.下标和切片 下标:字符串里每个字符所在的位置,也叫索引.strname[n] ,表示strname这个字符串的下标为n对应的字符的值. 切片:取字符串一个下标区间的值. strname[n:m],表示strname这个字符串,下标n到m这个区间内的值,注意n:m取值,顾前不顾后. 三.字符串遍历 in 和not i