python经典例题100道.docx

上传人:数据九部 文档编号:9937817 上传时间:2021-04-05 格式:DOCX 页数:25 大小:234.37KB
返回 下载 相关 举报
python经典例题100道.docx_第1页
第1页 / 共25页
python经典例题100道.docx_第2页
第2页 / 共25页
python经典例题100道.docx_第3页
第3页 / 共25页
python经典例题100道.docx_第4页
第4页 / 共25页
python经典例题100道.docx_第5页
第5页 / 共25页
点击查看更多>>
资源描述

《python经典例题100道.docx》由会员分享,可在线阅读,更多相关《python经典例题100道.docx(25页珍藏版)》请在三一文库上搜索。

1、【程序 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 万元的部分

2、按 1% 提成,从键盘输入当月利润 I,求应发放奖金总数?1234567891011#Filename:002.pyi = int(raw_input(Enter the profit:)arr = 1000000,600000,400000,200000,100000,0rat = 0.01,0.015,0.03,0.05,0.075,0.1r = 0for idx in range(0,6):if iarridx:r+=(i-arridx)*ratidxprint (i-arridx)*ratidxi=arridxprint r【程序 3 】题目:一个整数,它加上 100 后是一个完全平方

3、数,再加上 168 又是一个完全平方数,请 问该数是多少?【感谢 12 楼的同学 peiqianggao 提供代码】# -*- coding:utf-8 -*-Created on 2015-6-7# 第三题:一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完 全平方数,请问该数是多少author: Administratorimport mathnum = 1while True:if math.sqrt(num + 100)-int(math.sqrt(num + 100) = 0 and math.sqrt(num + 268)-int(math.sqrt(num

4、+ 268) = 0:print(num)breaknum += 1【程序 4 】题目:输入某年某月某日,判断这一天是这一年的第几天?12345678#author: 叛军import datetimeimport timedtstr = str(raw_input(Enter the datetime:(20151215):)dt = datetime.datetime.strptime(dtstr, %Y%m%d)another_dtstr =dtstr:4 +0101another_dt = datetime.datetime.strptime(another_dtstr, %Y%m%d

5、) print (int(dt-another_dt).days) + 1)【程序 5 】题目:输入三个整数 x,y,z,请把这三个数由小到大输出。 【程序 8 】题目:输出 9*9 口诀。1 for i in range(1,10):2 for j in range(1,i+1):3print i,*,j,=,i*j,4 print 【程序 11 】题目:古典问题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第 三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1 a = 12 b = 13 for i in range(1,21,2):4 print

6、 %d %d%(a,b),5 a += b6 b += a【程序 12 】题目:判断 101-200 之间有多少个素数,并输出所有素数。12345678910111213141516#!/usr/bin/python#-*- coding:utf-8 -*-from math import sqrtdef main():for i in range(101,201):flag = 1k = int(sqrt(i)for j in range(2,k+1):if i%j = 0:flag = 0breakif flag = 1:print %5d%(i),if _name_ = _main_:

7、main()【程序 13 】题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153 是一个“水仙花数”,因为 153=1 方。的三次方5 的三次方3 的三次123456789101112#!/usr/bin/python#-*- coding:utf-8 -*-def main():for i in range(100,1000):a = i%10b = i/100c = (int(i/10)%10if i = a*3+b*3+c*3:print %5d%(i),if _name_ = _main_: main()【程序 14 】题目:将一个

8、正整数分解质因数。例如:输入 90, 打印出 90=2*3*3*5 。12345678910111213141516171819#!/usr/bin/python#-*- coding:utf-8 -*-def main():n = int(raw_input(Enter a number:) print n,=,while(n!=1):for i in range(2,n+1):if (n%i)=0:n/=iif(n = 1):print %d%(i)else:print %d *%(i),breakif _name_ = _main_:main()【程序 15 】题目:利用条件运算符的嵌套

9、来完成此题:学习成绩=90 之间的用 B 表示,60 分以下的用 C 表示。分的同学用 A 表示,60-89 分1234567891011121314#!/usr/bin/python#-*- coding:utf-8 -*-def main():s = int(raw_input(Enter a number:) if s=90:grade = Aelif s=60:grade = Belse:grade = Cprint grade,if _name_ = _main_:main()【程序 17 】题目:输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 1 #!/usr/

10、bin/python2 #-*- coding:utf-8 -*-3 #there is no + operator in Python4 import string5 def main():6 s = raw_input(input a string:)7 letter = 08 space = 09 digit = 010 other = 011 for c in s:1213141516171819if c.isalpha():letter+=1elif c.isspace():space+=1elif c.isdigit():digit+=1else:other+=120 print

11、There are %d letters,%d spaces,%d digits and %d other characters in your string.%(letter,space,digit,other)2020 if _name_ = _main_:21 main()【程序 18 】题目:求 s=a+aa+aaa+aaaa+aa.a的值,其中 a 是一个数字。例如2+22+222+2222+22222(此时共有 5 个数相加),几个数相加有键盘控制。1 #!/usr/bin/python2 #-*- coding:utf-8 -*-3 def main():4 basis = in

12、t(raw_input(Input the basis number:)5 n = int(raw_input(Input the longest length of number:) 6 b = basis7 sum = 08 for i in range(0,n):91011121314if i=n-1:print %d %(basis),else:print %d +%(basis),sum+=basisbasis = basis*10+b15 print = %d%(sum),151615 if _name_ = _main_:16 main()【程序 19 】题目:一个数如果恰好等于

13、它的因子之和,这个数就称为“完数”。例如 6=1 2 3.编程 找出 1000 以内的所有完数。123456789101112from math import sqrtn = int(raw_input(input a number:) sum = n*-1k = int(sqrt(n)for i in range(1,k+1):if n%i = 0:sum += n/isum += iif sum = n:print YESelse:print NO1 2 【程序 20】3 题目:一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落 下,求它在4 第 10 次落地时,共经过多少

14、米?第 10 次反弹多高?5 6 s = 100.7 h = 50.08 for i in range(2,11):9 s += 2*h10 h /= 211 print the sum length of path:%f%s12 print the last height is:%f%h1 2 【程序 21】3 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾, 又多吃了一个4 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上 都吃了前一天剩下5 的一半零一个。到第 10 天早上想再吃时,见只剩下一个桃子了。求第 一天共摘了多少。6 7 n = 18 for i

15、 in range(9,0,-1):9 n = (n+1)110 print n1 2 3 【程序 22】4 题目:两个乒乓球队进行比赛,各出三人。甲队为 a,b,c 三人,乙队为 x,y,z 三人。已抽签决定5 比赛名单。有人向队员打听比赛的名单。a 说他不和 x 比,c 说他不和 x,z 比,请编程序找出6 三队赛手的名单。7 8 for i in range(ord(x),ord(z) + 1):9 for j in range(ord(x),ord(z) + 1):10111213ord(z):14if i != j:for k in range(ord(x),ord(z) + 1):

16、if (i != k) and (j != k):if (i != ord(x) and (k != ord(x) and (k !=print order is a - %st b - %stc-%s %(chr(i),chr(j),chr(k)1 2 【程序 23】3 题目:打印出如下图案(菱形) 45 *678910111213141516*for i in range(1,8,2):print *(4-(i+1)/2)+*i for i in range(5,0,-2):print *(4-(i+1)/2)+*i1 2 【程序 24】3 题目:有一分数序列:2/1,3/2,5/3,8/

17、5,13/8,21/13.求出这个数列 的前 20 项之和。4 5 u = 2.06 d = 1.07 s = 0.08 for i in range(0,20):9 s = s+u/d10 u = u+d11 d = u-d12 print %f%s123456789101234【程序 25】题目:求 1+2!+3!+.+20!的和 s = 0t = 1for i in range(1,21):t*=is+=tprint s【程序 26】题目:利用递归方法求 5!。 5 def fun(i):6 if i=1:7return 18 return i*fun(i-1)88 print fun(

18、5)12345678910111213【程序 27】题目:利用递归函数调用方式,将所输入的 5 个字符,以相反顺序打印出来。 def output(s,l):if l=0:returnprint sl-1output(s,l-1)s = raw_input(Input a string:)l = len(s)output(s,l)1 2 【程序 28】3 题目:有 5 个人坐在一起,问第五个人多少岁?他说比第 4 个人大 2 岁。问 第 4 个人岁数,他说比第4 3 个人大 2 岁。问第三个人,又说比第 2 人大两岁。问第 2 个人,说 比第一个人大两岁。最后5 问第一个人,他说是 10 岁。

19、请问第五个人多大?6 7 def fun(i):8 if i=1:9return 1010 return fun(i-1)+21010 print fun(5)1 2 【程序 29】3 题目:给一个不多于 5 位的正整数,要求:一、求它是几位数,二、逆序打 印出各位数字。4 5 def fun(i,cnt):6 if i=0:78print There are %d digit in the number.%cnt return9 print i%10,10 i/=1011 cnt+=112 fun(i,cnt)99 i = int(raw_input(Input a number:)10 f

20、un(i,0)1 2 【程序 30】3 题目:一个 5 位数,判断它是不是回文数。即 12321 是回文数,个位与万位 相同,十位与千位相同。4 5 ans=Yes,No6 i = int(raw_input(Input a number(1000099999):)7 if i99999:8 print Input Error!9 else:10 i = str(i)11 flag = 012 for j in range(0,2):131415if ij!=i4-j:flag = 1break16 print ansflag1234567891011【程序 36】【筛选法】题目:求 100

21、之内的素数a = 0*101for i in range(2,11):for j in range(i+i,101,i):aj=-1;for i in range(2,101):if ai!=-1:print ,i,1234567891011121314151617123456789101112【程序 37】题目:对 10 个数进行排序print input 10 numbers please:l = for i in range(10):l.append(int(raw_input(Input a number:)#可以直接使用 sort 函数:l.sort()#也可以自己写排序代码(选择排

22、序)for i in range(9):for j in range(i+1,10):if ljli:temp = ljlj = lili = tempprint l【程序 38】题目:求一个 3*3 矩阵对角线元素之和l = for i in range(3):for j in range(3):l.append(int(raw_input(Input a number:)s = 0for i in range(3):s += l3*i+iprint s1 2 【程序 39】3 题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插 入数组中。4 5 l = 0,10,20,30

23、,40,5017 print The sorted list is:,l89910111213141516cnt = len(l)n = int(raw_input(Input a number:) l.append(n)for i in range(cnt):if n y) * x + (x y) * y + (x y) * xif _name_ = _main_:8910111234567841011121314151617181920212223242526272829303132a = 10b = 20print The largar one is %d % MAXIMUM(a,b)

24、print The lower one is %d % MINIMUM(a,b)【程序 51】题目:学习使用按位与 & 。程序分析:0&0=0; 0&1=0; 1&0=0; 1&1=1题目:学习使用按位或 | 。程序分析:0|0=0; 0|1=1; 1|0=1; 1|1=1题目:学习使用按位异或 。程序分析:00=0; 01=1; 10=1; 11=0题目:学习使用按位取反。程序分析:0=1; 1=0a = 077#8 进制b = a&3print 077&3=%d%bb&=7print 077&3&7=%d%ba = 077b = a | 3print 077|3=%d % bb |= 7p

25、rint 077|3|7=%d % ba = 077b = a 3print 0773=%d % bb = 7print 07737=%d % b1234【程序 54】题目:取一个整数 a 从右端开始的 47 位。 5 a = 1006 print 100&0x00F0123456789511121314151617123456789101112131415161718192021【程序 56】题目:画圆【Tkinter 模块】if _name_ = _main_:from Tkinter import *canvas = Canvas(width=800, height=600, bg=re

26、d) canvas.pack(expand=YES, fill=BOTH)k = 1j = 1for i in range(0,26):canvas.create_oval(310 - k,250 - k,310 + k,250 + k, width=1) k += jj += 0.3mainloop()【程序 57】题目:画直线。1. 程序分析:2. 程序源代码:if _name_ = _main_:from Tkinter import *canvas = Canvas(width=300, height=300, bg=green) canvas.pack(expand=YES, fil

27、l=BOTH)x 0 = 263y 0 = 263y1 = 275x1 = 275for i in range(19):canvas.create_line(x0,y0,x0,y1, width=1, fill=red)x 0 = x0 - 5y 0 = y0 - 5x 1 = x1 + 5y 1 = y1 + 5222324252627282930313212345678910612131415161718192021221234567x 0 = 263y 1 = 275y0 = 263for i in range(21):canvas.create_line(x0,y0,x0,y1,fil

28、l = red)x 0 += 5y 0 += 5y1 += 5mainloop()【程序 58】题目:画方形。if _name_ = _main_:from Tkinter import *root = Tk()root.title(Canvas)canvas = Canvas(root,width = 400,height = 400,bg = yellow) x0 = 263y0 = 263y1 = 275x1 = 275for i in range(19):canvas.create_rectangle(x0,y0,x1,y1)x 0 -= 5y 0 -= 5x 1 += 5y 1 +=

29、 5canvas.pack()root.mainloop()题目:画图,综合例子。1. 程序分析:2. 程序源代码:if _name_ = _main_:from Tkinter import *89101112131415161717181920212223242526272829303132333435canvas = Canvas(width = 300,height = 300,bg = green) canvas.pack(expand = YES,fill = BOTH)x 0 = 150y 0 = 100canvas.create_oval(x0 - 10,y0 - 10,x0

30、+ 10,y0 + 10) canvas.create_oval(x0 - 20,y0 - 20,x0 + 20,y0 + 20) canvas.create_oval(x0 - 50,y0 - 50,x0 + 50,y0 + 50) import mathB = 0.809for i in range(16):a = 2 * math.pi / 16 * ix = math.ceil(x0 + 48 * math.cos(a)y = math.ceil(y0 + 48 * math.sin(a) * B) canvas.create_line(x0,y0,x,y,fill = red)can

31、vas.create_oval(x0 - 60,y0 - 60,x0 + 60,y0 + 60)for k in range(501):for i in range(17):a = (2 * math.pi / 16) * i + (2 * math.pi / 180) * k x = math.ceil(x0 + 48 * math.cos(a)y = math.ceil(y0 + 48 + math.sin(a) * B)canvas.create_line(x0,y0,x,y,fill = red)for j in range(51):a = (2 * math.pi / 16) * i + (2* math.pi / 180) * k - 1 x = math.ceil(x0 + 48 * math.cos(a)y = math.ceil(y0 + 48 * math.sin(a) * B)canvas.create_line(x0,y0,x,y,fill = red)mainloop()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1