每日一道Python编程题目练习,每天更新(大概)

自学python中,此文章目的为记录练习过程,同时督促自己每天练习一道python题目,题目来源于网络,代码由自己书写,初学者,仅为记录,大佬不喜勿喷,尽量书写注释,如有错误,欢迎指正,如果有推荐的题目可以评论

第一天(2022.12.5)

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

原题目链接:Python 100道基础入门练习题(附答案)_小熊猫爱恰饭的博客-CSDN博客_python基础训练题https://blog.csdn.net/m0_67575344/article/details/123744565

 第二题

money=float(input("请输入当月利润(单位:万):"))
money1=[100,60,40,20,10,0]
# 提成档位
raters=[0.01,0.015,0.03,0.05,0.075,0.1]
# 提成比例
money2=0
# 提成总金额
for i in range(len(money1)):
    if money-money1[i]<0:
        # 计算是否达到档位,达到进行计算,未到达则跳过该档位
        continue
    else:
        money2=(money-money1[i])*raters[i]+money2
        # 计算提成金额并且和之前计算的提成金额相加
        money=money-(money-money1[i])
        # 计算剩余金额,以便后续档位计算
print(f"应发奖金总数为{money2}万元")

运行结果如下:

每日一道Python编程题目练习,每天更新(大概)_第1张图片

第二天(2022.12.6)

输出 9*9 乘法口诀表

原题目链接第九题Python 100道基础入门练习题(附答案)_小熊猫爱恰饭的博客-CSDN博客_python基础训练题https://blog.csdn.net/m0_67575344/article/details/123744565

for i in range(1,10):
    # 设定一个1到9的for循环,步长不写默认为1
    print()
    # 换行
    for j in range(1,i+1):
        # 以当前循环的i为界限设定第二个循环
        print(f"{i}*{j}={i*j}\t",end='')
        # 输出结果

运行结果如下:

每日一道Python编程题目练习,每天更新(大概)_第2张图片  

第三天(2022.12.7)

题目 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。

原题目链接第十三题

Python 100道基础入门练习题(附答案)_小熊猫爱恰饭的博客-CSDN博客_python基础训练题https://blog.csdn.net/m0_67575344/article/details/123744565

for i in range(100, 1000):
    s = str(i)
    # 将i转化成字符串类型以便使用函数
    if int(s[-1]) ** 3 + int(s[-2]) ** 3 + int(s[-3]) ** 3 == i:
        print(i)
    else:
        continue

每日一道Python编程题目练习,每天更新(大概)_第3张图片

PS:这道题没有想到特别好的思路,想到的几个都比原作者的占用资源,所以我就把原作者的进行了一下改进,节省一点地址空间(一丢丢) 

第四天(2022.12.8)

题目 将一个整数分解质因数。例如:输入90,打印出90=233*5

原题目链接第十四题Python 100道基础入门练习题(附答案)_小熊猫爱恰饭的博客-CSDN博客_python基础训练题https://blog.csdn.net/m0_67575344/article/details/123744565

num = int(input('请输入需要分解的整数\n'))
list1 = []
# 创建一个列表储存分解出来的质因数
while True:
    # 不确定有几个质因数,所以创建无限循环并且设置出口
    for i in range(2, num + 1):
        # 从2到当前值判断质因数
        if num % i == 0:
            # 判断当前值是否为因数
            if num // i == 1:
                # 判断当前值是否是本身,是则不改变值,不是则计算出除因数后的值
                num = num
            else:
                num = num // i
            list1.append(i)
            # 将判断出的因数加入列表
            break
    if num == i:
        # 如果当前循环值等于本身则可以退出大循环
        break
print(list1)
# 打印列表

运行结果如下:

每日一道Python编程题目练习,每天更新(大概)_第4张图片

PS:虽然写了注释,但是思路这个东西不是一句两句可以说清楚的,想弄明白最好自己打个断点多走几遍(大佬就当没看见这句话)

第五天 (2022.12.9)

题目 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?(我稍微做了一下修改,高度和次数由用户手动输入)

原题目链接第二十题

Python 100道基础入门练习题(附答案)_小熊猫爱恰饭的博客-CSDN博客_python基础训练题https://blog.csdn.net/m0_67575344/article/details/123744565

high=float(input('请输入高度'))
count=int(input('请输入弹跳次数'))
length=0
for i in range(1,count+1):
    if i!=count:
        # 只计算到最后一次落地时走过的路程,弹起后不算
        length=high*1.5+length
    elif i==count:
        length=high+length
    high=high/2
print(f"最后的高度是{high},走过的路程是{length}")

运行结果如下:

每日一道Python编程题目练习,每天更新(大概)_第5张图片

第六天(2022.12.10)

题目 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。

PS:这道题如果像作者一样用for循环做会很简单,不过就有点浪费这道题了,这是一道很经典的递归问题,所以我打算使用递归思想来做,并且让用户输入天数

原题目链接:

Python 100道基础入门练习题(附答案)【这期完结】_小熊猫爱恰饭的博客-CSDN博客_小熊猫100题pythonhttps://blog.csdn.net/m0_67575344/article/details/127703314?spm=1001.2014.3001.5502

def monkey(day):
    if day==1:
        return 1
    # 递归到最后一层设置出口返回1(其实这里把1改成参数,就也使得最后一天剩的数量也可以手动输入了)
    else: peach=(monkey(day-1)+1)*2
    return peach
day=int(input('请输入猴子吃桃的天数'))
print(monkey(day))

运行结果如下:(这猴子真能吃,第一天吃了700多)

每日一道Python编程题目练习,每天更新(大概)_第6张图片

第七天(2022.12.11) 

题目 求1+2!+3!+…+20!的和。(这道题用循环很简单,所以接着昨天继续使用递归思想做)

 原题目链接:

Python 100道基础入门练习题(附答案)【这期完结】_小熊猫爱恰饭的博客-CSDN博客_小熊猫100题pythonicon-default.png?t=M85Bhttps://blog.csdn.net/m0_67575344/article/details/127703314第二十五题(第二十六题就直接把factorial函数单独调用就可以了)

def add(num):
    # 计算和的函数
    if num==1:
        return 1
    else:
        num1=add(num-1)+factorial(num)
        # 当前数的阶乘加上之前所有数的阶乘和
    return num1
def factorial(num):
    # 计算阶乘的函数
    if num==1:
        return 1
    else:
        return factorial(num-1)*num
        # 当前数的阶乘
num=int(input('请输入整数'))
print(add(num))

输出结果如下:(太大了,不好验证,所以使用4)

 

你可能感兴趣的:(python)