选择结构
选择:判断
条件:真|假
代码块:要执行的代码
基本语法:单分支选择结构
if 条件:
条件为真要执行的代码
选择结构进阶:双分支选择结构
if 条件:
条件为真 执行的代码块
else: 否则
条件为假 执行的代码块
双分支简化语法:
结果1 if 条件 else 结果2
条件为真输出结果1,否则输出结果2
“出门” if True else “在家” -> 出门
“出门” if False else “在家” -> 在家
简化语法中条件为真输出左边的结果;否则输出右边的结构
扩展:其他语言中~有类似的语法,三元操作符 :条件?结果1:结果2
python中没有这样三元操作符的处理
多分支语法结构
基础语法
if 条件1:
条件1为真执行的代码
elif 条件2:
条件2为真执行的代码
elif 条件n:
条件n为真执行的代码
else:
所有条件都不为真,才会执行的代码
pro01 展示界面层级跳转
[电子商城登录界面、电子商城首页界面、商品列表界面、游戏界面]
程序运行:展示电子商城登录界面
用户登录|注册
登录成功-> 展示电子商城首页界面
用户输入选项[进入购物超市|进入休闲小游戏]
进入购物超市->展示商品列表界面
进入休闲小游戏-> 进入游戏选项界面
有了选择结构:命令行商城界面菜单,可以实现从上向下的跳转
PS备注:为了让电子商城信息更加友好,我们要调用系统的cls清屏命令,清除多余显示数据
引入一个系统模块import os 和操作系统交互的模块
执行系统命令:os.system(‘cls’)
退出程序:要求主动退出程序,要使用系统模块
引入一个系统模块:import sys 和python解释器交互的模块
退出系统:sys.exit(1) 主动退出程序
pro01 电子商城登录界面跳转购物界面
#coding:utf-8
import os
import time
# 展示商城登录界面
os.system('cls')
print("\t\tPY1807A电子商城")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
print("\t\t1.用户登录")
print("\t\t2.用户注册")
print("\t\t3.退出系统")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
# 提示用户输入选项
choice = input("请输入您的选项:")
if choice == "1":
# 用户登录 TODOimport sys
# 展示首页菜单
os.system('cls')
print("\t\tPY1807A电子商城")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
print("\t\t1.进入购物超市")
print("\t\t2.休闲小游戏")
print("\t\t3.返回登录菜单")
print("\t\t4. 退出系统")
print("~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~ * ~")
# 提示用户输入选项
choice = input("请输入您的选项:")
print("系统正在升级,功能正在完善中。")
elif choice == "2":
# 用户注册
print("功能正在升级中...")
elif choice == "3":
# 退出系统
print("系统即将退出>>>>3......")
time.sleep(1)
print("系统即将退出>>>>2....")
time.sleep(1)
print("系统即将退出>>>>1..")
time.sleep(1)
print("谢谢惠顾,欢迎下次光临")
sys.exit(1)
else:
# 没有这个选项
print("您输入的选项有误,请检查!")
print("系统功能完善中>>>>>>>>>>>")
pro02 老虎棒子鸡的小游戏
#coding:utf-8
#时间延时模块,随机数字模块
import time
import random
#用户登录界面
print("^*^"*30)
print("^\t\t欢迎进入游戏界面")
print("^\t\t1.我们进行的是老虎棒子鸡的游戏(老虎=0,棒子=1,鸡子=2,虫子=3)")
print("^\t\t2.游戏规则:老虎吃鸡子,鸡子吃虫子,棒子打老虎,虫子吃棒子")
print("^\t\t3.游戏主要是人机对战,电脑和玩家轮流出招,获胜可获得积分")
print("^\t\t4.请根据提示进行游戏,祝您游戏愉快")
print("^*^"*30)
#电脑出招
time.sleep(3)
print("电脑正在苦思冥想,请稍候...")
print("电脑出招中 3.....")
time.sleep(1)
print("电脑出招中 2....")
time.sleep(1)
print("电脑出招中 1...")
time.sleep(1)
computer = random.randint(0,3)
print("电脑出招完成,请玩家出招")
#玩家出招
player = input("请玩家出招(老虎=0,棒子=1,鸡子=2,虫子=3):")
#判断电脑和玩家的出招
print("\t\t正在比较玩家出招结果")
time.sleep(5)
if (player == 0 and computer == 2) \
or(player == 1 and computer == 0)\
or(player == 2 and computer == 3)\
or(player == 3 and computer == 1):
print("victory,恭喜你战胜了一位强大的敌人,获得的积分马上送到您的账户上")
elif (player == 0 and computer == 3)\
or(player == 1 and computer == 2)\
or(player == 3 and computer == 0)\
or(player == 2 and computer == 1):
print("draw,你们平局啦,加油,战胜它")
else:
print("defeat,不好意思,你输了,乖乖掏出你的积分吧")
#玩家查看电脑出招结果
time.sleep(2)
print("~~~"*30)
print("\t\t想要查看你的对手出的什么吗")
print("\t\t输入我想静静即可查看结果:")
print("~~~"*30)
player = input("输入(我想静静)即可查看结果")
if player == "我想静静":
#computer = random.randint(0,3)
if computer ==0:
print("对手的出招:老虎")
elif computer ==1:
print("对手的出招:棒子")
elif computer == 2:
print("对手的出招:鸡子")
elif computer == 3:
print("对手的出招:虫子")
else:
print("输入错误")
界面跳转
1.商城界面的展示:
print()展示信息
清除命令行窗口多余的展示信息:import os ; os.system(‘cls’)
主动退出程序:import sys ; sys.exit(1)
延时操作:import time; time.sleep(1)
界面跳转:选择结构:if多分支结构
2.老虎棒子鸡子游戏
print()展示信息
选择结构:if 多分支和 if 的嵌套使用
清除命令行窗口多余的展示信息:import os ; os.system(‘cls’)
延时操作:import time; time.sleep(1)
在查看电脑出招的程序中使用了 if 的嵌套结构
注意判断是字符串还是整数或其他
我遇到的BUG
1.有好几次遇到同一个问题,就是字符串在不同的场景下的转换,有时候需要变换到int,根据前面的后面的输入内容,决定是
str和int或者其他.......
2.还有就是缩进的问题,有的if地方需要缩进,缩进要根据上下的输入来看一下是缩进几个字符。
3.注意事件发生的逻辑顺序,调整好if和elif的用法
网友评论