python基础练习题 01

版权声明:未经原作者允许不得转载本文内容,否则将视为侵权 https://blog.csdn.net/springhammer/article/details/88540267

第1章 python基础题01

1.1 水仙花数计算

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

代码:

import math

for i in range(100, 1000):
    x = math.floor(i/100)  #获得百位数
    y = math.floor((i - x*100)/10)  #获得十位数
    z = i - math.floor(i/10) *10  #获得个位数
    if i == x**3 + y**3 + z**3:
        print(i, end=', ')

结果
在这里插入图片描述

1.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%提成,从键盘输入当月利润,求应发放奖金总数。

代码:

money = float(input("请输入当月利润,单位为万元:"))
bonus = 0
li = [100,60,40,20,10,0]
bi = [0.01,0.015,0.03,0.05,0.075,0.1]

for i in range(6):
    if money > li[i]:
        cmoney = money - li[i]
        bonus = bonus + cmoney * bi[i]
        #money = money - cmoney
        money = li[i]

print("当月应发放奖金总数为%s万元" %bonus)

结果
在这里插入图片描述

1.3 数计算

一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?

代码:

for x in range(1000):
    for y in range(1000):
        if (y**2 - x**2) == 168:
            print(x**2-100, end = ',')

结果
在这里插入图片描述

1.4 绘制9*9口诀表

输出9*9口诀表。
(程序分析:分行与列考虑,共9行9列,i控制行,j控制列)

代码:

i=1
while i<=9:
    j=1
    while j<=i:
        print("%d*%d=%-2d"%(j,i,i*j),end='\t')
        j+=1
    print('\n')
    i+=1


结果
在这里插入图片描述

1.5 输出素数

判断101-200之间有多少个素数,并输出所有素数。
(程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数)

代码:

lst = []
for i in range(100):  #建立 101-200 的列表
    lst.append(101+i)

for i in range(101, 201):  #除数为 101-200200个数字
    for j in range(2,i):  #除数为从2至i本身的前一个数字
        if i%j == 0:  #如果能除尽
            lst.remove(i)  #则从 lst 列表剔除
            break
print(lst)  #剩下的都是素数

结果
在这里插入图片描述

1.6 求完数

一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。
代码:

import math
 
for i in range(2, 1000):
    factors = []  #因子列表,i 每次循环都清空
    for j in range(1, math.floor(i/2)+1):
        if i%j == 0:
            factors.append(j)
    if sum(factors) == i:
        print(i, end=',')

结果
在这里插入图片描述

1.7 统计字符

输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。(提示:导入string库:import string,利用string库内置的函数)
代码:

lst = list(input('请输入一行字符,可以是任意字符:'))
 
iLetter = []
iSpace = []
iNumber = []
iOther = []
 
for i in range(len(lst)):
    if ord(lst[i]) in range(65, 91) or ord(lst[i]) in range(97,123):
        iLetter.append(lst[i])
    elif lst[i] == ' ':
        iSpace.append(' ')
    elif ord(lst[i]) in range(48, 58):
        iNumber.append(lst[i])
    else:
        iOther.append(lst[i])
 
print('中英文字母个数:%s' % len(iLetter))
print('空格个数:%s' % len(iSpace))
print('数字个数:%s' % len(iNumber))
print('其它字符个数:%s' % len(iOther))

结果
在这里插入图片描述

1.8 组合数字

有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
代码:

i = 0
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
                if (x!=y) and (y!=z) and (z!=x):
                    i += 1
                    if i%4:
                        print("%d%d%d" % (x, y, z), end=" | ")
                    else:
                        print("%d%d%d" % (x, y, z))

结果
在这里插入图片描述

我想能看到这里的同学,无外乎两种人:来拷贝代码的人 和 来拷贝代码的人。

但,在拷贝走的时候,你要想清楚一件事,把代码拷走之后有个蛋用,搞明白对你来说才是最重要的。

好了,就酱紫。

 

老铁,这要是都不赞,说不过去吧!!!


最后对自己说:
你现在所遭遇的每一个不幸,都来自一个不肯努力的曾经。

猜你喜欢

转载自blog.csdn.net/springhammer/article/details/88540267