python小题目1

今天看书遇到的三个练习题,在这里记录一下下吖

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

我们直接先列个数组,然后嵌套三个for循环使用数组中的数,然后将每个提取出来的数进行比较,三个互不相同的数就是我们需要的数啦,然后把他们加出来就好了!!!

i = [1,2,3,4]
num = 0
for a  in i:
    for b in i:
        for c in i:
            if(a != b and b != c and c != a):
                sum = 0
                sum = a*100 + b * 10 + c
                print(sum)
                num += 1
print("一共%d种组合方法" %num)

我这里运行程序,然后一共是24中组合:
在这里插入图片描述

接下来我们来说第二道题,企业发放的奖金根据利润来确定提成比例。当利润(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,求应发放奖金总数。

这个就更简单啦,直接一个if判断搞定,就是代码量有点大感觉,不知道有没有更好的方法希望指教一下,我这里就直接上我的代码了:

l = float(input("请输入当月利润,单位是万元哦!!!:"))
if(l>0 and l<=10):
    bonus = l*0.1
elif(l>10 and l<=20):
    bonus = 10*0.1 + (l-10)*0.075
elif(l>20 and l<=40):
    bonus = 10*0.1 + 10*0.075 +(l-20)*0.05
elif(l>40 and l<= 60):
    bonus = 10*0.1 + 10*0.075 + 20*0.05 + (l-40)*0.03
elif(l>60 and l<=100):
    bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + (l-60)*0.015
elif(l>100):
    bonus = 10*0.1 + 10*0.075 + 20*0.05 + 20*0.03 + 40*0.015 + (l-100)*0.01
else:
    print("输入错误,请重新输入!!!")
if (l>0):
    print("当月利润为%f万元,应发奖金%f万元"%(l,bonus))

这是我运行程序的结果:
在这里插入图片描述

很轻松就能看明白吧!!!

接下来最后一道题,一个整数加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
首先这道题就是要搞清楚完全平方数的概念,我们来看看百度百科的解释吧:

在这里插入图片描述

也就是说1,4,9这样的数字就是完全平方数嘛,然后我们这里就要用到python的math模块了,因为我们要用到这个库的sqrt函数,这个函数是返回当前数的平方根,假如是9就返回3,这是能够正常平方根的,如果不能,就要看计算机计算出来什么数了,不能正常平方根的计算出来就是小数。

扫描二维码关注公众号,回复: 14905230 查看本文章

还有这里需要注意的是,根号下的数要大于等于0,我们这里最小加100,所以我们的那个未知数需要大于等于-100,所以我这里遍历的是-100到10000(注意:这里是不包括10000的哦)

搞清楚这些了,然后就把计算出来的数进行对比就好了,两个条件都能满足的就是我们需要的数啦!!!

import math
for i in range(-100,10000):
    l = math.sqrt(i+100)
    h = math.sqrt(i+100+168)
    if(l == int(l) and h == int(h)):
        print(i)

这是我运行的结果:
在这里插入图片描述
好了,今天的记录就到这里把,晚安,玛卡巴卡!!!

猜你喜欢

转载自blog.csdn.net/weixin_43635067/article/details/128571441