您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > python经典例题100道
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?【程序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,求应发放奖金总数?1#Filename:002.py2i=int(raw_input('Entertheprofit:'))3arr=[1000000,600000,400000,200000,100000,0]4rat=[0.01,0.015,0.03,0.05,0.075,0.1]5r=06foridxinrange(0,6):7ifiarr[idx]:8r+=(i-arr[idx])*rat[idx]9print(i-arr[idx])*rat[idx]10i=arr[idx]11printr【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?【感谢12楼的同学peiqianggao提供代码】#-*-coding:utf-8-*-'''Createdon2015-6-7#第三题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少@author:Administrator'''importmathnum=1whileTrue:ifmath.sqrt(num+100)-int(math.sqrt(num+100))==0andmath.sqrt(num+268)-int(math.sqrt(num+268))==0:print(num)breaknum+=1【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1#author:叛军2importdatetime3importtime4dtstr=str(raw_input('Enterthedatetime:(20151215):'))5dt=datetime.datetime.strptime(dtstr,%Y%m%d)6another_dtstr=dtstr[:4]+'0101'7another_dt=datetime.datetime.strptime(another_dtstr,%Y%m%d)8print(int((dt-another_dt).days)+1)【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。【程序8】题目:输出9*9口诀。1foriinrange(1,10):2forjinrange(1,i+1):3printi,'*',j,'=',i*j,4print''【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1a=12b=13foriinrange(1,21,2):4print'%d%d'%(a,b),5a+=b6b+=a【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。1#!/usr/bin/python2#-*-coding:utf-8-*-3frommathimportsqrt4defmain():5foriinrange(101,201):6flag=17k=int(sqrt(i))8forjinrange(2,k+1):9ifi%j==0:10flag=011break12ifflag==1:13print'%5d'%(i),1415if__name__==__main__:16main()【程序13】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。1#!/usr/bin/python2#-*-coding:utf-8-*-3defmain():4foriinrange(100,1000):5a=i%106b=i/1007c=(int(i/10))%108ifi==a**3+b**3+c**3:9print%5d%(i),1011if__name__==__main__:12main()【程序14】题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。1#!/usr/bin/python2#-*-coding:utf-8-*-34defmain():5n=int(raw_input('Enteranumber:'))6printn,'=',7while(n!=1):8foriinrange(2,n+1):9if(n%i)==0:10n/=i11if(n==1):12print'%d'%(i)13else:14print'%d*'%(i),15break161718if__name__==__main__:19main()【程序15】题目:利用条件运算符的嵌套来完成此题:学习成绩=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。1#!/usr/bin/python2#-*-coding:utf-8-*-3defmain():4s=int(raw_input('Enteranumber:'))5ifs=90:6grade='A'7elifs=60:8grade='B'9else:10grade='C'11printgrade,1213if__name__=='__main__':14main()【程序17】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。1#!/usr/bin/python2#-*-coding:utf-8-*-3#thereisno++operatorinPython4importstring5defmain():6s=raw_input('inputastring:')7letter=08space=09digit=010other=011forcins:12ifc.isalpha():13letter+=114elifc.isspace():15space+=116elifc.isdigit():17digit+=118else:19other+=120print'Thereare%dletters,%dspaces,%ddigitsand%dothercharactersinyourstring.'%(letter,space,digit,other)2122if__name__=='__main__':23main()【程序18】题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。1#!/usr/bin/python2#-*-coding:utf-8-*-3defmain():4basis=int(raw_input(Inputthebasisnumber:))5n=int(raw_input(Inputthelongestlengthofnumber:))6b=basis7sum=08foriinrange(0,n):9ifi==n-1:10print%d%(basis),11else:12print%d+%(basis),13sum+=basis14basis=basis*10+b15print'=%d'%(sum),161718if__name__=='__main__':19main()【程序19】题目:一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3.编程找出1000以内的所有完数。1frommathimportsqrt2n=int(raw_input('inputanumber:'))3sum=n*-14k=int(sqrt(n))5foriinrange(1,k+1):6ifn%i==0:7sum+=n/i8sum+=i9ifsum==n:10print'YES'11else:12print'NO'1'''2【程序20】3题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在4第10次落地时,共经过多少米?第10次反弹多高?5'''6s=100.7h=50.08foriinrange(2,11):9s+=2*h10h/=211printthesumlengthofpath:%f%s12printthelastheightis:%f%h1'''2【程序21】3题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个4第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下5的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。6'''7n=18foriinrange(9,0,-1):9n=(n+1)110printn1'''2★3【程序22】4题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定5比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出6三队赛手的名单。7'''8foriinrange(ord('x'),ord('z')+1):9forjinrange(ord('x'),ord('z')+1):10ifi!=j:11forkinrange(ord('x'),ord('z')+1):12if(i!=k)and(j!=k):13if(i!=ord('x'))and(k!=ord('x'))and(k!=ord('z')):14print'orderisa--%s\tb--%s\tc--%s'%(chr(i),chr(j),chr(k))1'''2【程序23】3题目:打印出如下图案(菱形)45*6***7*****8*******9*****10***11*12'''13foriinrange(1,8,2):14print''*(4-(i+1)/2)+'*'*i15foriinrange(5,0,-2):16print''*(4-(i+1)/2)+'*'*i1'''2【程序24】3题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。4'''5u=2.06d=1.07s=0.08foriinrange(0,20):9s=s+u/d10u=u+d11d=u-d12print'%f'%s1'''2【程序25】3题目:求1+2!+3!+...+20!的和4'''5s=06t=17foriinrange(1,21):8t*=i9s+=t10prints1'''2【程序26】3题目:利用递归方法求5!。4'''5deffun(i):6ifi==1:7return18returni*fun(i-1)910printfun(5)1'''2【程序27】3题目:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。4'''5defoutput(s,l):6ifl==0:7return8prints[l-1]9output(s,l-1)1011s=raw_input('Inputastring:')12l=len(s)13output(s,l)1'''2【程序28】3题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第43个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后5问第一个人,他说是10岁。请问第五个人多大?6'''
本文标题:python经典例题100道
链接地址:https://www.777doc.com/doc-4210195 .html