#|【Python百日刷题计划】Day10~一些编程题练习

#|【Python百日刷题计划】Day10~一些编程题练习
文章图片
前言

?本次主要是<一些编程题>难度不大,快来看看吧。

?推荐一个我正在用的好用刷题网站由此进入免费的刷题练习网站
#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

文章目录
前言题目一:这天第几天
题目要求
我的分析
我的答案
题目二 :判断素数个数
题目要求
我的分析
我的答案
题目三:统计字符串构成
题目要求
我的分析
我的答案
题目四:比赛对手名单
题目要求
我的分析
我的答案
题目五:画菱形
题目要求
我的分析
我的答案
结语 #|【Python百日刷题计划】Day10~一些编程题练习
文章图片

题目一:这天第几天 题目要求
输入某年某月某日,判断这一天是这一年的第几天?
我的分析
题目难度不大,主要是要考虑特殊情况,闰年时需考虑二月多加一天
我的答案
def isLeapYear(y): '''该函数判断是否为闰年''' return (y%400==0 or (y%4==0 and y%100!=0))DofM = [0,31,28,31,30,31,30,31,31,30,31,30] res=0 year=int(input('年份:')) month=int(input('月份:')) day=int(input('日:')) #判断是否为闰年 if isLeapYear(year): DofM[2]+=1 for i in range(month): res+=DofM[i]print('你输入的是该年的第%d天' % (res+day))

输入示例
#|【Python百日刷题计划】Day10~一些编程题练习
文章图片


#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

题目二 :判断素数个数 题目要求
判断101-200之间有多少个素数,并输出所有素数
我的分析
该题处理的关键是要知道判断一个数是否为素数的方法:用一个数去除2到这个数的算术平方根,如果能被整除,则表明此数不是素数,反之是素数。用else可以进一步简化代码.
我的答案
#方法一 import math for i in range(100,200): flag=0 for j in range(2,round(math.sqrt(i))+1): if i%j==0: flag=1 break if flag: continue print(i)print('\n用“else”简化代码\n')#方法二 for i in range(100,200): for j in range(2,round(math.sqrt(i))+1): if i%j==0: break else: print(i)


#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

题目三:统计字符串构成 题目要求
用户输入一行字符,该程序可以分别统计出其中英文字母、空格、数字和其它字符的个数。
我的分析
该题难度较小,主要考察的是字符串的操作
点此查看字符串最全操作方法
我的答案
string=input("请输入字符串:") alp=0 num=0 spa=0 oth=0 for i in range(len(string)): if string[i].isspace(): spa+=1 elif string[i].isdigit(): num+=1 elif string[i].isalpha(): alp+=1 else: oth+=1 print('空格有%d个' % spa) print('数字有%d个' % num) print('字母有%d个' % alp) print('其它有%d个' % oth)


#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

题目四:比赛对手名单 题目要求
两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,y比,请编写程序找出三队赛手的名单。
我的分析
该题比较灵活但是思路主要是找到条件下不重复的三个对手即可。
我的答案
a=set(['x','y','z']) b=set(['x','y','z']) c=set(['x','y','z']) c-=set(('x','y')) a-=set('x') for i in a: for j in b: for k in c: if len(set((i,j,k)))==3: print('a对%s,b对%s,c对%s'%(i,j,k))输出结果: a对y,b对x,c对z


#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

题目五:画菱形 题目要求
打印出如下图案(菱形):
* *** ***** ******* ***** *** *

我的分析
本道题目主要考察的是找规律,解决该题的方法有很多种我选择的是递归调用的方法
我的答案
def draw(num): a="*"*(2*(4-num)+1) print(a.center(9,' ')) if num!=1: draw(num-1) print(a.center(9,' ')) draw(4)输出结果: * *** ***** ******* ***** *** *

【#|【Python百日刷题计划】Day10~一些编程题练习】
#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

结语
:别忘了刷题哟由此进入免费好用的刷题网站

:感谢各位能够看到这里:在鲁迅一篇未发表的文章中说过:“代码看懂了不是懂?一定要自己实际操作哇?这样才能更好的理解和吸收。”
最后来一句:一个人可以在任何他怀有无限热忱的事情上成功,让我们一起进步吧??

#|【Python百日刷题计划】Day10~一些编程题练习
文章图片

    推荐阅读