Python 小练习 100 例 (边练习边更新)

这是一篇关于Python编程的实践教程,涵盖了从基础的排列组合、奖金计算到复杂的计算器应用和数据提取等多个方面的问题。通过解决100个小练习,包括日期处理、斐波那契数列、完全平方数、回文数判断等,帮助读者巩固和提升Python编程能力。
摘要由CSDN通过智能技术生成

(持续更新中……)
实践出真知呐

第1例: 排列组合

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

代码片

count = 0
print("1、2、3、4可以组成的无重复三位数有:")
for x in range(1,5):
    for y in range(1,5):
        for z in range(1,5):
            if (x != y) and (x != z) and (y != z):
                print(x,y,z)
                count += 1
print("一共%d个数字。"%count)

运行结果

1、2、3、4可以组成的无重复三位数有:
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
2 3 1
2 3 4
2 4 1
2 4 3
3 1 2
3 1 4
3 2 1
3 2 4
3 4 1
3 4 2
4 1 2
4 1 3
4 2 1
4 2 3
4 3 1
4 3 2
一共24个数字。

第2例: 公司奖金计算

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

代码片

arr = [1000000, 600000, 400000, 200000, 100000, 0]
rat = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1]
i = int(input("请输入当月理论(单位:元):"))
thisarr = 0
for j in range(len(arr)):
    if i > arr[j]:
        thisarr += (i - arr[j])*rat[j]
        i = arr[j]
print("应发放奖金总数(单位:元):%d"%thisarr)

运行结果

请输入当月理论(单位:元):1200000
应发放奖金总数(单位:元):41500

第3例: 求符合要求的完全平方数

题目:一个整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?

代码片

import math

for x in range(10000):
    a = int(sqrt(x+100))
    b = int(sqrt(x+268))
    if (a*a == x+100) and (b*b == x+268):
        print(x)

运行结果

21
261
1581

第4例: 判断该日期为当年第几天

题目:输入某年某月某日,判断这一天是这一年的第几天?

代码片

print("请输入日期:")
x = int(input("年:"))
y = int(input("月:"))
z = int(input("日:"))
list = [31,28,31,30,31,30,31,31,30,31,30,31]
days = sum(list[0:(y-1)])+ z
if x / 4 ==0:
	print("这一天是这一年的第%d天。"%(days+1))
else:
	print("这一天是这一年的第%d天。"%(days))

运行结果

这一天是这一年的第354天。

第5例: 数字排序

题目:输入三个整数 x,y,z,请把这三个数由小到大输出。

代码片

list = []
for i in range(3):
    x = int(input("请输入第%d个数字:"%(i+1)))
    list.append(x)
list.sort()
print("这三个数由小到大依次是:", list[0], list[1], list[2])

运行结果

请输入第1个数字:34
请输入第2个数字:23
请输入第3个数字:187
这三个数由小到大依次是: 23 34 187

第6例: 斐波那契数列

题目:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。

代码片

fib = [0,1]
i = int(input("您希望输出第几个斐波那契数?"))
if i > 2:
    for j in range(0,i):
        fib.append(fib[-1]+fib[-2])
else: pass
print("第%d个斐波那契数是%d。" % (i, fib[i - 1]))

运行结果

您希望输出第几个斐波那契数?10
第10个斐波那契数是34。

第7例: 九九乘法表

题目:输出9*9乘法口诀表

代码片

for i in range(1,10):
    for j in range(1,i+1):
        print("%d x %d = %d"%(i,j,i*j), end="\t")
    print()

运行结果

1 x 1 = 1
2 x 1 = 2 2 x 2 = 4
3 x 1 = 3 3 x 2 = 6 3 x 3 = 9
4 x 1 = 4 4 x 2 = 8 4 x 3 = 12 4 x 4 = 16
5 x 1 = 5 5 x 2 = 10 5 x 3 = 15 5 x 4 = 20 5 x 5 = 25
6 x 1 = 6 6 x 2 = 12 6 x 3 = 18 6 x 4 = 24 6 x 5 = 30 6 x 6 = 36
7 x 1 = 7 7 x 2 = 14 7 x 3 = 21 7 x 4 = 28 7 x 5 = 35 7 x 6 = 42 7 x 7 = 49
8 x 1 = 8 8 x 2 = 16 8 x 3 = 24 8 x 4 = 32 8 x 5 = 40 8 x 6 = 48 8 x 7 = 56 8 x 8 = 64
9 x 1 = 9 9 x 2 = 18 9 x 3 = 27 9 x 4 = 36 9 x 5 = 45 9 x 6 = 54 9 x 7 = 63 9 x 8 = 72 9 x 9 = 81

第8例: 隔一秒输出时间

题目:暂停一秒输出。

代码片

import time

print(time.strftime('%H:%M:%S', time.localtime(time.time())))
time.sleep(1)
print(time.strftime('%H:%M:%S', time.localtime(time.time())))

运行结果

13:30:11
13:30:12

第9例: 古典问题, 兔子生小兔子

题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
(自己比划了下, 还是个斐波那契数列)
代码片

mon = int(input("需要计算第几个月的兔子总数?"))
rat = [0,2]
for i in range(1,mon+1):
    rat.append(rat[-1]+rat[-2])
    print("第%d个月一共%d只兔子。" % (i, rat[i]))

运行结果

第1个月一共2只兔子。
第2个月一共2只兔子。
第3个月一共4只兔子。
第4个月一共6只兔子。
第5个月一共10只兔子。
第6个月一共16只兔子。
第7个月一共26只兔子。
第8个月一共42只兔子。
第9个月一共68只兔子。
第10个月一共110只兔子。

第10例: 素数

题目:判断101 - 200之间有多少个素数,并输出所有素数。
质数(prime number)又称素数,有无限个。一个大于1的自然数,除了1和它本身外,不能被其他自然数整除,换句话说就是该数除了1和它本身以外不再有其他的因数;否则称为合数

代码片

count = 0
print("101 - 200之间的素数有:")
for x in range(101,201):
    sqr = int(math.sqrt(x))
    for i in range(2,sqr+1):
        if x%i ==0:
            break
    else:
        print(x)
        count += 1
print("共%d个素数。"%count)

运行结果

101 - 200之间的素数有:
101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
共21个素数。

第11例: 水仙花数

题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

代码片

for x in range(1,10):
    for y in range(0,10):
        for z in range(0,10):
            if (x**3 + y**3 + z**3) == (100*x + 10*
  • 26
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值