python练习 day1

 

1.有四个数字,1,2,3,4能够组成多少个互不相同且无重复数字的三位数,各是多少

total=0
for i in range(1,5):
    for j in range(1,5):
        for k in range(1,5):
            if (i!=j)&(j!=k)&(k!=i):
                    print(i,j,k)
                    total=total+1
    print('不重复的三位数总共有:',total)

 2.企业发放的奖⾦根据利润提成。利润(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,求应发放奖⾦总数?

①,用一个level一个level地计算profit

I=int(input('请输入当月利润:'))
if I<=100000:
    profit=I*0.1
if 100000<I<=200000:
    profit=100000*0.1+(I-100000)*0.075
if 200000<I<=400000:
    profit=100000*0.1+100000*0.075+(I-200000)*0.05
if 400000<I<=600000:
    profit = 100000 * 0.1 + 100000 * 0.075 + 200000*0.05+(I-400000)*0.03
if 600000<I<=1000000:
    profit= 100000 * 0.1 + 100000 * 0.075 + 200000*0.05+200000*0.03+(I-600000)*0.015
if 100000<I:
    profit = 100000 * 0.1 + 100000 * 0.075 + 200000 * 0.05 + 200000 * 0.03 + \
             400000 * 0.015+(I-1000000)*0.01
print('奖金为:',profit)

 ②,用for循环简化流程

profit=int(input('请输入当月利润:'))
level=[100000,100000,200000,200000,400000]
rate=[0.1,0.075,0.05,0.03,0.015,0.01]
bonus=0
for i in range(len(level)):
    if profit<=level[i]:
        bonus+=profit*rate[i]
        profit=0
        break
    else:
        bonus+=level[i]*rate[i]
        profit-=level[i]
bonus+=profit*rate[-1] #对于<=100万时,这一步应该是不能发生的,因此在break前加一步profit=0的操作
print(bonus)

 3.⼀个整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?

#第一步要找到循环的上限,即两个相邻的完全平方数之差大于168时显然应该结束了
n=0
while (n+1)**2-n**2<=168:
    n+=1
print(n+1)
#结果显示在n=85时结束,86^2-85^2>168

#完整过程
n=0
while (n+1)**2-n**2<=168:
    n+=1

for i in range(n**2):
    if (i**0.5)%1==False and ((i+168)**0.5)%1==False :
        print(i-100)

(一开始对i做了i>100的限制,实际上是不需要的,整数包括负数)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值