python经典编辑例题100道.docx
《python经典编辑例题100道.docx》由会员分享,可在线阅读,更多相关《python经典编辑例题100道.docx(22页珍藏版)》请在冰豆网上搜索。
![python经典编辑例题100道.docx](https://file1.bdocx.com/fileroot1/2023-1/7/90c8fa15-6b3a-4c58-be0d-e20fcc51918d/90c8fa15-6b3a-4c58-be0d-e20fcc51918d1.gif)
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.py
2i=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=0
6foridxinrange(0,6):
7ifi>arr[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
'''
importmath
num=1
whileTrue:
ifmath.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
3importtime
4dtstr=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=1
2b=1
3foriinrange(1,21,2):
4print'%d%d'%(a,b),
5a+=b
6b+=a
【程序12】
题目:
判断101-200之间有多少个素数,并输出所有素数。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3frommathimportsqrt
4defmain():
5foriinrange(101,201):
6flag=1
7k=int(sqrt(i))
8forjinrange(2,k+1):
9ifi%j==0:
10flag=0
11break
12ifflag==1:
13print'%5d'%(i),
14
15if__name__=="__main__":
16main()
【程序13】
题目:
打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3defmain():
4foriinrange(100,1000):
5a=i%10
6b=i/100
7c=(int(i/10))%10
8ifi==a**3+b**3+c**3:
9print"%5d"%(i),
10
11if__name__=="__main__":
12main()
【程序14】
题目:
将一个正整数分解质因数。
例如:
输入90,打印出90=2*3*3*5。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3
4defmain():
5n=int(raw_input('Enteranumber:
'))
6printn,'=',
7while(n!
=1):
8foriinrange(2,n+1):
9if(n%i)==0:
10n/=i
11if(n==1):
12print'%d'%(i)
13else:
14print'%d*'%(i),
15break
16
17
18if__name__=="__main__":
19main()
【程序15】
题目:
利用条件运算符的嵌套来完成此题:
学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3defmain():
4s=int(raw_input('Enteranumber:
'))
5ifs>=90:
6grade='A'
7elifs>=60:
8grade='B'
9else:
10grade='C'
11printgrade,
12
13if__name__=='__main__':
14main()
【程序17】
题目:
输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3#thereisno++operatorinPython
4importstring
5defmain():
6s=raw_input('inputastring:
')
7letter=0
8space=0
9digit=0
10other=0
11forcins:
12ifc.isalpha():
13letter+=1
14elifc.isspace():
15space+=1
16elifc.isdigit():
17digit+=1
18else:
19other+=1
20print'Thereare%dletters,%dspaces,%ddigitsand%dothercharactersinyourstring.'%(letter,space,digit,other)
21
22if__name__=='__main__':
23main()
【程序18】
题目:
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。
例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
1#!
/usr/bin/python
2#-*-coding:
utf-8-*-
3defmain():
4basis=int(raw_input("Inputthebasisnumber:
"))
5n=int(raw_input("Inputthelongestlengthofnumber:
"))
6b=basis
7sum=0
8foriinrange(0,n):
9ifi==n-1:
10print"%d"%(basis),
11else:
12print"%d+"%(basis),
13sum+=basis
14basis=basis*10+b
15print'=%d'%(sum),
16
17
18if__name__=='__main__':
19main()
【程序19】
题目:
一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程
找出1000以内的所有完数。
1frommathimportsqrt
2n=int(raw_input('inputanumber:
'))
3sum=n*-1
4k=int(sqrt(n))
5foriinrange(1,k+1):
6ifn%i==0:
7sum+=n/i
8sum+=i
9ifsum==n:
10print'YES'
11else:
12print'NO'
1'''
2【程序20】
3题目:
一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在
4 第10次落地时,共经过多少米?
第10次反弹多高?
5'''
6s=100.
7h=50.0
8foriinrange(2,11):
9s+=2*h
10h/=2
11print"thesumlengthofpath:
%f"%s
12print"thelastheightis:
%f"%h
1'''
2【程序21】
3题目:
猴子吃桃问题:
猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个
4 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。
以后每天早上都吃了前一天剩下
5 的一半零一个。
到第10天早上想再吃时,见只剩下一个桃子了。
求第一天共摘了多少。
6'''
7n=1
8foriinrange(9,0,-1):
9n=(n+1)<<1
10printn
1'''
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题目:
打印出如下图案(菱形)
4
5*
6***
7*****
8*******
9*****
10***
11*
12'''
13foriinrange(1,8,2):
14print''*(4-(i+1)/2)+'*'*i
15foriinrange(5,0,-2):
16print''*(4-(i+1)/2)+'*'*i
1'''
2【程序24】
3题目:
有一分数序列:
2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
4'''
5u=2.0
6d=1.0
7s=0.0
8foriinrange(0,20):
9s=s+u/d
10u=u+d
11d=u-d
12print'%f'%s
1'''
2【程序25】
3题目:
求1+2!
+3!
+...+20!
的和
4'''
5s=0
6t=1
7foriinrange(1,21):
8t*=i
9s+=t
10prints
1'''
2【程序26】
3题目:
利用递归方法求5!
。
4'''
5deffun(i):
6ifi==1:
7return1
8returni*fun(i-1)
9
10printfun(5)
1'''
2【程序27】
3题目:
利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
4'''
5defoutput(s,l):
6ifl==0:
7return
8prints[l-1]
9output(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:
9return10
10returnfun(i-1)+2
11
12printfun(5)
1'''
2【程序29】
3题目:
给一个不多于5位的正整数,要求:
一、求它是几位数,二、逆序打印出各位数字。
4'''
5deffun(i,cnt):
6ifi==0:
7print'Thereare%ddigitinthenumber.'%cnt
8return
9printi%10,
10i/=10
11cnt+=1
12fun(i,cnt)
13
14i=int(raw_input('Inputanumber:
'))
15fun(i,0)
1'''
2【程序30】
3题目:
一个5位数,判断它是不是回文数。
即12321是回文数,个位与万位相同,十位与千位相同。
4'''
5ans=['Yes','No']
6i=int(raw_input('Inputanumber(10000~99999):
'))
7ifi<10000ori>99999:
8print'InputError!
'
9else:
10i=str(i)
11flag=0
12forjinrange(0,2):
13ifi[j]!
=i[4-j]:
14flag=1
15break
16printans[flag]
1'''
2【程序36】【筛选法】
3题目:
求100之内的素数
4'''
5a=[0]*101
6foriinrange(2,11):
7forjinrange(i+i,101,i):
8a[j]=-1;
9foriinrange(2,101):
10ifa[i]!
=-1:
11print'',i,
1'''
2【程序37】
3题目:
对10个数进行排序
4'''
5print'input10numbersplease:
'
6l=[]
7foriinrange(10):
8l.append(int(raw_input('Inputanumber:
')))
9#可以直接使用sort函数:
l.sort()
10#也可以自己写排序代码(选择排序)
11foriinrange(9):
12forjinrange(i+1,10):
13ifl[j]14temp=l[j]
15l[j]=l[i]
16l[i]=temp
17printl
1'''
2【程序38】
3题目:
求一个3*3矩阵对角线元素之和
4'''
5l=[]
6foriinrange(3):
7forjinrange(3):
8l.append(int(raw_input('Inputanumber:
')))
9s=0
10foriinrange(3):
11s+=l[3*i+i]
12prints
1'''
2【程序39】
3题目:
有一个已经排好序的数组。
现输入一个数,要求按原来的规律将它插入数组中。
4'''
5l=[0,10,20,30,40,50]
6
7print'Thesortedlistis:
',l
8cnt=len(l)
9n=int(raw_input('Inputanumber:
'))
10l.append(n)
11foriinrange(cnt):
12ifn13forjinrange(cnt,i,-1):
14l[j]=l[j-1]
15l[i]=n
16break
17print'Thenewsortedlistis:
',l
1'''
2【程序40】
3题目:
将一个数组逆序输出。
4'''
5a=[1,2,3,4,5,6,7,8,9]
6l=len(a)
7printa
8foriinrange(l/2):
9a[i],a[l-i-1]=a[l-i-1],a[i]#注意此句
10printa
1'''
2【程序41】
3题目:
学习static定义静态变量的用法
4题目:
学习使用auto定义变量的用法
5题目:
学习使用external的用法
6题目:
学习使用register定义变量的方法
7题目:
宏#define命令练习
8'''
9#Python没有这些功能
1'''
2演示lambda的使用。
3'''
4MAXIMUM=lambdax,y:
(x>y)*x+(x5MINIMUM=lambdax,y:
(x>y)*y+(x6
7if__name__=='__main__':
8a=10
9b=20
10print'Thelargaroneis%d'%MAXIMUM(a,b)
11print'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进制
17b=a&3
18print'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
32print'077^3^7=%d'%b
1'''
2【程序54】
3题目:
取一个整数a从右端开始的4~7位。
4'''
5a=100
6print100&0x00F0
1'''
2【程序56】
3题目:
画圆【Tkinter模块】
4'''
5if__name__=='__main__':
6fromTkinterimport*
7
8canvas=Canvas(width=800,height=600,bg='red')
9canvas.pack(expand=YES,fill=BOTH)
10k=1
11j=1
12foriinrange(0,26):
13canvas.create_oval(310-k,250-k,310+k,250+k,width=1)
14k+=j