py笔记之选择结构
所谓选择结构是啥
这就要从它自己的诞生意义说起了
众所周知,生活在蓝星的代码是一种多变的生物
它变换莫测,结构多样,幼年多呈长条状
而成年代码往往会具有不同的形态
为了使自己能更好的适应大自然的环境
有些代码进化出了不同的分支结构
帮助他们在遇到问题时做出选择
okok
上面这句话就是选择结构的本质
但是这样看肯定不好理解
所以我们画一张图来理解一下
有了这个结构咱的代码就不是一根筋了
可以处理更多分支的情况了。
我们来分析两个问题吧
第一个是电车问题
这个就是一个典型的选择情景嘛,这个比较简单
一个选择,两种分支
画出流程图来就是这样的
写出代码来就是这样的
q=input() #输入数据 if q=='UP': #如果选择电车往上走 print("1dead") #输出(挂了一个) elif q=='DOWN': #如果选择电车往下走 print("5dead") #输出(挂了5个)
看完这个开胃菜,我们来分析一个更有意思的
最近的菜市场,流传着的“华强买瓜”的传说
今天就从瓜摊老板的视角来分析一下如何在华强的刺杀中活下来
众所周知刘华强是故意找茬的
所以整个事件有一个清晰的行动脉络
画出来大概是这样的
print("有一个人前来买瓜") print("问瓜的价格") print("两块钱一斤") print("金子做的?") print("现在就这个价") print("保熟吗") print("我能卖你生瓜蛋子?") print("我问你保熟吗") print("你是故意找茬是不是啊,你要不要吧") print("熟肯定要啊,不熟怎么办") print("不熟自己吃,15斤30块") print("不够十五斤") print("你要不要吧") print("发现吸铁石并劈瓜") print("情绪激动拼刀") print("卒")
我们可以发现由于瓜摊老板不懂选择结构导致做事一根筋从而被华强捅死
我们今天就帮一下他
首先从价格开始
如果老板把价格拉低会怎样
print("有一个人前来买瓜") print("问瓜的价格") q=input("输入选择\n老板不压价选A,压选B\n") if q=='B': print("两毛钱一斤") elif q=='A': print("两块钱一斤") print("金子做的?") print("现在就这个价") print("保熟吗") print("我能卖你生瓜蛋子?") print("我问你保熟吗") print("你是故意找茬是不是啊,你要不要吧") print("熟肯定要啊,不熟怎么办") print("不熟自己吃")
print("15斤30块") print("不够十五斤") print("你要不要吧") print("发现吸铁石并劈瓜") print("情绪激动拼刀") print("卒")
显而易见,由于刘华强是去找茬的,所以压低价格并不能改变什么
所以瓜摊老板还要学的再聪明些
在刘华强第二次询问保熟与否的时候
直接怂
print("有一个人前来买瓜") print("问瓜的价格") q=input("输入选择\n老板不压价选A,压选B\n") if q=='B': print("两毛钱一斤") elif q=='A': print("两块钱一斤") print("金子做的?") print("现在就这个价") print("保熟吗") print("我能卖你生瓜蛋子?") print("我问你保熟吗") q=input("输入选择\n老板嚣张选A,秒怂选B\n") if q=='B': print("保熟,一定保熟") print("给我挑一个") elif q=='A': print("你是故意找茬是不是啊,你要不要吧") print("熟肯定要啊,不熟怎么办") print("不熟自己吃") print("15斤30块") print("不够十五斤") print("你要不要吧") print("发现吸铁石并劈瓜") print("情绪激动拼刀") print("卒")
虽然我们的老板已经很怂了,但是因为刘华强的故意找茬加上自己的吸铁石,还是无法扭转命运
所以我们在开头给老板一个选择,让他把吸铁石卸下来