2022年python语言经典入门级案例 .pdf
python经典入门级案例(含源代码)案例一:题目:有四个数字: 1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?程序分析: 可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去掉不满足条件的排列。程序源代码:#!/usr/bin/python # -*- coding: UTF-8 -*- 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 以上实例输出结果为:1 2 31 2 41 3 21 3 41 4 21 4 32 1 32 1 42 3 12 3 42 4 12 4 3名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 3 1 23 1 43 2 13 2 43 4 13 4 24 1 24 1 34 2 14 2 34 3 14 3 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,求应发放奖金总数?程序分析: 请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。程序源代码:#!/usr/bin/python # -*- coding: UTF-8 -*- 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - i = int(raw_input(净利润 :) arr = 1000000,600000,400000,200000,100000,0 rat = 0.01,0.015,0.03,0.05,0.075,0.1 r = 0 for idx in range(0,6): if iarridx: r+=(i-arridx)*ratidx print (i-arridx)*ratidx i=arridx print r 以上实例输出结果为:净利润 :120000 1500.0 10000.0 11500.0 案例三:题目:一个整数,它加上 100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?程序分析:假设该数为x。1、则: x + 100 = n2, x + 100 + 168 = m22、计算等式: m2 - n2 = (m + n)(m - n) = 168 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 3、设置:m + n = i ,m - n = j,i * j =168,i 和 j 至少一个是偶数4、可得: m = (i + j) / 2 , n = (i - j) / 2 ,i 和 j 要么都是偶数,要么都是奇数。5、从 3 和 4 推导可知道, i 与 j 均是大于等于2 的偶数。6、由于 i * j = 168, j=2,则 1 i j and (i + j) % 2 = 0 and (i - j) % 2 = 0 : m = (i + j) / 2 n = (i - j) / 2 x = n * n - 100 print(x) 以上实例输出结果为:-99 21 261 1581 案例四:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 题目: 输入某年某月某日,判断这一天是这一年的第几天?程序分析: 以 3 月 5 日为例,应该先把前两个月的加起来,然后再加上 5 天即本年的第几天, 特殊情况,闰年且输入月份大于2 时需考虑多加一天:程序源代码:#!/usr/bin/python # -*- coding: UTF-8 -*- year = int(raw_input(year:n) month = int(raw_input(month:n) day = int(raw_input(day:n) months = (0,31,59,90,120,151,181,212,243,273,304,334) if 0 month 2): sum += 1 print it is the %dth day. % sum 以上实例输出结果为:year :2015month:6day :7名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - it is the 158th day.案例五:题目: 输入三个整数 x,y,z,请把这三个数由小到大输出。程序分析: 我们想办法把最小的数放到x 上,先将 x 与 y 进行比较,如果 xy 则将 x 与 y 的值进行交换,然后再用x 与 z 进行比较,如果xz 则将 x 与 z 的值进行交换,这样能使x 最小。程序源代码:#!/usr/bin/python # -*- coding: UTF-8 -*- l = for i in range(3): x = int(raw_input(integer:n) l.append(x) l.sort( ) print l 以上实例输出结果为:integer: 8 integer: 5 integer: 6 5, 6, 8 案例六:题目: 输出 9*9 乘法口诀表。程序分析: 分行与列考虑,共9 行 9 列,i 控制行, j 控制列。程序源代码:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - #!/usr/bin/python # -*- coding: UTF-8 -*- for i in range(1, 10): print for j in range(1, i+1): print %d*%d=%d % (i, j, i*j), 以上实例输出结果为:1*1=1 2*1=2 2*2=4 3*1=3 3*2=6 3*3=9 4*1=4 4*2=8 4*3=12 4*4=16 5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 案例七:题目:古典问题:有一对兔子,从出生后第3 个月起每个月都生一对兔子, 小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21. 程序源代码:实例(Python 2.0+) #!/usr/bin/python # -*- coding: UTF-8 -*- f1 = 1 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - f2 = 1 for i in range(1,22): print %12ld %12ld % (f1,f2), if (i % 3) = 0: print f1 = f1 + f2 f2 = f1 + f2 以上实例输出结果为: 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368 75025 121393 196418 317811 514229 832040 1346269 2178309 3524578 5702887 9227465 14930352 24157817 39088169 63245986 102334155 165580141 267914296 案例八:题目: 判断 101-200之间有多少个素数,并输出所有素数。程序分析: 判断素数的方法:用一个数分别去除2 到 sqrt(这个数 ),如果能被整除,则表明此数不是素数,反之是素数。程序源代码:#!/usr/bin/python # -*- coding: UTF-8 -*- h = 0 leap = 1 from math import sqrt 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - from sys import stdout for m in range(101,201): k = int(sqrt(m + 1) for i in range(2,k + 1): if m % i = 0: leap = 0 break if leap = 1: print %-4d % m h += 1 if h % 10 = 0: print leap = 1 print The total is %d % h 以上实例输出结果为:101103107109113127131137139149151157163167173179181191193197199The total is21名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -