python经典例题100道.docx
《python经典例题100道.docx》由会员分享,可在线阅读,更多相关《python经典例题100道.docx(26页珍藏版)》请在冰豆网上搜索。
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#
2i=int(raw_input(’Entertheprofit:
'))
3 arr =[1000000,600000,400000,200000,100000,0]
4rat=[0、01,0。
015,0。
03,0、05,0.075,0。
1]
5r=0
6foridx in range(0,6):
7 ifi〉arr[idx]:
8 r+=(i—arr[idx])*rat[idx]
9 print (i-arr[idx])*rat[idx]
10 i=arr[idx]
11printr
【程序3】
题目:
一个整数,它加上100后就是一个完全平方数,再加上168又就是一个完全平方数,请问该数就是多少?
【感谢12楼得同学peiqianggao提供代码】
# —*-coding:
utf-8-*-
'''
Created on 2015-6—7
#第三题:
一个整数,它加上100后就是一个完全平方数,再加上168又就是一个完全平方数,请问该数就是多少
@author:
Administrator
'’’
import math
num= 1
while True:
if math.sqrt(num+100)—int(math。
sqrt(num+100)) == 0andmath。
sqrt(num+268)-int(math。
sqrt(num+268)) ==0:
print(num)
break
num += 1
【程序4】
题目:
输入某年某月某日,判断这一天就是这一年得第几天?
1#author:
叛军
2importdatetime
3 importtime
4 dtstr= 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):
2 forjinrange(1,i+1):
3 printi,’*',j,’=',i*j,
4print’'
【程序11】ﻫ题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月ﻫ 后每个月又生一对兔子,假如兔子都不死,问每个月得兔子总数为多少?
1 a=1
2b= 1
3foriin range(1,21,2):
4 print'%d%d’%(a,b),
5 a += b
6 b+=a
【程序12】
题目:
判断101-200之间有多少个素数,并输出所有素数。
1#!
/usr/bin/python
2 #—*-coding:
utf—8-*—
3frommathimportsqrt
4 def main():
5 foriinrange(101,201):
6 flag= 1
7 k= int(sqrt(i))
8 for jinrange(2,k+1):
9 ifi%j==0:
10 flag =0
11 break
12 ifflag==1:
13print'%5d’%(i),
14
15if __name__=="__main__”:
16 main()
【程序13】ﻫ题目:
打印出所有得“水仙花数”,所谓“水仙花数”就是指一个三位数,其各位数字立方与等于该数本身。
例如:
153就是一个“水仙花数”,因为153=1得三次方+5得三次方+3得三次方。
1#!
/usr/bin/python
2#-*-coding:
utf—8 -*-
3def main():
4 foriin range(100,1000):
5 a=i%10
6 b= i/100
7c = (int(i/10))%10
8 ifi==a**3+b**3+c**3:
9 print"%5d"%(i),
10
11if__name__==”__main__":
12 main()
【程序14】ﻫ题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
1#!
/usr/bin/python
2#—*- coding:
utf-8-*—
3
4defmain():
5 n=int(raw_input(’Enteranumber:
'))
6printn,'=',
7 while(n!
=1):
8 for iin range(2,n+1):
9 if (n%i)==0:
10 n/=i
11 if(n==1):
12 print '%d'%(i)
13 else:
14 print'%d*’%(i),
15 break
16
17
18 if __name__== "__main__":
19 main()
【程序15】ﻫ题目:
利用条件运算符得嵌套来完成此题:
学习成绩〉=90分得同学用A表示,60—89分之间得用B表示,60分以下得用C表示。
1#!
/usr/bin/python
2#-*-coding:
utf—8—*-
3 def main():
4 s= int(raw_input(’Enter anumber:
'))
5ifs>=90:
6 grade=’A'
7 elifs>=60:
8 grade='B’
9 else:
10 grade= ’C'
11printgrade,
12
13if __name__== '__main__’:
14 main()
【程序17】ﻫ题目:
输入一行字符,分别统计出其中英文字母、空格、数字与其它字符得个数。
1 #!
/usr/bin/python
2#-*- coding:
utf-8—*—
3#thereisno ++operator inPython
4importstring
5defmain():
6 s=raw_input('input astring:
')
7 letter = 0
8 space =0
9 digit= 0
10 other =0
11 forcins:
12 ifc、isalpha():
13 letter+=1
14elifc。
isspace():
15 space+=1
16 elifc。
isdigit():
17 digit+=1
18 else:
19 other+=1
20 print’There are%d letters,%dspaces,%d digitsand %d othercharacters in yourstring。
’%(letter,space,digit,other)
21
22 if__name__ =='__main__':
23 main()
【程序18】
题目:
求s=a+aa+aaa+aaaa+aa。
。
。
a得值,其中a就是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1 #!
/usr/bin/python
2#—*-coding:
utf—8-*-
3defmain():
4 basis=int(raw_input("Inputthebasis number:
”))
5 n=int(raw_input("Input thelongestlengthof number:
"))
6 b= basis
7 sum= 0
8 foriinrange(0,n):
9ifi==n—1:
10 print "%d”%(basis),
11else:
12 print”%d+”%(basis),
13 sum+=basis
14 basis= basis*10+b
15 print’=%d'%(sum),
16
17
18if__name__=='__main__’:
19main()
【程序19】ﻫ题目:
一个数如果恰好等于它得因子之与,这个数就称为“完数”。
例如6=1+2+3.编程
找出1000以内得所有完数。
1from math importsqrt
2 n =int(raw_input('inputanumber:
'))
3 sum =n*-1
4k= int(sqrt(n))
5foriin range(1,k+1):
6ifn%i== 0:
7 sum +=n/i
8 sum+=i
9ifsum== n:
10 print'YES'
11else:
12print’NO'
1’''
2【程序20】
3题目:
一球从100米高度自由落下,每次落地后反跳回原高度得一半;再落下,求它在
4 第10次落地时,共经过多少米?
第10次反弹多高?
5’'’
6s= 100.
7h=50.0
8 for iinrange(2,11):
9 s +=2*h
10h /= 2
11 print”thesumlength of path:
%f"%s
12print"thelast height is:
%f"%h
1''’
2 【程序21】
3 题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
4 第二天早上又将剩下得桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下
5 得一半零一个、到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
6’'’
7n =1
8foriinrange(9,0,-1):
9 n=(n+1)<〈1
10 print n
1 ''’
2★
3【程序22】
4题目:
两个乒乓球队进行比赛,各出三人。
甲队为a,b,c三人,乙队为x,y,z三人。
已抽签决定
5 比赛名单。
有人向队员打听比赛得名单。
a说她不与x比,c说她不与x,z比,请编程序找出
6 三队赛手得名单。
7'''
8 foriinrange(ord('x'),ord(’z’)+1):
9forjinrange(ord('x'),ord('z’) +1):
10 ifi!
=j:
11 fork inrange(ord(’x'),ord(’z')+1):
12 if(i!
= k)and(j !
= k):
13 if(i!
=ord(’x’))and (k!
= ord('x'))and(k!
=ord('z')):
14 print 'orderisa--%s\t b—-%s\tc-—%s'% (chr(i),chr(j),chr(k))
1’''
2【程序23】
3题目:
打印出如下图案(菱形)
4
5*
6***
7*****
8*******
9*****
10***
11 *
12 '’'
13 foriinrange(1,8,2):
14 print ''*(4—(i+1)/2)+'*'*i
15foriinrange(5,0,-2):
16 print' '*(4—(i+1)/2)+'*'*i
1’'’
2【程序24】
3题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列得前20项之与。
4 '’’
5 u=2.0
6d=1、0
7s=0、0
8foriinrange(0,20):
9 s=s+u/d
10 u=u+d
11 d=u-d
12print'%f'%s
1 '''
2【程序25】
3题目:
求1+2!
+3!
+。
、.+20!
得与
4''’
5 s=0
6t =1
7 fori inrange(1,21):
8t*=i
9 s+=t
10prints
1’’’
2【程序26】
3 题目:
利用递归方法求5!
。
4'''
5deffun(i):
6 ifi==1:
7return1
8returni*fun(i-1)
9
10printfun(5)
1’''
2【程序27】
3题目:
利用递归函数调用方式,将所输入得5个字符,以相反顺序打印出来。
4’'’
5def output(s,l):
6 ifl==0:
7 return
8 prints[l—1]
9 output(s,l—1)
10
11s= raw_input('Inputastring:
')
12l=len(s)
13output(s,l)
1''’
2【程序28】
3 题目:
有5个人坐在一起,问第五个人多少岁?
她说比第4个人大2岁。
问第4个人岁数,她说比第
4 3个人大2岁。
问第三个人,又说比第2人大两岁。
问第2个人,说比第一个人大两岁。
最后
5 问第一个人,她说就是10岁、请问第五个人多大?
6 ''’
7deffun(i):
8ifi==1:
9 return10
10 returnfun(i-1)+2
11
12printfun(5)
1'''
2 【程序29】
3题目:
给一个不多于5位得正整数,要求:
一、求它就是几位数,二、逆序打印出各位数字。
4 '''
5 def fun(i,cnt):
6 ifi==0:
7 print’Thereare%ddigitinthenumber、'%cnt
8 return
9 printi%10,
10i/=10
11 cnt+=1
12fun(i,cnt)
13
14i=int(raw_input('Inputa number:
’))
15fun(i,0)
1''’
2【程序30】
3题目:
一个5位数,判断它就是不就是回文数。
即12321就是回文数,个位与万位相同,十位与千位相同。
4’’'
5ans=['Yes’,'No']
6i=int(raw_input('Input anumber(10000~99999):
’))
7ifi<10000ori>99999:
8 print'InputError!
’
9 else:
10 i=str(i)
11flag= 0
12 forjinrange(0,2):
13 if i[j]!
=i[4-j]:
14 flag= 1
15 break
16 printans[flag]
1’'’
2【程序36】【筛选法】
3题目:
求100之内得素数
4'''
5a=[0]*101
6 fori inrange(2,11):
7 forjinrange(i+i,101,i):
8 a[j]=-1;
9foriinrange(2,101):
10 if a[i]!
=-1:
11print ’’,i,
1'''
2 【程序37】
3题目:
对10个数进行排序
4 '’'
5print 'input10 numbers please:
'
6 l=[]
7foriinrange(10):
8 l。
append(int(raw_input(’Inputanumber:
')))
9 #可以直接使用sort函数:
l、sort()
10#也可以自己写排序代码(选择排序)
11foriinrange(9):
12forj in range(i+1,10):
13if l[j]14temp = l[j]
15 l[j]=l[i]
16 l[i] =temp
17printl
1'''
2【程序38】
3 题目:
求一个3*3矩阵对角线元素之与
4’’’
5 l = []
6foriinrange(3):
7forjinrange(3):
8 l、append(int(raw_input('Input anumber:
')))
9s=0
10foriinrange(3):
11 s += l[3*i+i]
12prints
1’''
2 【程序39】
3题目:
有一个已经排好序得数组。
现输入一个数,要求按原来得规律将它插入数组中、
4 ''’
5l=[0,10,20,30,40,50]
6
7print 'Thesortedlistis:
',l
8 cnt=len(l)
9n =int(raw_input(’Input anumber:
’))
10l、append(n)
11fori in range(cnt):
12 ifn13 for jinrange(cnt,i,-1):
14 l[j]=l[j—1]
15 l[i] =n
16break
17print ’Thenewsorted listis:
',l
1 ''’
2【程序40】
3题目:
将一个数组逆序输出。
4''’
5a= [1,2,3,4,5,6,7,8,9]
6l =len(a)
7print a
8fori inrange(l/2):
9 a[i],a[l-i—1]=a[l-i—1],a[i]#注意此句
10 printa
1 ’’'
2 【程序41】
3题目:
学习static定义静态变量得用法
4题目:
学习使用auto定义变量得用法
5 题目:
学习使用external得用法
6 题目:
学习使用register定义变量得方法
7题目:
宏#define命令练习
8''’
9#Python没有这些功能
1'''
2演示lambda得使用。
3'’'
4MAXIMUM=lambda x,y:
(x >y)*x+(x 〈y)*y
5MINIMUM = lambdax,y :
(x〉 y) *y+(x <y) *x
6
7if__name__=='__main__’:
8 a= 10
9b =20
10 print'The largarone is%d'%MAXIMUM(a,b)
11 print 'Theloweroneis%d' %MINIMUM(a,b)
1'’'
2【程序51】
3题目:
学习使用按位与&。
4程序分析:
0&0=0;0&1=0; 1&0=0;1&1=1
5
6题目:
学习使用按位或 | 、
7 程序分析:
0|0=0;0|1=1; 1|0=1;1|1=1
8
9题目:
学习使用按位异或^、
10程序分析:
0^0=0;0^1=1;1^0=1; 1^1=0
11
12题目:
学习使用按位取反~。
13程序分析:
~0=1;~1=0
14
15’’'
16a=077#8进制
17 b = a&3
18 print ’077&3=%d’%b
19b&=7
20print’077&3&7=%d'%b
21
22a =077
23b=a |3
24print'077|3=%d'%b
25b|=7
26print ’077|3|7=%d'%b
27
28a = 077
29b=a^3
30print ’077^3=%d'%b
31b^=7
32 print’077^3^7=%d’%b
1 '’’
2【程序54】
3题目:
取一个整数a从右端开始得4~7