python基础训练 day1

python基础训练 day1

py萌新,今天开始坚持打卡!

  • 第一题
# 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?

首先的想法是穷举法,把所有的可能性列举出来,然后在通过条件判别之类的吧不符合的剔除掉,实现打印输出。

上代码!

for i in range(1, 5):
    for j in range(1, 5):
        for k in range(1, 5):
            if i != j and j != k and i != k:
                print(i, j, k)

三个循环代表个位十位百位,最后判断一下ijk的数值,不相等的时候输出。

# 运行结果(相信我阿sir!不是在水篇幅)
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 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,求应发放奖金总数?

多种情况,立马反应应该是用多重判断,直接上手。

try:
    you_input = int(input('请输入当月利润'))
except:
    print('有错误!')

if you_input <= 100000:
    print(f'计提奖金¥{you_input * 0.1}')
elif 100000 < you_input <= 200000:
    print(f'计提奖金¥{10000 + (you_input - 100000) * 0.075}')
elif 200000 < you_input <= 400000:
    print(f'计提奖金¥{17500 + (you_input - 200000) * 0.05}')
elif 400000 < you_input <= 600000:
    print(f'计提奖金¥{27500 + (you_input - 400000) * 0.03}')
elif 600000 < you_input <= 1000000:
    print(f'计提奖金¥{33500 + (you_input - 600000) * 0.015}')
elif 1000000 < you_input:
    print(f'计提奖金¥{39500 + (you_input - 1000000) * 0.01}')

if else 疯狂copy

# 运行结果
请输入当月利润560000
计提奖金¥32300.0

看完答案发现了新世界啊,还可以这样,再回头看自己敲得好像是有那么一点点繁琐了嗷,立马重敲了一遍。

you_input = int(input('请输入利润'))
money = [1000000, 600000, 400000, 200000, 100000, 0] # 巧妙,妙不可言
rate = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
result = 0
for i in range(0, 6):  # 建立对于列表的索引
    if you_input > money[i]:
        result += (you_input - money[i])*rate[i]
        you_input = money[i]  # 超过部分的金额被计算后,剩下的数值也要被计算,这时我们重新赋值,交由下一个循环来进行
# 循环结束得到结果
print(f'计提利润{result}')

妙啊,妙不可言

# 运行结果,正好对之前的答案进行验证,就决定是你了 560000
请输入利润560000
计提利润32300.0

第一日打卡结束!

文章的结尾总得有点拔高不是,整两句诗提高一下逼格,长风破浪会有时,直挂云帆济沧海

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值