if嵌套
最后,终于来到了扫码支付阶段,其实扫码支付的发展并不是一帆风顺的,2014年,疯抢微信红包,扫红码下载应用送红包,为扫码支付奠定用户基础,紧接着央行就叫停了二维码支付,原因是信息安全和资金安全,2016年支付宝推出扫红码送红包,二维码支付地位重获承认,市场井喷,此后,扫码支付前景一片光明。
由此可以看出,扫码支付中我们最关心的还是安全问题,为此,微信和支付宝也提供了各种保护措施,常见的就有单笔限额,频繁付款限制,额度限制等,用来更好的保障消费者的支付安全。
在具体的支付场景中,最常见的就是大额验证保护机制,如下支付场景
支付限额规则
1.如果支付金额大于500
1).如果支付密码正确,支付成功
2).否则,支付失败
2.如果支付金额不超过500
1).如果开启了小额免密验证,支付成功
2).如果没有开启小额免密验证
1).如果支付密码正确,支付成功
2).如果支付密码错误,支付失败
复制代码
像这种如果底下还有如果(即条件里还套条件)的情况,我们如何用Python把上面的规则写出来,并得出评价呢?
答案就是——嵌套条件。
if嵌套的应用场景,简单来讲就是:在基础条件满足的情况下,再在基础条件底下增加额外的条件判断。
就像上面的基础条件是500元,500元以上必须输入密码且密码正确才会支付成功,500元以下检测是否开启小额支付,如果开启了,不需要输入密码就直接支付成功,如果没开启,需要输入支付密码且密码正确才会支付成功。
因此,支付的场景用代码表示,应该用if嵌套来完成代码:
# 正确密码为123456
# 密码赋值为123456
password='123456'
# 支付金额赋值为265
paymoney=265
# 免密支付默认开启
check=false
# 条件:如果支付金额大于500
if paymoney > 500:
# 条件:如果输入密码为123456
if password=='123456':
print('大金额支付成功')
# 条件:密码不是123456
else:
print('密码错误,大金额支付失败')
# 条件:支付金额小于500
else:
# 条件:如果开启了免密支付
if check:
print('小金额免密支付成功')
# 条件:如果没有开启免密支付
else:
# 条件:如果密码正确
if password == '123456':
print('小金额支付成功')
# 条件:如果密码错误
else:
print('密码错误,小金额支付失败')
复制代码
结果是小金额支付成功,你能看出程序的执行流程吗?下面我们一块来分析以下
if嵌套的执行循序
首先,我们先从整体总览一下,这段支付验证规则的代码,总共分为四部分【赋值、if、else、print()
】,两个大代码组。
并且,在代码组1的if条件和代码组2的else的条件下,又包含了条件判断命令if...else...,在代码组2的的else条件下又包含了if...else.
那么,这种嵌套命令我们要如何理解呢?
缩进相同的命令处于同一个等级,第一步,计算机就要按顺序一条一条地执行命令。
那么计算机的执行顺序是:
如何写嵌套代码
if嵌套由于涉及多个条件判断,并且是条件套条件的判断,为了逻辑清楚,我们可采用“由外而内,分而治之”的方法写if嵌套。
有一堆快递,要分别运往北京,上海,广州的某个小区。那么我们该如何对快递按地址进行分类呢?
第一步,我们对快递按北上广进行分类。
模拟代码是这样滴。
address='北京'
if address=='北京':
print('北京中心')
elif address=='上海':
print('上海中心')
elif address=='广州':
print('广州中心')
else:
print('地址无效')
复制代码
第二步,我们对到达北京中心的快递按区进行分类。
模拟代码是这样的。
if address=='北京':
if district=='昌平区':
print('昌平区中心')
elif district=='顺义区':
print('顺义区中心')
elif district=='通州区':
print('通州区中心')
else:
print('其他区')
复制代码
这时候我们会发现,我们只需要对到达北京的快递进一步捡练就可以。其实这是一种编程思想,就是分而治之的思想,将复杂的问题分为若干个小问题进行处理,问题就会变得非常简单。
第三步,假设快递到了昌平区,我们就可以进一步按街道进行捡练,最后按小区进行分发就可以。
嵌套是不是好玩又实用,不过还是要提醒一下,一定不要忘了缩进哦。
最后的最后,我们来总结一下知识点: