Python练习题
为了巩固自学Python的成果,时不时去网上找一些题目来练习。如有问题,欢迎大家批评指正。
AntInSnow
不是科班出生,对编程比较感兴趣。欢迎学习Python的朋友一起交流。
展开
-
Python练习题:第30题 判断一个数是否为回文数
题目:一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。分析:用字符串来处理比较方便。方法1,直接用29题的方法把字符串倒序输出并与原字符串比较;方法2,按位读取,逐个比较。备注:该程序不仅可以比较五位数,还可以比较其他整数(负数不行)。# -*- coding: utf-8 -*-#By AntInSnowipt = input("请输入需要判断的数字:")iptnum = ''while iptnum == '': try: ip原创 2020-09-05 09:44:58 · 756 阅读 · 0 评论 -
Python练习题:第29题 按位读写五位数
题目:给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。分析:可以用两种方法来实现。方法1:感觉用字符串来处理比较方便;方法2:按照传统的方法,当做数字来处理。备注:以下程序不仅可以处理5位数,还可以处理任意的整数(负数不行)。# -*- coding: utf-8 -*-#By AntInSnowipt = input("请输入需要判断的数字:")iptnum = ''while iptnum == '': try: iptnum = int(原创 2020-09-05 09:40:59 · 741 阅读 · 0 评论 -
Python练习题:第28题 递归计算年龄
题目:有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?分析:典型的递归问题,第N个人的年龄等于2+第(n-1)人的年龄,以此类推。# -*- coding: utf-8 -*-#By AntInSnowdef recursionag...原创 2020-03-26 23:01:00 · 3129 阅读 · 0 评论 -
Python练习题:第27题 递归逆向打印字符串
题目:利用递归函数调用方式,将所输入的字符,以相反顺序打印出来。分析:递归求n的阶乘,方法为:n!=n*((n-1)!),并以此类推。# -*- coding: utf-8 -*-#By AntInSnowdef recursionprint(iptstr): if len(iptstr) ==1: return iptstr else: r...原创 2020-03-26 22:54:01 · 519 阅读 · 0 评论 -
Python练习题:第26题 递归求阶乘
题目:利用递归方法求5!。分析:递归求n的阶乘,方法为:n!=n*((n-1)!),并以此类推。# -*- coding: utf-8 -*-#By AntInSnowdef Factorial(n): if n ==2: return n else: fact =n * Factorial(n-1) return fact...原创 2020-03-26 22:47:36 · 438 阅读 · 0 评论 -
Python练习题:第25题 求阶乘的和
题目:求1+2!+3!+…+20!的和分析:用for循环# -*- coding: utf-8 -*-#By AntInSnowa = 1b = 2num_sum = 0for i in range(1,21): a *= i num_sum += aprint(num_sum)原创 2020-03-26 19:09:13 · 547 阅读 · 0 评论 -
Python练习题:第24题 打印前N项分式的和
题目:有一分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13…求出这个数列的前20项之和。分析:用for循环# -*- coding: utf-8 -*-#By AntInSnowa = 1b = 2num_sum = 0for i in range(20): num_sum += b/a a,b = b, a+bprint(num_sum)...原创 2020-03-26 19:02:39 · 384 阅读 · 0 评论 -
Python练习题:第23题 打印菱形
题目:用*打印菱形分析:第一种方法直接打印,第二种方法用for循环# -*- coding: utf-8 -*-#By AntInSnowprint(''' * *** ************ ***** *** *''')n = 4num_star = n*2-1star = ''for i in range(n): j = num_sta...原创 2020-03-26 18:54:01 · 486 阅读 · 0 评论 -
Python练习题:第22题 比赛名单问题
题目:两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。己抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。分析:第一种方法是传统的判断方法,第二种方法是删掉已经假设确定的对手,去除重复。# -*- coding: utf-8 -*-#By AntInSnowimport timedef seqlist1...原创 2020-03-26 18:41:50 · 1071 阅读 · 0 评论 -
Python练习题:第21题 猴子吃桃问题
题目:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。分析:用逆向思维来处理,从第10天去算第9天,再算第8天……# -*- coding: utf-8 -*-#By AntInSnowpear = 1for i in...原创 2020-03-21 19:57:06 · 1141 阅读 · 0 评论 -
Python练习题:第20题 落球反弹问题
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?分析:用for循环来处理。# -*- coding: utf-8 -*-#By AntInSnowheight = 100lenth = -heightfor i in range(10): lenth += height*2 height /...原创 2020-03-21 19:47:27 · 2372 阅读 · 0 评论 -
Python练习题:第19题 寻找1000以内的完数
题目:若一个数正好等于除自身之外的所有的公约数之和,则称为完数。请打印出1000以内的完数。分析:用for循环来寻找质因数,然后加起来。# -*- coding: utf-8 -*-#By AntInSnowresult = []for i in range(1,1000): judge = 0 for j in range(1,i): if i%j ==...原创 2020-03-21 19:37:24 · 619 阅读 · 0 评论 -
Python练习题:第18题 计算叠数的和
题目:输入两个数,a和b,求s=a+aa+aaa+aaaa+aa…a(最后一项为b个a)的值。如,输入2,5,需要求2+22+222+2222+22222(此时共有5个数相加)的和。分析:这个如果用2+210+2100这种做,比较麻烦,可以用字符串的相加来做,然后把字符串用eval去掉引号来做。# -*- coding: utf-8 -*-#By AntInSnow""""""ipt...原创 2020-03-21 19:15:30 · 1074 阅读 · 0 评论 -
Python练习题:第17题 分类计算字符个数
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60.89分之间的用B表示,60分以下的用C表示。# -*- coding: utf-8 -*-#By AntInSnowiptstrs = list(input('请输入成绩:'))cont = [0]*4for iptstr in iptstrs: if iptstr.isalpha(): ...原创 2020-03-21 18:50:27 · 422 阅读 · 0 评论 -
Python练习题:第15题 成绩等级问题
题目:利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60.89分之间的用B表示,60分以下的用C表示。# -*- coding: utf-8 -*-#By AntInSnowreport = eval(input('请输入成绩:'))if report >100: print('您的成绩输入有误')elif report >= 90: ...原创 2020-03-21 18:41:07 · 929 阅读 · 0 评论 -
Python练习题:第14题 分解质因数
题目:将一个正整数分解质因数。例如:输入90,打印出90=233*5分析:可以用递归来做,找到一个最小的因素,然后把另外一个继续输入找最小的质因数,这次可以从上次的最小质因数开始找,之前的就不用核对了,肯定不是。# -*- coding: utf-8 -*-#By AntInSnowdef devnum(n, N , i = 2): while n % i !=0: ...原创 2020-03-20 16:05:05 · 698 阅读 · 1 评论 -
Python练习题:第13题 打印水仙花数
题目:打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。分析:方法一,判断一个书是否能被比其开根号后的数小的素数整除即可。方法二,考虑到不能被2整除,肯定不能被4、6、8等整除。所以只需要判断是否能被比其开根号后的数小的素数整除即可。# -*- coding: utf-8 ...原创 2020-03-19 15:25:53 · 549 阅读 · 0 评论 -
Python练习题:第12题 输出20—200的素数
题目:判断10—200之间有多少个素数,并输出质有素数。分析:方法一,判断一个书是否能被比其开根号后的数小的素数整除即可。方法二,考虑到不能被2整除,肯定不能被4、6、8等整除。所以只需要判断是否能被比其开根号后的数小的素数整除即可。# -*- coding: utf-8 -*-#By AntinSnowimport time#传统方法def checknum1(n): k...原创 2020-03-19 14:11:19 · 763 阅读 · 0 评论 -
Python练习题:第11题 兔子繁衍问题
题目:有一对兔子,从岀生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不部死,问每个月的兔子总数为多少?。分析:把兔子分成刚出生的,1个月大的以及2个月及以上大的分别计数即可。# -*- coding: utf-8 -*-num_0 = 1 #刚出生的兔子num_1 = 0 #1个月大的兔子num_2 = 0 ...原创 2020-03-19 12:46:46 · 8470 阅读 · 5 评论 -
Python练习题:第10题 打印楼梯
题目:打印楼梯,同时在楼梯上方打印两个笑脸。# -*- coding: utf-8 -*-print('''^-^ ^-^██████ ██ ██████ ██ ██████ ██ ██████ ██ ██████ ...原创 2020-03-19 12:20:24 · 543 阅读 · 0 评论 -
Python练习题:第9题 输出国际象棋棋盘
题目:输出国际象棋棋盘。分析:直接输出,也可以用for循环# -*- coding: utf-8 -*-print(''' ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ██ ██ ██ ████ ██ ██ ██ ...原创 2020-03-19 11:44:21 · 1400 阅读 · 1 评论 -
Python练习题:第8题 输出乘法口诀表
题目:输出乘法口诀表分析:用for循环# -*- coding: utf-8 -*-""""""for i in range(0,10): for j in range(1,i+1): print('{}*{}={}'.format(i,j,i*j),end='\t') print('')...原创 2020-03-19 11:21:37 · 266 阅读 · 0 评论 -
Python练习题:第7题 输出特殊图案
题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!分析:没看懂什么意思,继续用’’'来表示多行字符串# -*- coding: utf-8 -*-print('''***********oo***oo***************ooo********o*****''')...原创 2020-03-18 22:15:02 · 857 阅读 · 0 评论 -
Python练习题:第6题 用*输出字母C
题目:用*号输出字母C的图案分析:可以用’’'来表示多行字符串即可# -*- coding: utf-8 -*-print(''' ****** ****** ** ****''')原创 2020-03-18 22:07:55 · 1440 阅读 · 0 评论 -
Python练习题:第5题 排序问题
第5题 排序问题_Python100道经典练习题题目:输入三个整数x,y,z,请把这三个数由小到大输岀。(下面程序扩展为多位数排序)方法一:计算有多少个比自己小,这个个数就是该数的位置。方法二:冒泡法方法三:直接用sort()# -*- coding: utf-8 -*-import timenum_list = list(map(int,input('请输入需要排序的数字(以空格...原创 2020-03-17 11:10:31 · 513 阅读 · 0 评论 -
Python练习题:第4题 一年的第几天的问题
题目:输入某年某月某日,判断这一天是这一年的第几天?分析:方法一,可以都按照每月31天来计算,然后减去相应的差值。方法二,直接算好每个月1号需要加的天数,直接用这个数加上日期就行。# -*- coding: utf-8 -*-iptstr = input('请输入XXXX年XX月XX日:').split('/') #格式取2020/3/16year = eval(iptstr[0])...原创 2020-03-17 08:21:31 · 481 阅读 · 0 评论 -
Python练习题:第3题 完全平方数问题
题目:一个整数,它加上100后是一个完全平方数,再加上268又是一个完全平方数,请问该数是多少?分析:可以从第一个完全平方数的根出发开始增加,这样与直接寻找所求整数的方法快捷很多。即题目变更为:寻找一个数平方后,加上268后又是一个完全平方数。找到这个数后平方再减100即可。# -*- coding: utf-8 -*-flag = 0i_int = 10while not flag:...原创 2020-03-16 22:23:38 · 766 阅读 · 0 评论 -
Python练习题:第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万元的部分按...原创 2020-03-16 17:31:19 · 438 阅读 · 0 评论 -
Python练习题:第1题 输出不同的三位数问题
Python100道经典练习题第一题:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?分析:可以用for的多重循环。可以在循环里面找出不符合要求的数。也可以在循环开始前删掉已经用过的数。# -*- coding: utf-8 -*-import timenums = [1,2,3,4,5,6,7]#方法一def forall(nums): Tsu...原创 2020-03-16 15:04:39 · 1333 阅读 · 0 评论