三层循环基本演示:

break_flag = False                                                     #标记1
break_flag2 = False #标记2
break_flag3 = False #标记3
while not break_flag: #因为标记是False,所以是 not break_flag成立循环
print("the first layer is running...")
option=input(">>>[b:back, q:quit,c:continue]:").strip() #让买家选择,strip()去除输入时空格
if option == "b":
break_flag2 = True #第一层,没得退,所以break_flag2=true,不断打印'the first...'
elif option == "q":
break_flag = True #选择退出,把循环条件改为true,就能退出循环
else:
break_flag3,break_flag2 = False,False #既不是b,也不是q,则第二三层循环条件继续成立,往下走
while not (break_flag or break_flag2): #进入第二层,那么第一层循环条件必须是false,q时随时可以退出
print("in layer two...")
option=input(">>>[b:back, q:quit,c:continue]:").strip()
if option == "b":
break_flag2 = True #退到第一层,因为else:break_flag3,break_flag2 = False,False
elif option == "q":
break_flag = True #退出整个循环
else:
break_flag2,break_flag3 = False,False #这里可以实现第二层第三层的切换 while not(break_flag or break_flag2 or break_flag3): #与上面同理
print("in layer three...")
option=input(">>>[b:back, q:quit,c:continue]:").strip()
if option == "b":
break_flag3 = True
elif option == "q":
break_flag = True

文件内容查找和替换:

import os                                                       #os操作系统模块
f = open("test.txt","r") #旧文件读模式
f_new = open("text_new.txt","w") #新文件写模式
for line in f: #遍历旧文件
if line.startswith("alex"): #找到要替换的行
new_line = line.replace("alex","ALEX LI....") #替换好赋值给新行
f_new.write(new_line) #把新行写到新文件
else:
f_new.write(line) #如果找不到,则把原文写到新文件
f.close()
f_new.close()
os.rename("test.txt","test.txt.bak") #把旧文件改名为back up
os.rename("text_new.txt","test.txt") #新文件覆盖旧文件 '''
f = open("test.txt","r+")
for line in f:
if line.startswith("alex"):
new_line = line.replace("alex","ALEX LI")
print("current pos:",f.tell()) #显示指针的位置
f.seek(37) #把指针指到该位置
f.write(new_line)
break
f.close()
'''

购物车基本演示:

product_list = [
('Iphone6sPlus', 6888),
('MacBook', 11300),
('CookBook', 50),
('Coffee', 30),
('KindleFire', 1200),
('NB', 800),
]
user_asset = 10000 break_flag = False
shopping_cart = []
paid_list = []
while not break_flag:
for index,i in enumerate(product_list):
print(index,i[0],i[1])
user_choice = raw_input("[quit,check,pay]What do you want to buy?:").strip()
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice < len(product_list) and user_choice > -1:
shopping_cart.append(product_list[user_choice])
print("\033[32;1mJust added [%s,%s] in to your shopping cart\033[0m" %(product_list[user_choice]))
else:
print("\033[31;1mProduct [%s] is not exist!\033[0m")
elif user_choice == "check":
total_price = 0
print("\033[34;1mYou have bought below products...:\033[0m")
for index,p in enumerate(shopping_cart):
print(index,p)
total_price += p[1]
print("Total Price:\033[31;1m[%s]\033[0m" % total_price)
elif user_choice == "pay":
total_price = 0
print("\033[34;1mYou have bought below products...:\033[0m")
for index,p in enumerate(shopping_cart):
print(index,p)
total_price += p[1]
print("Total Price:\033[31;1m[%s]\033[0m" % total_price)
pay_confirm = raw_input("\033[31;1mGoing to pay?\033[0m").strip()
if pay_confirm == "y":
money_left = user_asset - total_price
if money_left > 0:
paid_list += shopping_cart
shopping_cart = []
user_asset = money_left
print("\033[31;1mYou have just paid[%s], your current balance is [%s]\033[0m" %(total_price,money_left))
go_confirm = raw_input("press any key to continue shopping!").strip() else:
print("\033[31;1mYour current balance is [%s], still need [%s] to pay the whole deal!\033[0m" %(user_asset,total_price-user_asset)) elif user_choice == "quit":
if shopping_cart:
print("You still have some product haven't paid yet!")
else:
print("Thanks for comming!")
break_flag = True

  

python基础:三层循环的更多相关文章

  1. 第五篇:python基础之循环结构以及列表

    python基础之循环结构以及列表   python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.pyth ...

  2. Python 基础 while 循环

    Python 基础 while 循环 while 循环 在生活中,我们遇到过循环的事情吧?比如循环听歌.在程序中,也是存才的,这就是流程控制语句 while 基本循环 while 条件: # 循环体 ...

  3. python基础之循环结构以及列表

    python基础之编译器选择,循环结构,列表 本节内容 python IDE的选择 字符串的格式化输出 数据类型 循环结构 列表 简单购物车的编写 1.python IDE的选择 IDE的全称叫做集成 ...

  4. python基础(六)循环

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进来表示程序 ...

  5. python基础之循环

    一.while循环 如果条件成立(true),重复执行相同操作,条件不符合,跳出循环 while   循环条件: 循环操作 (1)while循环示例 例:输入王晓明5门课程的考试成绩,计算平均成绩 i ...

  6. python基础之循环语句

    一.if条件语句: 语法: 1.if单分支(单重条件判断) if expression: expr_true_suite 注释:expession为真执行代码expr_true_suite if单分支 ...

  7. python基础之循环与迭代器

    循环 python 循环语句有for循环和while循环. while循环while循环语法 while 判断条件: 语句 #while循环示例 i = 0 while i < 10: i += ...

  8. Python基础->for循环、字符串以及元组

    python流程控制>for循环.字符串以及元组 学习有关序列的思想.序列:一组有顺序的东西.所有的序列都是由元素组成的,序列中的元素位置是从0开始编号的,最后一个元素的位置是它长度减一. fo ...

  9. Python 基础06 循环

    循环用于重复执行一些程序块.从上一讲的选择结构,我们已经看到了如何用缩进来表示程序块的隶属关系. 循环也会用到类似的写法. for 循环 for 循环需要预先设定好循环的次数(n) 然后执行隶属于fo ...

随机推荐

  1. SAO总结

    Application Structure Web App-------------------------------------------------------------->Serve ...

  2. 激活office 2010

    在激活office 2010版本时有的同学可能会用到“mini-KMS_Activator”这个工具,其实这个工具激活成功率并不算高,我就没激活成功.然后就是了另一款自动激活工具“Office 201 ...

  3. HANDLER命令与实现

    MySQL“自古以来”都有一个神秘的HANDLER命令,而此命令非SQL标准语法,可以降低优化器对于SQL语句的解析与优化开销,从而提升查询性能.看到这里,可能有小伙伴不淡定了,这么好的东西为啥没广泛 ...

  4. RAID设备

    RAID(Redundant Array of Independent Disk),独立冗余磁盘阵列(通常简称磁盘阵列).磁盘阵列的实质是将多个磁盘通过RAID控制器组合在一起,形成一个新的磁盘.这个 ...

  5. Domain Driven Design and Development In Practice--转载

    原文地址:http://www.infoq.com/articles/ddd-in-practice Background Domain Driven Design (DDD) is about ma ...

  6. Android 自定义组合控件

    1, you need to add this kind of code to the constructors of your custom view which must extend ViewG ...

  7. iOS网络监测如何区分2、3、4G?

    你可以在Github下载这个Demo 首先,引入系统的Reachability类,不知道怎么引入的话,在Xcode,按下shift+command+0,搜索Reachability,看到图中所选的工程 ...

  8. Java Collection集合接口

    Collection接口是赖以集合框架建立的基础.它声明的所有集合的核心方法.这些方法概括于下表中. 因为所有集合都要实现Collection,熟悉它的方法是对框架有清晰的认识很有必要.这几种方法都可 ...

  9. android中的一些问题

    1. Android dvm的进程和Linux的进程, 应用程序的进程是否为同一个概念 DVM指dalivk的虚拟机.每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚 ...

  10. IOS设计模式六大法则

    设计模式的六大原则 单一职责原则 定义:不要存在多于一个导致类变更的原因.通俗的说,即一个类只负责一项职责 问题由来:类T负责两个不同的职责:职责P1,职责P2.当由于职责P1需求发生改变而需要修改类 ...