(持续更新中……)
实践出真知呐
目录
-
-
- 第1例: 排列组合
- 第2例: 公司奖金计算
- 第3例: 求符合要求的完全平方数
- 第4例: 判断该日期为当年第几天
- 第5例: 数字排序
- 第6例: 斐波那契数列
- 第7例: 九九乘法表
- 第8例: 隔一秒输出时间
- 第9例: 古典问题, 兔子生小兔子
- 第10例: 素数
- 第11例: 水仙花数
- 第12例: 分解质因数
- 第13例: 根据分数划分等级
- 第14例: 输出指定格式的日期
- 第15例: 统计字符串中的字母, 空格, 数字
- 第16例: 求s=a+aa+aaa+aaaa+aa...a
- 第17例: 完数
- 第18例: 小球自由落体
- 第19例: 猴子摘桃
- 第20例: 编程序找出三队赛手的名单
- 第21例: 打印菱形图案(待改进)
- 第22例: 数列求和
- 第23例: 求1+2!+3!+...+20!的和
- 第24例: 递归应用
- 第25例: 回文数
- 第26例: 求一个矩阵对角线元素之和
- 第27例: filter函数应用
- 第28例: tkinter应用——计算器之排版
- 第29例: tkinter应用——计算器之数字接收器
- 第30例: tkinter应用——计算器之运算函数
- 第31例: tkinter应用——计算器之获取运算结果函数
- 第32例: tkinter应用——计算器之完整代码
- 第33例: JSON格式提取数据
- 第34例: 保存数据到本地CSV文件(os+csv)
-
第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*