版权声明:未经原作者允许不得转载本文内容,否则将视为侵权 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-200 这200个数字
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))
结果
我想能看到这里的同学,无外乎两种人:来拷贝代码的人 和 来拷贝代码的人。
但,在拷贝走的时候,你要想清楚一件事,把代码拷走之后有个蛋用,搞明白对你来说才是最重要的。
好了,就酱紫。
老铁,这要是都不赞,说不过去吧!!!
最后对自己说:
你现在所遭遇的每一个不幸,都来自一个不肯努力的曾经。