python编程习题
blackieliu
这个作者很懒,什么都没留下…
展开
-
Python火柴棍游戏
火柴棍拼成数字0~9,具体拼法如图要求一:编写程序实现输入任意一个三位数,输出所需火柴棒数量方法一:字符串加列表num=input('请输入一个三位数:')match=[6,2,5,5,4,5,6,3,7,6]#match=["0":6,"1":2,"2":5,"3":5,"4":4,"5":5,"6":6,"7":3,"8":7,"9":6]a=int(num[0])b=int(num[1])c=int(num[2])count=match[a]+match[b]+match..原创 2021-09-16 20:52:02 · 3949 阅读 · 0 评论 -
python编程题15-统计学生成绩最高分 pandas
题目:从excel文件中读取学生历次考试成绩,并统计最高分写入另一个文件import pandas as pd #处理excel常用的库如果要处理2003以前版本的excel文件,则要安装xlrd库如果要处理2007以后版本的excel文件,则要安装openpyxl库fn = '学生测试成绩.xlsx' #打开当前目录下的学生测试成绩.xlsx,需要要安装openpyxl库,如果不是同一目录,则要指明df = pd.read_excel(fn) #df = pd.read_exc原创 2021-07-30 23:37:07 · 4291 阅读 · 0 评论 -
python编程题15-增强版猜数游戏
题目:第一次游戏有3次机会,如果第一次在3次内猜对,进行下一次游戏可以增加1次游戏机会,若失败,则下一次游戏减少一次机会,依此类推。游戏机会为0则游戏结束。运行结果如下:from random import randint# 定义函数,def是关键字,guess_number是函数名称# start、end、times是带默认值的形参# 如果调用函数时没有传递实参,就使用默认值def guess_number(start=1, end=10, times=3): # 生成原创 2021-07-30 23:01:24 · 801 阅读 · 0 评论 -
python编程题14-决赛现场最终成绩计算
题目:多个评委打分后,去掉一个最高分和最低分,再求出剩余分数的平均值。(截尾平均数)#这个循环用来保证必须输入大于2的整数作为评委人数while True: try: #约束输入的必须是整数,并且要大于2 n = int(input('请输入评委人数:')) if n <= 2: print('评委人数太少,必须多于2个人。') else: #如果输入大于2的整数,就结束循环原创 2021-07-30 17:31:31 · 3016 阅读 · 0 评论 -
python编程题13-蒙特·卡罗方法计算圆周率
蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计算问题。假设有一块边长为 2 的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, y)必然在木板上(更多的时候是落在单位圆内),如果扔的次数足够多,那么落在单位圆内的次数除以总次数再乘以 4,这个数字会无限逼近圆周率的值from random import randomdef estimatePI(times): #总次数 hits = 0原创 2021-07-30 16:55:00 · 871 阅读 · 0 评论 -
python编程题12-计算并联电阻
def compute(lst): r = sum(map(lambda x:1/x, lst)) #使用map将lambda表达式映射到列表中 print(round(1/r, 3)) #round用来保留小数位数,此处最多保留3位 print('{0:.3f}'.format(1/r)) #一定要保留3位小数compute([50, 30, 20])#map函数的作用是将一个可调用对象映射到一个或多个可迭代对象上...原创 2021-07-30 16:33:56 · 2160 阅读 · 0 评论 -
python编程题11-蒙蒂霍尔游戏
问题:假设你是一个参赛者,现在有三扇门可选,一扇后面是汽车,其余两扇后面是山羊,选中后面是汽车的门,则获得奖励。你先选择一扇门,你并不知道每扇门后面的东西,可是主持人知道,主持人在剩余的两扇你未选择的门中打开一扇,如果后面是山羊,主持人就会问你,你想要改选你选择的门吗?编写程序模拟这一游戏。from random import randrangedef init(): '''返回一个字典,键为3个门号,值为门后面的物品''' result = {i: 'goat' for i in原创 2021-07-29 19:58:52 · 436 阅读 · 0 评论 -
python编程题10-生成随机密码
题目:用户输入一个数n,生成n位由字母、数字和“ . , _”组成的随机密码from random import choicesfrom string import digits, ascii_letterscharacters = digits + ascii_letters + ',._' # 候选字符集 digits为0-9,ascii_letters为52个英文字母,while True: try: n = int(input('请输入密码长度:'))原创 2021-07-29 15:18:36 · 865 阅读 · 0 评论 -
python编程题9-过滤无效书评
无效书评规则:如果书评中出现一半以上的重复字符,就认为该书评无效。comments = ['这是一本非常好的书,作者用心了', '作者大大辛苦了', '好书,感谢作者提供了这么多的好案例', '书在运输的路上破损了,我好悲伤。。。', '为啥我买的书上有菜汤。。。。', '啊啊啊啊啊啊,我怎么才发现这么好的书啊,相见恨晚', '书的质量有问题啊,怎么会开胶呢?原创 2021-07-29 14:44:11 · 1504 阅读 · 0 评论 -
python编程题8-小明爬楼梯 递推 递归 字典
题目:一段15级的楼梯,小明最多一次爬三级楼梯,输出所有爬法。def climbStairs1(n): #定义自定义函数,不需要声明参数类型 #递推法 递推关系式:f(n)=f(n-1)+f(n-2)+f(n-3) a = 1 b = 2 c = 4 for i in range(n-3): c, b, a = a+b+c, c, b #系列解包赋值 return cdef climbStairs2(n): #递归法原创 2021-07-29 13:40:14 · 4026 阅读 · 0 评论 -
python程序题7 统计字符出现次数 字典的应用
题目:随机生成由大小写字母和阿拉伯数字组成的长度为100的字符串,并统计其中各个字符出现的次数。import string #可以用dir(string)来查看string模块中所有可用的成员import random# 候选字符集,26个小写字母+26个大写字母+10个数字x = string.ascii_letters + string.digits #生成字符串x ,x='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ012原创 2021-07-28 22:37:24 · 4309 阅读 · 0 评论 -
python编程题6-抓狐狸小游戏
题目:假设一共有一排5个洞口,狐狸最开始的时候在其中一个洞口,然后玩家随机打开一个洞口,如果里面有狐狸就抓到了。如果洞口里没有狐狸就第二天再来抓,但是第二天狐狸会在玩家来抓之前跑到隔壁洞里。from random import choice, randintwhile True: try: n = int(input('请输入洞口个数:')) if n>0: # 断言 break except: p原创 2021-07-28 20:44:06 · 6356 阅读 · 4 评论 -
python编程题5-任意位数的水仙花数
水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),例如3位水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身(例如:1^3 + 5^3+ 3^3 = 153)。n位数则是n次方。题目:输入一个数字n,输出n位所有水仙花数解法一:循环嵌套n = int(input('请输入一个整数:'))for nu原创 2021-07-27 22:35:04 · 1411 阅读 · 0 评论 -
python编程题4-打印九九乘法表
打印输出以下结果:for i in range(1, 10): for j in range(1, i+1): print('{0}*{1}={2}'.format(i, j, i*j).ljust(6), end=' ') print()原创 2021-07-27 22:04:41 · 588 阅读 · 0 评论 -
python编程题3-百钱买百鸡python程序
鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?# 假设能买x只公鸡,x最大为20for x in range(21): # 假设能买y只母鸡,y最大为33 for y in range(34): # 假设能买z只小鸡 z = 100-x-y if z%3==0 and 5*x + 3*y + z//3 == 100:#惰性求值 print(x,y,z)...原创 2021-07-27 21:56:47 · 3473 阅读 · 0 评论 -
python编程题1-判断点与直线的关系
k = float(input('请输入直线斜率:'))b = float(input('请输入直线截距:'))pointX = float(input('请输入点的x坐标:'))pointY = float(input('请输入点的y坐标:'))y = k*pointX + bprint('Result'.center(20, '=')) #此处center可用ljust或者rjust来替换以实现不同的对齐效果if pointY == y: print('in the line.'.原创 2021-07-27 19:21:53 · 746 阅读 · 0 评论 -
python编程题2-提取任意大整数的各位数字
输入一个任意大的整数,提取其中各个位上的数字并输出写法1:integer = int(input('请输入一个整数:'))bits = []while True: f, m = divmod(integer, 10) bits.append(m) integer = f if f == 0: breakbits.reverse()for digit in bits: #输出 print(digit,end=" ")#pr原创 2021-07-27 19:34:40 · 3236 阅读 · 0 评论