Python100道经典练习题(一)

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道经典习题 今天先分享这么多,后续更新。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CNodeGamer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值