Python100道经典练习题(一)
当前计算机语言最火的python占据我们生活的各个方面,人工智能、云计算、5G发展、汽车工业、互联网加行业等。话不多说,所谓磨刀不误砍柴工,掌握一门编程语言的最佳方法就是打好语言基础,下面是结合自己学python语言总结出的100道python练习题,喜欢python和正在学习python的小伙伴可以练练手哦,也欢迎行业大佬提出批评指正。
数字组合
【题目】:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?
分析:
四个数字组成三位数,把三位数分为个、十、百位,将1、2、3、4填入其中,去掉不满足条件的剩下就是结果。
for i in range(1, 5):
for j in range(1, 5):
for k in range(1, 5):
if i != k and i != j and j != k:
print(i, j, k)
```结果在这里不列出了
企业年终奖问题
【题目】:某企业发放的奖金根据利润提成,利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元,高于10万元部分按7.5%提成;20万元到40万元,高于20万部分,按5%提成;40万到60万,高于40万部分按3%提成;60万到100万,高于60万部分按1.5%提成;高于100万部分按1%提成,从键盘输入当月利润I,求应发奖金总数?
分析:
根据题目,我们利用数轴来分界,定位。注意定义时需要把奖金定义为整型。
I = int(input("Please Enter the number:"))
b1 = 100000 * 0.1 # 低于或等于10万
b2 = b1 + (I - 100000) * 0.075 # 10万<X<=20万
b4 = b2 + (I - 200000) * 0.05 # 20万<X<=40万
b6 = b4 + (I - 400000) * 0.03 # 40万<X<=60万
b10 = b6 + (I - 600000) * 0.015 # 60万<X<=100万
b100 = b10 + (I - 1000000) * 0.01 # 100万<X
if I <= 100000:
M1 = I * 0.1
elif I <= 200000:
M = (I - 100000) * 0.075 + b1
elif I <= 400000:
M = (I - 200000) * 0.05 + b2
elif I <= 600000:
M = (I - 400000) * 0.03 + b4
elif I <= 1000000:
M = (I - 600000) * 0.015 + b6
else:
M = (I - 1000000) * 0.01 + b10
print('bonus=', M)
数字运算的转换
【题目】:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?
分析:
在10000以内判断,先将该数加上100再开方,再将该数加上268再开方。
import math
for i in range(100000):
j = math.sqrt(i + 100)
if j == int(j):
h = math.sqrt(j ** 2 + 268)
if h == int(h):
print(i)
else:
pass
判断日期
【题目】:输入某年某月某日,判断这一天是这一年的第几天?
分析:
以8月25日为例,应该先把前七个月的的天数加起来,然后再加上25天即本年的第几天,特殊情况,闰年输入月份大于3时需要考虑多加一天。
year = int(input("Please enter the years:"))
month = int(input("Please enter the months(1-12):"))
day = int(input("Please enter the days(1-31):"))
days = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
if year % 4 == 0 and year % 100 != 0:
if month > 2:
totaldays = days[month - 1] + day + 1
else:
totaldays = days[month - 1] + day
else:
totaldays = days[month - 1] + day
print("你输入的日期是:", year, "年", month, "月", day, '日', ",是今年的第", totaldays, "天!")
```惦记着过年的小伙伴再也不会忘了还有多少天过年
化学分子式计算方法
【题目】:输入某个化学物质的分子式(只含H、O、C),求摩尔质量?
分析:
根据H、C、O的化学质量数,以及分子式各元素的个数求摩尔质量。
H = eval(input("Enter the number of 'H':"))
C = eval(input("Enter the number of 'C':"))
O = eval(input("Enter the number of 'O':"))
totalmolecular = 1.00794 * H + 12.0107 * C + 15.9994 * O
print("The total molecular is:", totalmolecular, "克/摩尔", ",the expression is:"'H', H, 'C', C, 'O', O)
判断三角形
【题目】:输入三个数字,判断是否构成三角形?
分析:
从三角形的构成三素来判断。
from math import sqrt
a = eval(input("Enter the 'a':"))
b = eval(input("Enter the 'b':"))
c = eval(input("Enter the 'c':"))
if a + b > c and a + c > b and b + c > a:
s = (a + b + c) / 2
D = int(sqrt(s * (s - a) * (s - b) * (s - c)))
print("The area of the triangle is:", D)
else:
print("The not triangle!!!")
9*9乘法口诀
【题目】:打印9*9口诀?
分析:
利用for嵌套循环来打印。
for i in range(1, 10):
for j in range(1, 10):
result = i * j
if i <= j:
print('%d*%d=%d' % (i, j, result))
print()
斐波那契序列
【题目】:斐波那契序列是数字序列,其中每个连续数字是前两个数字的和。经典的斐波那 契序列开始于 1,1,2,3,5,8,13,……
分析:
利用for循环查找序列
f1 = 1
f2 = 1
for i in range(1, 21):
print('%12d%12d' % (f1, f2))
if i % 2 == 0:
print()
f1 = f1 + f2
f2 = f1 + f2
判断素数
【题目】:判断101~200之间有多少素数,并输出所有素数。
分析:
判断素数方法:用一个数分别去除以2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。
from math import sqrt
t = []
n = []
for i in range(101, 201):
if i % 2 == 0:
pass
else:
t.append(i)
for j in t:
if sqrt(j) == int(sqrt(j)):
print('%d*%d=%d' % (sqrt(j), sqrt(j), j))
else:
n.append(j)
print(n, '\n', len(n))
水仙花数
【题目】:打印所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身,例如:153是“水仙花数”,153=1+125+27。
分析:
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for n in range(100, 1001):
i = n / 100
j = n / 10 % 10
k = n % 10
if (i * 100 + j * 10 + k) == (i + j ** 3 + k ** 3):
print(i, j, k)
- 关于 python100道经典习题 今天先分享这么多,后续更新。