一、实操题
1、某游戏公司开启了节日促销活动,购买皮肤彩蛋,每个彩蛋都能打开一个游戏角色皮肤。
购买的彩蛋满足一定数量,还会赠送额外的彩蛋,赠送的规则如下:
现在每一个彩蛋的售价为 5 元,请你设计一个程序。
当输入任意金额时,计算出获得多少个皮肤,并且打印出来。
测试用例:
输入金额:20 ,打印结果:4。 (可以购买 4 个彩蛋,没有赠送,可以获得 4 个皮肤)
输入金额:60 ,打印结果:14。(可以购买 12 个彩蛋,获得 2 个彩蛋的赠送,一共可以获得 14 个皮肤)
输入金额:100,打印结果:25。(可以购买 20 个彩蛋,获得 5 个彩蛋的赠送,一共可以获得 25 个皮肤)
输入金额:172,打印结果:46。(可以购买 34 个彩蛋,获得 3*4=12 个彩蛋的赠送,一共可以获得 46 个皮肤)
参考答案:br />根据题目要求,我们可以设计一个简单的程序来实现输入金额后计算获得皮肤数量的功能。程序可以首先根据购买彩蛋的数量和赠送的彩蛋数量计算出总共可以获得的彩蛋数量,然后再除以每个彩蛋可以获得一个皮肤的规则,计算出最终可以获得的皮肤数量。具体的实现代码如下:```pythondef get_skins(money):egg_count = money // 5 # 购买的彩蛋数量free_egg_count = 0while egg_count >= 30:free_egg_count += 5egg_count -= 30if egg_count >= 10:free_egg_count += 2total_egg_count = egg_count + free_egg_countskin_count = total_egg_countreturn skin_count# 测试用例print(get_skins(20)) # 输出 4print(get_skins(60)) # 输出 14print(get_skins(100)) # 输出 25print(get_skins(172)) # 输出 46```
解析:【喵呜刷题小喵解析】
这个程序首先根据购买的彩蛋数量计算出赠送的彩蛋数量。具体规则如下:
* 每购买30个彩蛋,就可以赠送5个彩蛋。
* 如果购买的彩蛋数量不足30个,但大于等于10个,那么可以额外赠送2个彩蛋。
程序使用了一个 while 循环来计算赠送的彩蛋数量,直到购买的彩蛋数量小于10为止。
然后,程序将购买的彩蛋数量和赠送的彩蛋数量相加,得到总共可以获得的彩蛋数量。
最后,程序将总彩蛋数量除以每个彩蛋可以获得一个皮肤的规则,计算出最终可以获得的皮肤数量,并返回结果。
在测试用例中,程序分别输入了20、60、100和172元,并打印出了对应的可以获得的皮肤数量,与题目中给出的结果一致。
2、漫威漫画里的美国队长,拥有一个帅气的盾牌。美国队长之盾是由红色代表勇气,白色代表真理以及蓝色代表正义组成的。
请你用 turtle 完成一个美国队长之盾。
提示:可以从最外面依此向内画出四个圆,最后画出一个白色的五角星
参考答案:br />这是一个使用Python的turtle模块绘制美国队长之盾的示例代码:```pythonimport turtledef draw_shield():window = turtle.Screen()window.bgcolor("black")shield = turtle.Turtle()shield.speed(0)shield.penup()# 画四个圆shield.goto(-100, -50)draw_circle(shield, 100, 255, 0, 0) # 红色shield.goto(-50, 50)draw_circle(shield, 75, 255, 255, 255) # 白色shield.goto(0, 100)draw_circle(shield, 50, 0, 0, 255) # 蓝色shield.goto(50, 50)draw_circle(shield, 25, 127, 127, 80) # 深蓝色# 画五角星shield.pencolor("white")shield.goto(-30, 30)shield.right(75)for i in range(5):shield.forward(50)shield.right(144)turtle.done()def draw_circle(turtle, radius, red, green, blue):turtle.pendown()turtle.pencolor(red, green, blue)turtle.circle(radius)draw_shield()```
解析:【喵呜刷题小喵解析】
在这个问题中,我们需要使用Python的turtle模块来绘制一个美国队长之盾。
首先,我们导入turtle模块,并创建一个窗口。然后,我们创建一个Turtle对象,用于绘制盾牌。
接着,我们定义了一个函数`draw_circle`,用于绘制一个指定颜色和半径的圆。
然后,我们使用`draw_circle`函数绘制四个圆,分别代表红色、白色、蓝色和深蓝色的部分。
最后,我们使用Turtle对象绘制一个白色的五角星,代表盾牌的五角星部分。
这样,我们就完成了美国队长之盾的绘制。
3、随着新冠肺炎的良好控制,学校也陆陆续续开始了复学。为了师生们的安全,统计了一组学生的信息如下:
你需要编写程序,使用 python 中合适的方式存储 4 个学生的信息,并且完成以下要求:
(存储方式包括但不限于:列表,字典,类与对象等……)
1.补全函数 age_avg(),调用函数打印出学生的平均年龄,求出的平均年龄为整数。
2.补全函数 find_stu(),调用函数传入参数城市名字,打印出停留过该城市的学生的名字,年龄和体温。如果没有查找到信息,打印无。
3.补全函数 sort_stu(),调用函数对体温进行从高到低的排序,并且打印出学生名字以及对应的体温。请删除 pass,编写代码,补全三个函数。注意不要修改预设函数的名字。
参考答案:br />```python# 存储学生信息的字典students = "张三": {"年龄": 18, "体温": 36.5, "停留城市": ["北京", "上海"]},"李四": {"年龄": 20, "体温": 36.8, "停留城市": ["北京"]},"王五": {"年龄": 19, "体温": 37.2, "停留城市": ["上海"]},"赵六": {"年龄": 18, "体温": 36.3, "停留城市": ["深圳"]}def age_avg():total_age = 0for name, info in students.items():total_age += info["年龄"]avg_age = total_age // len(students)print(f"学生的平均年龄为:avg_age岁")def find_stu(city):for name, info in students.items():if city in info["停留城市"]:print(f"name的年龄是info['年龄']岁,体温是info['体温']度")else:continueif not students:print("无")def sort_stu():sorted_students = sorted(students.items(), key=lambda x: x[1]['体温'], reverse=True)for name, info in sorted_students:print(f"name的体温是info['体温']度")```
解析:【喵呜刷题小喵解析】
首先,我们使用字典来存储学生的信息,字典的键为学生的名字,值为一个字典,包含学生的年龄、体温和停留过的城市。
对于第一个要求,我们编写了一个名为`age_avg()`的函数。这个函数遍历字典中的每个学生信息,将年龄相加,然后除以学生的数量,得到平均年龄。最后,使用`print()`函数打印出平均年龄。
对于第二个要求,我们编写了一个名为`find_stu()`的函数。这个函数接受一个城市名字作为参数,然后遍历字典中的每个学生信息,如果学生的停留城市包含传入的城市,就打印出学生的名字、年龄和体温。如果没有查找到信息,就打印出"无"。
对于第三个要求,我们编写了一个名为`sort_stu()`的函数。这个函数使用`sorted()`函数对字典中的学生信息进行排序,排序的依据是学生的体温,从高到低。然后,使用`print()`函数打印出每个学生的名字和体温。
喵呜刷题:让学习像火箭一样快速,快来微信扫码,体验免费刷题服务,开启你的学习加速器!