Python100个小例子.docx
- 文档编号:23463460
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:27
- 大小:22.73KB
Python100个小例子.docx
《Python100个小例子.docx》由会员分享,可在线阅读,更多相关《Python100个小例子.docx(27页珍藏版)》请在冰豆网上搜索。
Python100个小例子
一、Python练习实例1
题目:
有四个数字:
1、2、3、4,能组成多少个互不相同且无重复数字的三位数?
各是多少?
程序分析:
可填在百位、十位、个位的数字都是1、2、3、4。
组成所有的排列后再去掉不满足条件的排列。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
foriinrange(1,5):
forjinrange(1,5):
forkinrange(1,5):
if(i!
=k)and(i!
=j)and(j!
=k):
print(i,j,k)
二、Python练习实例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-*-
i=int(input('净利润:
'))
arr=[1000000,600000,400000,200000,100000,0]
rat=[0.01,0.015,0.03,0.05,0.075,0.1]
r=0
foridxinrange(0,6):
ifi>arr[idx]:
r+=(i-arr[idx])*rat[idx]
print((i-arr[idx])*rat[idx])
i=arr[idx]
print(r)
三、Python练习实例3
题目:
一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
程序分析:
假设该数为x。
1、则:
x+100=n2,x+100+168=m2
2、计算等式:
m2-n2=(m+n)(m-n)=168
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
7、接下来将i的所有数字循环计算即可。
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
foriinrange(1,85):
if168%i==0:
j=168/i;
ifi>jand(i+j)%2==0and(i-j)%2==0:
m=(i+j)/2
n=(i-j)/2
x=n*n-100
print(x)
四、Python练习实例4
题目:
输入某年某月某日,判断这一天是这一年的第几天?
程序分析:
以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:
程序源代码:
#!
/usr/bin/python
#-*-coding:
UTF-8-*-
year=int(input('year:
\n'))
month=int(input('month:
\n'))
day=int(input('day:
\n'))
months=(0,31,59,90,120,151,181,212,243,273,304,334)
if0 sum=months[month-1] else: print 'dataerror' sum+=day leap=0 if(year%400==0)or((year%4==0)and(year%100! =0)): leap=1 if(leap==1)and(month>2): sum+=1 print('itisthe%dthday.'%sum) 五、Python练习实例5 题目: 输入三个整数x,y,z,请把这三个数由小到大输出。 程序分析: 我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x最小。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- l=[] foriinrange(3): x=int(input('integer: \n')) l.append(x) l.sort() print(l) 六、Python练习实例6题目: 斐波那契数列。 程序分析: 斐波那契数列(Fibonaccisequence),又称黄金分割数列,指的是这样一个数列: 0、1、1、2、3、5、8、13、21、34、……。 在数学上,费波那契数列是以递归的方法来定义: F0=0(n=0) F1=1(n=1) Fn=F[n-1]+F[n-2](n=>2) 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- deffib(n): a,b=1,1 foriinrange(n-1): a,b=b,a+b returna #输出了第10个斐波那契数列 print(fib(10)) #使用递归 deffib(n): ifn==1orn==2: return1 returnfib(n-1)+fib(n-2) #输出了第10个斐波那契数列 print(fib(10)) deffib(n): ifn==1: return[1] ifn==2: return[1,1] fibs=[1,1] foriinrange(2,n): fibs.append(fibs[-1]+fibs[-2]) returnfibs #输出前10个斐波那契数列 print(fib(10)) 七、Python练习实例7 题目: 将一个列表的数据复制到另一个列表中。 程序分析: 使用列表[: ]。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- a=[1,2,3] b=a[: ] print(b) 八、Python练习实例8 题目: 输出9*9乘法口诀表。 程序分析: 分行与列考虑,共9行9列,i控制行,j控制列。 程序源代码: foriinrange(1,10): forjinrange(1,i+1): print("""%d*%d=%d"""%(i,j,i*j),end="") print() 九、Python练习实例9 题目: 暂停一秒输出。 程序分析: 使用time模块的sleep()函数。 #! /usr/bin/python #-*-coding: UTF-8-*- importtime myD={1: 'a',2: 'b'} forkey,valueindict.items(myD): print(key,value) time.sleep (1)#暂停1秒 十、Python练习实例10 题目: 暂停一秒输出,并格式化当前时间。 程序分析: 无。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- importtime print(time.strftime('%Y-%m-%d%H: %M: %S',time.localtime(time.time()))) #暂停一秒 time.sleep (1) print(time.strftime('%Y-%m-%d%H: %M: %S',time.localtime(time.time()))) 十一、Python练习实例11 Python100例Python100例 题目: 古典问题: 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8,13,21.... 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- f1=1 f2=1 foriinrange(1,22): print('%12ld%12ld'%(f1,f2),), if(i%3)==0: print('') f1=f1+f2 f2=f1+f2 十二、Python练习实例12 题目: 判断101-200之间有多少个素数,并输出所有素数。 程序分析: 判断素数的方法: 用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- h=0 leap=1 frommathimportsqrt fromsysimportstdout forminrange(101,201): k=int(sqrt(m+1)) foriinrange(2,k+1): ifm%i==0: leap=0 break ifleap==1: print('%-4d'%m) h+=1 ifh%10==0: print('') leap=1 print('Thetotalis%d'%h) 十三、Python练习实例13 题目: 打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。 例如: 153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。 程序分析: 利用for循环控制100-999个数,每个数分解出个位,十位,百位。 程序源代码: print("100-999之间的水仙花数有: ") foriinrange(100,999): j=int(i/1%10)#个位使用int的原因是强转故意让其损失精度,Python中使用此方法获取时必须强转因为Python中默认保留小数 k=int(i/10%10)#十位 m=int(i/100%10)#百位 ifi==(j**3+k**3+m**3): print(i) 十四、Python练习实例14 题目: 将一个正整数分解质因数。 例如: 输入90,打印出90=2*3*3*5。 程序分析: 对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成: (1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。 (2)如果n<>k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你n,重复执行第一步。 (3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。 程序源代码: while1: n=int(input('请输入一个整数: ')) print('%d='%n,end='') whilen>1: foriinrange(2,n+1): ifn%i==0: n=int(n/i) ifn==1: print('%d'%i,end='') else: print('%d*'%i,end='') break print() 十五、Python练习实例15 题目: 利用条件运算符的嵌套来完成此题: 学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 程序分析: 程序分析: (a>b)? a: b这是条件运算符的基本例子。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- score=int(input('输入分数: \n')) ifscore>=90: grade='A' elifscore>=60: grade='B' else: grade='C' print('%d属于%s'%(score,grade)) 十六、Python练习实例16 题目: 输出指定格式的日期。 程序分析: 使用datetime模块。 #! /usr/bin/python #-*-coding: UTF-8-*- importdatetime if__name__=='__main__': #输出今日日期,格式为dd/mm/yyyy。 更多选项可以查看strftime()方法 print(datetime.date.today().strftime('%d/%m/%Y')) #创建日期对象 miyazakiBirthDate=datetime.date(1941,1,5) print(miyazakiBirthDate.strftime('%d/%m/%Y')) #日期算术运算 miyazakiBirthNextDay=miyazakiBirthDate+datetime.timedelta(days=1) print(miyazakiBirthNextDay.strftime('%d/%m/%Y')) #日期替换 miyazakiFirstBirthday=miyazakiBirthDate.replace(year=miyazakiBirthDate.year+1) print(miyazakiFirstBirthday.strftime('%d/%m/%Y')) 十七、Python练习实例17 题目: 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 程序分析: 利用while或for语句,条件为输入的字符不为'\n'。 #! /usr/bin/python #-*-coding: UTF-8-*- importstring s=input('请输入一个字符串: \n') letters=0 space=0 digit=0 others=0 i=0 whilei c=s[i] i+=1 ifc.isalpha(): letters+=1 elifc.isspace(): space+=1 elifc.isdigit(): digit+=1 else: others+=1 print('char=%d,space=%d,digit=%d,others=%d'%(letters,space,digit,others)) 十八、Python练习实例18 题目: 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。 程序分析: 关键是计算出每一项的值。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- Tn=0 Sn=[] n=int(input('n=')) a=int(input('a=')) forcountinrange(n): Tn=Tn+a a=a*10 Sn.append(Tn) print(Tn) Sn=reduce(lambdax,y: x+y,Sn) print("计算和为: ",Sn) 十九、Python练习实例19 题目: 一个数如果恰好等于它的因子之和,这个数就称为"完数"。 例如6=1+2+3.编程找出1000以内的所有完数。 程序分析: 请参照程序Python练习实例14。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- fromsysimportstdout forjinrange(2,1001): k=[] n=-1 s=j foriinrange(1,j): ifj%i==0: n+=1 s-=i k.append(i) ifs==0: print(j) foriinrange(n): stdout.write(str(k[i])) stdout.write('') print(k[n]) 二十、Python练习实例20 题目: 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米? 第10次反弹多高? 程序分析: 无 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- tour=[] height=[] hei=100.0#起始高度 tim=10#次数 foriinrange(1,tim+1): #从第二次开始,落地时的距离应该是反弹高度乘以2(弹到最高点再落下) ifi==1: tour.append(hei) else: tour.append(2*hei) hei/=2 height.append(hei) print('总高度: tour={0}'.format(sum(tour))) print('第10次反弹高度: height={0}'.format(height[-1])) 二十一、Python练习实例21 题目: 猴子吃桃问题: 猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。 以后每天早上都吃了前一天剩下的一半零一个。 到第10天早上想再吃时,见只剩下一个桃子了。 求第一天共摘了多少。 程序分析: 采取逆向思维的方法,从后往前推断。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- x2=1 fordayinrange(9,0,-1): x1=(x2+1)*2 x2=x1 print(x1) 二十二、Python练习实例22 题目: 两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。 已抽签决定比赛名单。 有人向队员打听比赛的名单。 a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- foriinrange(ord('x'),ord('z')+1): forjinrange(ord('x'),ord('z')+1): ifi! =j: forkinrange(ord('x'),ord('z')+1): if(i! =k)and(j! =k): if(i! =ord('x'))and(k! =ord('x'))and(k! =ord('z')): print('orderisa--%s\tb--%s\tc--%s'%(chr(i),chr(j),chr(k))) 二十三、Python练习实例23 题目: 打印出如下图案(菱形): * *** ***** ******* ***** *** * 程序分析: 先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- fromsysimportstdout foriinrange(4): forjinrange(2-i+1): stdout.write('') forkinrange(2*i+1): stdout.write('*') print('\n') foriinrange(3): forjinrange(i+1): stdout.write('') forkinrange(4-2*i+1): stdout.write('*') print('\n') 二十四、Python练习实例24 题目: 有一分数序列: 2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 程序分析: 请抓住分子与分母的变化规律。 程序源代码: 方法一: #! /usr/bin/python #-*-coding: UTF-8-*- a=2.0 b=1.0 s=0 forninrange(1,21): s+=a/b t=a a=a+b b=t print(s) 二十五、Python练习实例25 题目: 求1+2! +3! +...+20! 的和。 程序分析: 此程序只是把累加变成了累乘。 #! /usr/bin/python #-*-coding: UTF-8-*- n=0 s=0 t=1 forninrange(1,21): t*=n s+=t print('1! +2! +3! +...+20! =%d'%s) 二十六、Python练习实例26 题目: 利用递归方法求5! 。 程序分析: 递归公式: fn=fn_1*4! 程序源代码: #! /usr/bin/python #-*-coding: UTF-8-*- deffact(j): sum=0 if
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Python100 例子