例子3:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?
求解分析:
分成6段来求解。多分支结构程序的典型。
p1 | 0~10 | 0.1 |
p2 | 10~20 | 0.075 |
p3 | 20~40 | 0.05 |
p4 | 40~60 | 0.03 |
p5 | 60~100 | 0.015 |
p6 | 100~ | 0.01 |
i | 0~10 | 10~20 | 20~40 | 40~60 | 60~100 | >100 |
b0 | 0 | |||||
b1 | (i-0)*p1 | 1=(20-10)*0.1 | 1=(20-10)*0.1 | 1=(20-10)*0.1 | 1=(20-10)*0.1 | 1=(20-10)*0.1 |
b2 | (i-10)*p2 | 0.75=(20-10)*0.075 | 0.75=(20-10)*0.075 | 0.75=(20-10)*0.075 | 0.75=(20-10)*0.075 | |
b3 | (i-20)*p3 | 1=(40-20)*0.05 | 1=(40-20)*0.05 | 1=(40-20)*0.05 | ||
b4 | (i-40)*p4 | 1.2=(60-40)*0.03 | 1.2=(60-40)*0.03 | |||
b5 | (i-60)*p5 | 0.9=(100-60)*0.015 | ||||
(i-100)*p6 |
代码如下:
测试结果:
提问,如果企业出现亏损怎么处理?try/except语句,要了解一下。
——————————————————————————————————
例子4:输入某年某月某日,判断这一天是这一年的第几天?
求解分析:考虑特别年份,闰年2月份有29天。
list1=[31,29,31,30,31,30,31,31,30,31,30,31]#闰年
list2=[31,28,31,30,31,30,31,31,30,31,30,31]#平年
平年和闰年的判断方法:
一、普通年被4整除且不能被100整除的为闰年。否则为平年。(如2004年就是闰年,1900年不是闰年)
二、世纪年能被400整除的是闰年。否则为平年。(如2000年是闰年,1900年不是闰年)
代码如下:
运行测试:
用try/except测试了好久,发现对日期格式判断不好,只好采用笨办法,一个一个来判断。
可能还会有不足,等以后有时间,对于日期的判断专门开贴探索一下。
——————————————————————————————————
例子5:输入三个整数x,y,z,请把这三个数由小到大输出。
方法1,采用比较大小的办法,如果x>y,则值进行交换,同理比较。
代码如下:
方法2,采用list.sort()排序
代码如下:
运行测试:
跟学生讲的话,我推荐方法1,这是一个思维的过程,用图示法也容易讲,学生也容易懂。