每天学一点之Python100例(1~2)

每天学一点,形成一种知识复利

问题1:有1、2、3、4个数字,能组成多少个互相不同且无重复的三位数?都是多少?
分析:三位数分为百位,十位,个位;如果不考虑互不相同且无重复,那么每一位有4种可能,即
百位:1、2、3、4;十位:1、2、3、4;个位:1、2、3、4,这种情况有64种情况。
互不相同且无重复:假设百位,十位,个位分别用a、b、c代表即a != b and a != c and b != c
都是多少:通过print(a,b,c)打印出来
demoCode:
i = 0
for a in range(1, 5):
for b in range(1, 5):
for c in range(1, 5):
if (a != b and a != c and b != c):
i += 1
print(a,b,c)
print("total number =",i)


问题2:企业发放的奖金根据利润提成。利润低于或等于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%提成,从键盘输入当月利润,求应发放奖金总数?
分析:看问题得知为奖金提成问题,分为低于10万,10~20万,20~40万,40~60万,60~100万,高于100万;总共分为6个区间。每个区间的提成比例不同,咋一看可以看出是if-elif-else的问题;但是我们看:低于10万-->10%、10~20万-->7.5%、20~40万-->5%、40~60万-->3%、60~100万-->1.5%、高于100万-->1% 一一映射的关系;我可以想到python里的list用法,将一个list映射到另一个list。
从键盘输入-->input()函数使用
demoCode:
list_profits = [1000000, 600000, 400000, 200000, 100000, 0]
list_rate = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]

def getReward(money):
returnReward = 0
for i in range(0, 6):
if(money > list_profits[i]):
returnReward += (money - list_profits[i]) * list_rate[i]
money = list_profits[i]
print(returnReward)

money_input = int(input())
getReward(money_input)


猜你喜欢

转载自blog.csdn.net/shishanqing920610/article/details/80673196