python100题目_python基础100练习题.docx

《python基础100练习题.docx》由会员分享,可在线阅读,更多相关《python基础100练习题.docx(39页珍藏版)》请在人人文库网上搜索。

1、实例001数字组合题目 有四个数字1、2、3、4,能组成多少个互不相同且无重复数字的三位数各是多少程序分析 遍历全部可能,把有重复的剃掉。total0for i in range1,5 for j in range1,5 for k in range1,5 if ijandjkandki printi,j,k total1printtotal12345678简便方法 用itertools中的permutations即可。import itertoolssum20a1,2,3,4for i in itertools.permutationsa,3 printi sum21printsum2123。

2、45678实例002“个税计算”题目 企业发放的奖金根据利润提成。利润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,求应发放奖金总数程序分析 分区间计算即可。profitintShow me the money bonus0thresholds100000,100000,2000。

3、00,200000,400000rates0.1,0.075,0.05,0.03,0.015,0.01for i in rangelenthresholds if profitthresholdsi bonusprofit*ratesi profit0 break else bonusthresholdsi*ratesi profit-thresholdsibonusprofit*rates-1printbonus1234567891011121314实例003完全平方数题目 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少程序分析 因为168对于指数爆。

4、炸来说实在太小了,所以可以直接省略数学分析,用最朴素的方法来获取上限n0while n12-n*n168 n1printn185123456789思路是最坏的结果是n的平方与n1的平方刚好差168,由于是平方的关系,不可能存在比这更大的间隙。至于判断是否是完全平方数,最简单的方法是平方根的值小数为0即可。结合起来n0while n12-n*n168 n1for i in rangen12 if i0.5inti0.5 and i1680.5inti1680.5 printi-1001234567实例004这天第几天题目 输入某年某月某日,判断这一天是这一年的第几天程序分析 特殊情况,闰年时需考。

5、虑二月多加一天def isLeapYeary return y4000 or y40 and y1000DofM0,31,28,31,30,31,30,31,31,30,31,30res0yearintYearmonthintMonthdayintdayif isLeapYearyear DofM21for i in rangemonth resDofMiprintresday12345678910111213实例005三数排序题目 输入三个整数x,y,z,请把这三个数由小到大输出。程序分析 练练手就随便找个排序算法实现一下,偷懒就直接调函数。rawfor i in range3 xintin。

6、td i raw.appendx for i in rangelenraw for j in rangei,lenraw if rawirawj rawi,rawjrawj,rawiprintrawraw2for i in range3 xintintd i raw2.appendxprintsortedraw2123456789101112131415161718实例006斐波那契数列题目 斐波那契数列。程序分析 斐波那契数列(Fibonacci sequence),从1,1开始,后面每一项等于前面两项之和。图方便就递归实现,图性能就用循环。 递归实现def Fibn return 1 if。

7、 n2 else Fibn-1Fibn-2printFibint 朴素实现targetintres0a,b1,1for i in rangetarget-1 a,bb,abprinta12345678910111213实例007copy题目 将一个列表的数据复制到另一个列表中。程序分析 使用列表,拿不准可以调用copy模块。import copya 1,2,3,4,a,bb a 赋值c a 浅拷贝d copy.copya 浅拷贝e copy.deepcopya 深拷贝a.append5a4.appendcprinta,aprintb,bprintc,cprintd,dprinte,。

8、e RESTART FPyWorkspacePython100100examples007.py a 1, 2, 3, 4, a, b, c, 5b 1, 2, 3, 4, a, b, c, 5c 1, 2, 3, 4, a, b, cd 1, 2, 3, 4, a, b, ce 1, 2, 3, 4, a, b1234567891011121314151617181920212223实例008九九乘法表题目 输出 9*9 乘法口诀表。程序分析 分行与列考虑,共9行9列,i控制行,j控制列。for i in range1,10 for j in range1,i1 printd*d2ld i,。

9、j,i*j,end print1234实例009暂停一秒输出题目 暂停一秒输出。程序分析 使用 time 模块的 sleep 函数。import timefor i in range4 printstrinttime.time-2 time.sleep11234实例010给人看的时间题目 暂停一秒输出,并格式化当前时间。程序分析 同009.import timefor i in range4 printtime.strftimeY-m-d HMS,time.localtimetime.time time.sleep112345实例011养兔子题目 有一对兔子,从出生后第3个月起每个月都生一对兔。

10、子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少程序分析 我认为原文的解法有点扯,没有考虑3个月成熟的问题,人家还是婴儿怎么生孩子考虑到三个月成熟,可以构建四个数据,其中一月兔每个月长大成为二月兔,二月兔变三月兔,三月兔变成年兔,成年兔(包括新成熟的三月兔)生等量的一月兔。monthint繁殖几个月 month_11month_20month_30month_elder0for i in rangemonth month_1,month_2,month_3,month_eldermonth_eldermonth_3,month_1,month_2,month。

11、_eldermonth_3 print第d个月共i1,month_1month_2month_3month_elder,对兔子 print其中1月兔,month_1 print其中2月兔,month_2 print其中3月兔,month_3 print其中成年兔,month_elder123456789101112实例012100到200的素数题目 判断101-200之间有多少个素数,并输出所有素数。程序分析 判断素数的方法用一个数分别去除2到sqrt这个数,如果能被整除,则表明此数不是素数,反之是素数。 用else可以进一步简化代码.import mathfor i in range100,。

12、200 flag0 for j in range2,roundmath.sqrti1 if ij0 flag1 break if flag continue printiprintnSimplify the code with elsenfor i in range100,200 for j in range2,roundmath.sqrti1 if ij0 break else printi123456789101112131415161718192021实例013所有水仙花数题目 打印出所有的水仙花数,所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如153是一个水仙花数,因为。

13、1531的三次方5的三次方3的三次方。程序分析 利用for循环控制100-999个数,每个数分解出个位,十位,百位。for i in range100,1000 sstri oneints-1 tenints-2 hunints-3 if i one3ten3hun3 printi1234567实例014分解质因数题目 将一个整数分解质因数。例如输入90,打印出90233*5。程序分析 根本不需要判断是否是质数,从2开始向数本身遍历,能整除的肯定是最小的质数。targetint输入一个整数printtarget, ,endif target0 targetabstarget print-1*,。

14、endflag0if target1 printtarget flag1while True if flag break for i in range2,inttarget1 if targeti0 printdi,end if targeti flag1 break print*,end target/i break 1234567891011121314151617181920212223242526实例015分数归档题目 利用条件运算符的嵌套来完成此题学习成绩90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。程序分析 用条件判断即可。pointsint输入分数if 。

15、points90 gradeAelif points60 gradeCelse gradeBprintgrade12345678实例016输出日期题目 输出指定格式的日期。程序分析 使用 datetime 模块。import datetimeprintdatetime.date.todayprintdatetime.date2333,2,3printdatetime.date.today.strftimed/m/Ydaydatetime.date1111,2,3dayday.replaceyearday.year22printday1234567实例017字符串构成题目 输入一行字符,分别统计。

16、出其中英文字母、空格、数字和其它字符的个数。程序分析 利用 while 或 for 语句,条件为输入的字符不为 n。string输入字符串alp0num0spa0oth0for i in rangelenstring if stringi.isspace spa1 elif stringi.isdigit num1 elif stringi.isalpha alp1 else oth1printspace ,spaprintdigit ,numprintalpha ,alpprintother ,oth12345678910111213141516171819实例018复读机相加题目 求saa。

17、aaaaaaaaaaa的值,其中a是一个数字。例如222222222222222此时共有5个数相加,几个数相加由键盘控制。程序分析 用字符串解决。a被加数字nint加几次res0for i in rangen resinta aa0print结果是,res1234567实例019完数题目 一个数如果恰好等于它的因子之和,这个数就称为完数。例如6123.编程找出1000以内的所有完数。程序分析 将每一对因子加进集合,在这个过程中已经自动去重。最后的结果要求不计算其本身。def factornum targetintnum resset for i in range1,num if numi0 r。

18、es.addi res.addnum/i return resfor i in range2,1001 if isumfactori-i printi123456789101112实例020高空抛物题目 一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米第10次反弹多高程序分析 无high200.total100for i in range10 high/2 totalhigh printhigh/2print总长,total1234567实例021猴子偷桃题目 猴子吃桃问题猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上。

19、又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。程序分析 按规则反向推断猴子有一个桃子,他偷来一个桃子,觉得不够又偷来了与手上等量的桃子,一共偷了9天。peach1for i in range9 peachpeach1*2printpeach1234实例022比赛对手题目 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。程序分析 找到条件下不重复的三个对手即可。a。

20、setx,y,zbsetx,y,zcsetx,y,zc-setx,za-setxfor i in a for j in b for k in c if lenseti,j,k3 printas,bs,csi,j,k12345678910实例023画菱形题目 打印出如下图案(菱形) * * * * * * *程序分析 递归调用即可。def drawnum a2*4-num1 printa.center9, if num1 drawnum-1 printa.center9, draw41234567实例024斐波那契数列II题目 有一分数序列2/1,3/2,5/3,8/5,13/8,21/13求出。

21、这个数列的前20项之和。程序分析 就是斐波那契数列的后一项除以前一项。a 2.0b 1.0s 0for n in range1,21 s a / b a,b a b,aprint s12345678实例025 阶乘求和题目 求12320的和。程序分析 12320121314201res1for i in range20,1,-1 resi*res1printres1234实例026递归求阶乘题目 利用递归方法求5。程序分析 递归调用即可。def factorialn return n*factorialn-1 if n1 else 1printfactorial5123实例027递。

22、归输出题目 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。程序分析 递归真是蠢方法。def recstring if lenstring1 recstring1 printstring0,endrecstring here123456实例028递归求等差数列题目 有5个人坐在一起,问第五个人多少岁他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大程序分析 就一等差数列。def agen if n1 return 10 return 2agen-1printag。

23、e512345实例029反向输出题目 给一个不多于5位的正整数,要求一、求它是几位数,二、逆序打印出各位数字。程序分析 学会分解出每一位数,用字符串的方法总是比较省事。nint输入一个正整数nstrnprintd位数lennprintn-11234实例030回文数题目 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。程序分析 用字符串比较方便,就算输入的不是数字都ok。n随便你输入啥啦a0blenn-1flagTruewhile ab if nanb print不是回文串 flagFalse break a,ba1,b-1if flag print是回文串。

24、123456789101112实例031字母识词题目 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母。程序分析 这里用字典的形式直接将对照关系存好。weekThthursday, utuesdayweekSasaturday, usundayweektweekT, sweekS, mmonday, wwensday, ffridayaweekstr请输入第一位字母.lowerif aweekT or aweekS printastr请输入第二位字母.lowerelse printa123456789101112131415实例032反向输出II题目 按相反。

25、的顺序输出列表的值。程序分析 无。a one, two, threeprinta-112实例033列表转字符串题目 按逗号分隔列表。程序分析 无。L 1,2,3,4,5print,.joinstrn for n in L12实例034调用函数题目 练习函数调用。程序分析 无。def hello printHello Worlddef helloAgain for i in range2 helloif namemain helloAgain12345678实例035设置输出颜色题目 文本颜色设置。程序分析 无。class bcolors HEADER 03395m OKBLUE 033。

26、94m OKGREEN 03392m WARNING 03393m FAIL 03391m ENDC 0330m BOLD 0331m UNDERLINE 0334mprintbcolors.WARNING 警告的颜色字体 bcolors.ENDC12345678910实例036算素数题目 求100之内的素数。程序分析 用else执行for循环的奖励代码(如果for是正常完结,非break)。loint下限hiint上限for i in rangelo,hi1 if i 1 for j in range2,i if i j 0 break else printi1234567。

27、89实例037排序题目 对10个数进行排序。程序分析 同实例005。rawfor i in range10 xintintd i raw.appendx for i in rangelenraw for j in rangei,lenraw if rawirawj rawi,rawjrawj,rawiprintraw1234567891011实例038矩阵对角线之和题目 求一个3*3矩阵主对角线元素之和。程序分析 无。mat1,2,3, 3,4,5, 4,5,6 res0for i in rangelenmat resmatiiprintres12345678实例039有序列表插入元素题目 有。

28、一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。程序分析 首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。lis1,10,100,1000,10000,100000nintinsert a number lis.appendnfor i in rangelenlis-1 if lisin for j in rangei,lenlis lisj,lis-1lis-1,lisj breakprintlis123456789实例040逆序列表题目 将一个数组逆序输出。程序分析 依次交换位置,或者直接调用reverse方法。li。

29、s1,10,100,1000,10000,100000for i in rangeintlenlis/2 lisi,lislenlis-1-ilislenlis-1-i,lisiprint第一种实现printlislis1,10,100,1000,10000,100000print第二种实现lis.reverseprintlis123456789101112实例041类的方法与变量题目 模仿静态变量的用法。程序分析 构造类,了解类的方法与变量。def dummy i0 printi i1class cls i0 def dummyself printself.i self.i1aclsfor 。

30、i in range50 dummy a.dummy123456789101112131415实例042变量作用域题目 学习使用auto定义变量的用法。程序分析 python中的变量作用域。i0n0def dummy i0 printi i1def dummy2 global n printn n1print函数内部的同名变量for j in range20 printi dummy i1printglobal声明同名变量for k in range20 printn dummy2 n101234567891011121314151617181920实例043作用域、类的方法与变量题目 模仿静。

31、态变量static另一案例。程序分析 综合实例041和实例042。class dummy num1 def Numself printclass dummy num,self.num printglobal num ,num self.num1ndummynum1for i in range5 num*10 n.Num123456789101112实例044矩阵相加题目 计算两个矩阵相加。程序分析 创建一个新的矩阵,使用 for 迭代并取出 X 和 Y 矩阵中对应位置的值,相加后放到新矩阵的对应位置中。X 12,7,3, 4 ,5,6, 7 ,8,9 Y 5,8,1, 6,7,3, 4,5。

32、,9 res0,0,0, 0,0,0, 0,0,0for i in rangelenres for j in rangelenres0 resijXijYijprintres12345678910111213141516实例045求和题目 统计 1 到 100 之和。程序分析 无res0for i in range1,101 resiprintres1234实例046打破循环题目 求输入数字的平方,如果平方运算后小于 50 则退出。程序分析 无while True try nfloat输入一个数字 except print输入错误 continue dnn2 print其平方为,dn if d。

33、n50 print平方小于50,退出 break1234567891011实例047函数交换变量题目 两个变量值用函数互换。程序分析 无def exca,b return b,aa0b10a,bexca,bprinta,b123456实例048数字比大小题目 数字比较。程序分析 无aintabintbif ab printabelif ab printabelse printab12345678实例049lambda题目 使用lambda来创建匿名函数。程序分析 无Maxlambda x,yx*xyy*yxMinlambda x,yx*xyy*yxaint1bint2printMaxa,bpr。

34、intMina,b12345678实例050随机数题目 输出一个随机数。程序分析 使用 random 模块。import randomprintrandom.uni10,2012实例051按位与题目 学习使用按位与 0 1 1 0|11; 1|01; 1|11a0o77printa|3printa|3|7123实例053按位异或题目 学习使用按位异或 。程序分析 000; 011; 101; 110a0o77printa3printa37123实例054位取反、位移动题目 取一个整数a从右端开始的47位。程序分析 可以这样考虑1先使a右移4位。2设置一个低4位全为1,其余全为0的数。可用043。

35、将上面二者进行 10;print234print23412实例056画圈题目 画图,学用circle画圆形。程序分析 无。from tkinter import *canvasCanvaswidth800,height600,bgyellowcanvas.packexpandYES,fillBOTHk1j1for i in range26 canvas.create_oval310-k,250-k,310k,250k,width1 kj j0.3mainloop12345678910实例057画线题目 画图,学用line画直线。程序分析 无。if name main from tkinter 。

36、import * canvas Canvaswidth300, height300, bggreen canvas.packexpandYES, fillBOTH x0 263 y0 263 y1 275 x1 275 for i in range19 canvas.create_linex0,y0,x0,y1, width1, fillred x0 x0 - 5 y0 y0 - 5 x1 x1 5 y1 y1 5 x0 263 y1 275 y0 263 for i in range21 canvas.create_linex0,y0,x0,y1,fill re。

37、d x0 5 y0 5 y1 5 mainloop1234567891011121314151617181920212223242526实例058画矩形题目 画图,学用rectangle画方形。程序分析 无。if name main from tkinter import * root Tk root.titleCanvas canvas Canvasroot,width 400,height 400,bg yellow x0 263 y0 263 y1 275 x1 275 for i in range19 canvas.create_rectanglex0,y0,x。

38、1,y1 x0 - 5 y0 - 5 x1 5 y1 5 canvas.pack root.mainloop123456789101112131415161718实例059画图(丑)题目 画图,综合例子。程序分析 丑。if name main from tkinter import * canvas Canvaswidth 300,height 300,bg green canvas.packexpand YES,fill BOTH x0 150 y0 100 canvas.create_ovalx0 - 10,y0 - 10,x0 10,y0 10 canvas.cr。

39、eate_ovalx0 - 20,y0 - 20,x0 20,y0 20 canvas.create_ovalx0 - 50,y0 - 50,x0 50,y0 50 import math B 0.809 for i in range16 a 2 * math.pi / 16 * i x math.ceilx0 48 * math.cosa y math.ceily0 48 * math.sina * B canvas.create_linex0,y0,x,y,fill red canvas.create_ovalx0 - 60,y0 - 60,x0 60,y0 60。

40、 for k in range501 for i in range17 a 2 * math.pi / 16 * i 2 * math.pi / 180 * k x math.ceilx0 48 * math.cosa y math.ceily0 48 math.sina * B canvas.create_linex0,y0,x,y,fill red for j in range51 a 2 * math.pi / 16 * i 2* math.pi / 180 * k - 1 x math.ceilx0 48 * math.cosa y math.ceily0 。

41、48 * math.sina * B canvas.create_linex0,y0,x,y,fill red mainloop12345678910111213141516171819202122232425262728293031实例060字符串长度题目 计算字符串长度。程序分析 无。szhangguang101printlens12实例061杨辉三角题目 打印出杨辉三角形前十行。程序分析 无。def generatenumRows r 1 for i in range1,numRows r.appendlistmaplambda x,yxy, 0r-1,r-10 return rnu。

42、mRowsagenerate10for i in a printi12345678实例062查找字符串题目 查找字符串。程序分析 无。s1aabbxuebixuebis2abs3xueprints1.finds2prints1.finds312345实例063画椭圆题目 画椭圆。程序分析 使用 tkinter。if name main from tkinter import * x 360 y 160 top y - 30 bottom y - 30 canvas Canvaswidth 400,height 600,bg white for i in range20 canv。

43、as.create_oval250 - top,250 - bottom,250 top,250 bottom top - 5 bottom 5 canvas.pack mainloop1234567891011121314实例064画椭圆、矩形题目 利用ellipse 和 rectangle 画图程序分析 无。if name main from tkinter import * canvas Canvaswidth 400,height 600,bg white left 20 right 50 top 50 num 15 for i in rangenum canva。

44、s.create_oval250 - right,250 - left,250 right,250 left canvas.create_oval250 - 20,250 - top,250 20,250 top canvas.create_rectangle20 - 2 * i,20 - 2 * i,10 * i 2,10 * i 2 right 5 left 5 top 10 canvas.pack mainloop1234567891011121314151617实例065画组合图形题目 一个最优美的图案。程序分析 无。import mathfrom tkinter import *class PTS def initself self.x 0 self.y 0points def LineToDemo screenx 400 screeny 400 canvas Canvaswidth screenx,height screeny,bg white AspectRatio 0.85 MAXPTS 15 h screen。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值