![Python程序设计教程(第2版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/531/34752531/b_34752531.jpg)
上QQ阅读APP看书,第一时间看更新
3.1.3 多分支if/elif/else语句
多分支if/elif/else语句的语法形式如下所示:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image897.jpg?sign=1739363608-cJDqtPPOourV6Kiz7tjXF2mRNuoq5Hg4-0-46ef4264041630de471f21ba6d50c075)
多分支语句的执行流程如图3.3所示。
if/elif/else这种多分支结构先判断条件表达式1的真假:如果条件表达式1的结果为真(包括非零、非空),则执行语句体1中的操作;如果条件表达式1的结果为假(包括零、空),则继续判断条件表达式2的真假;如果条件表达式2的结果为真(包括非零、非空),则执行语句体2中的操作;如果条件表达式2的结果为假(包括零、空),则继续判断表达式3的真假;……从上到下依次判断条件表达式,找到第一个为真的条件表达式,就执行该条件表达式下的语句体,不再判断剩余的条件表达式。如果所有条件表达式均为假,则执行else后面的语句体;如果此时没有else语句体,则不执行任何操作。任何一个分支的语句体执行后,直接结束该分支语句。
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image899.jpg?sign=1739363608-Adk7HLnJWo3zlmaZ1lOh2o1fOu31857s-0-0b69302c1624eef4c22774ed9221e0be)
图3.3 多分支if/elif/else语句流程图
语句体1,语句体2,…,语句体n,既可以包含多条语句,也可以只由一条语句组成。
【例3-4】 从键盘输入标准价格和订货量。根据订货量、价格给以不同的折扣,计算应付货款(应付货款=订货量×标准价格×(1-折扣率))。订货量300以下,没有折扣;订货量300及以上,500以下,折扣率为3%;订货量500及以上,1000以下,折扣率为5%;订货量1000及以上,2000以下,折扣率为8%;订货量2000及以上,折扣率为10%。
分析:键盘输入标准价格price、订货量Quantity,依照上述标准进行判断得到折扣率。注意,还需要考虑订货量和标准价格输入小于0时的错误情况。
程序代码:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image900.jpg?sign=1739363608-LzkYt9B4h8RYChRm8shnTKKTuJdkwbkw-0-953249eb1b38bc4e05ad41560bdded2b)
程序第一次运行结果:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image901.jpg?sign=1739363608-wOSu9D5ZnaqVQAQVvLQAP1TAqTbiZBlt-0-39c20025fa540fda562656291cc30594)
程序第二次运行结果:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image902.jpg?sign=1739363608-mRJZkfz19AevpKrjgaR3bG7wI9Qum2EB-0-9b76364f4bece2e2b9c84923217a08c8)
程序第三次运行结果:
![](https://epubservercos.yuewen.com/8599B6/18562449808364906/epubprivate/OEBPS/Images/image903.jpg?sign=1739363608-aZavkshRlw9BE2itTv1Si5EYUuGRSAtw-0-d726358ff72092d1443c9f481576fc00)
思考:需要输入多少个标准价格和订货量组成的测试数据,才能验证程序的每个分支都是正确的?