算法应用主题赛 · Python · 共 14 题(5单选+5多选+4编程)· 满分 100 分
text = "剪纸皮影戏泥塑蜡染年画"
pos = text.find("泥塑")
print(pos)find() 方法——返回子串首次出现的索引位置(从0开始)。"剪纸皮影戏泥塑蜡染年画" 中 "泥塑" 起始索引为5。"剪"(0)"纸"(1)"皮"(2)"影"(3)"戏"(4)"泥"(5)month = 6
if month >= 3 and month <= 5:
print("春季")
else:
print("非春季")if 语句后的代码块必须缩进(通常缩进4个空格),未缩进的 print 会导致 IndentationErrorcopybooks = ["兰亭序", "祭侄稿", "临摹本", "寒食帖", "蜀素帖"]
copybooks._______("临摹本")
print(copybooks)remove(元素值) 按值删除第一个匹配元素;pop() 按索引删除;列表没有 delete() 方法;del 是关键字而非方法colors = ("红", "黑", "白", "蓝", "黄")
colors[2] = "绿"
print(colors)TypeErrorfor month in range(3, 9):
print(f"第{month}个月完成木雕作品")range(start, stop)——range(3, 9) 生成的数字为 3, 4, 5, 6, 7, 8,共6个数字(不包含9)count() 统计子串出现次数(A对);replace() 替换子串(B对);isdigit() 判断是否全部为数字字符(C对);isalpha() 判断是否全部为字母(含中文汉字),中英文混合字母也算(D对)crafts = ["剪纸", "皮影", "泥塑", "蜡染", "年画", "风筝"]-1 表示最后一个元素(B对);[1:4] 包含索引1到3(不含4)(C对);[::2] 每隔2个取一个(D对)randint(a,b) 返回[a,b]范围内的随机整数(A对);choice(seq) 从序列中随机选取一个元素(B对);uniform(a,b) 返回[a,b]范围内的随机浮点数(C对);shuffle() 原地修改列表,返回 None 而非新列表(D错)bool() 转换,以下哪些说法是正确的?(多选)bool() 转换——0(数值零)转为 False(A对);空字符串 "" 转为 False(B对);非空字符串转为 True(C对);空列表 [] 转为 False,而非 True(D错)input() 函数和类型转换,以下哪些描述是正确的?(多选)input() 和类型转换——input() 返回字符串(A对);int() 可以将数字字符串转整数(B对);float() 可以转浮点数(C对);如果用户输入的不是数字(如输入"abc"),int(input()) 会抛出 ValueError(D错)题目描述:
茶艺是中国传统文化的瑰宝,不同种类的茶叶需要用不同温度的水冲泡。请编写程序,输入一种茶叶名称,输出对应的建议水温和冲泡要点。已知茶叶对照表如下:
| 茶叶 | 建议水温 | 冲泡要点 |
|------|---------|---------|
| 绿茶 | 80°C | 不宜闷泡,快速出汤 |
| 红茶 | 90°C | 可用沸水,闷泡3~5分钟 |
| 乌龙茶 | 95°C | 沸水冲泡,讲究"功夫" |
| 普洱茶 | 100°C | 沸水冲泡,可多次续水 |
如果输入的茶叶不在上表中,输出 "暂无该茶叶的建议"。
输入格式:
输出格式:
- 如果找到建议:第一行输出 {茶名}建议水温:{温度},第二行输出 冲泡要点:{要点}
- 如果未找到:输出 暂无该茶叶的建议
示例输入1:
绿茶
示例输出1:
绿茶建议水温:80°C
冲泡要点:不宜闷泡,快速出汤
示例输入2:
花茶
示例输出2:
暂无该茶叶的建议
示例输入:
示例输出:
# 读取茶叶名称
tea = input().strip()
# 根据茶叶名称输出建议
if tea == "绿茶":
print(f"{tea}建议水温:80°C")
print("冲泡要点:不宜闷泡,快速出汤")
elif tea == "红茶":
print(f"{tea}建议水温:90°C")
print("冲泡要点:可用沸水,闷泡3~5分钟")
elif tea == "乌龙茶":
print(f"{tea}建议水温:95°C")
print("冲泡要点:沸水冲泡,讲究\"功夫\"")
elif tea == "普洱茶":
print(f"{tea}建议水温:100°C")
print("冲泡要点:沸水冲泡,可多次续水")
else:
print("暂无该茶叶的建议")
题目描述:
某非遗文化展览活动中,观众对不同项目的人气投票结果已记录在一个列表中。请编写程序完成以下操作:
1. 将项目列表按字母升序排序
2. 将排序后的列表反转(即变为降序排列)
3. 输出最终的前3个项目
输入格式:
- 第一行:一个整数 n(3 <= n <= 20),表示项目数量
- 第二行:n 个非遗项目名称,空格分隔
输出格式:
- 第一行:排序反转后的完整列表:{列表}
- 第二行:人气前三:{项目1} {项目2} {项目3}
示例输入:
示例输出:
# 读取项目数量
n = int(input())
# 读取项目列表
items = input().split()
# 先升序排序
items.sort()
# 再反转(变为降序)
items.reverse()
# 输出完整列表
print(f"排序反转后的完整列表:{items}")
# 输出前三个
print(f"人气前三:{items[0]} {items[1]} {items[2]}")
题目描述:
某学校非遗社团按类别整理了非遗项目,数据以字典形式存储。请编写程序,输入一个类别名称,输出该类别下包含的所有非遗项目名称和项目总数。如果输入的类别不存在,输出 "未找到该类别"。
已知数据如下:
| 类别 | 非遗项目 |
|------|---------|
| 传统美术 | 剪纸、年画、刺绣、泥塑 |
| 传统戏剧 | 京剧、皮影戏、昆曲、木偶戏 |
| 传统技艺 | 陶瓷、蜡染、风筝、木雕 |
| 传统音乐 | 古琴、唢呐、琵琶、二胡 |
输入格式:
输出格式:
- 如果找到该类别:第一行输出 {类别}包括:{项目1} {项目2} ...,第二行输出 共{数量}个项目
- 如果未找到:输出 未找到该类别
示例输入1:
传统美术
示例输出1:
传统美术包括:剪纸 年画 刺绣 泥塑
共4个项目
示例输入2:
传统医药
示例输出2:
未找到该类别
示例输入:
示例输出:
# 预设非遗分类数据
data = {
"传统美术": ["剪纸", "年画", "刺绣", "泥塑"],
"传统戏剧": ["京剧", "皮影戏", "昆曲", "木偶戏"],
"传统技艺": ["陶瓷", "蜡染", "风筝", "木雕"],
"传统音乐": ["古琴", "唢呐", "琵琶", "二胡"]
}
# 读取类别名称
category = input().strip()
# 查找并输出
if category in data:
items = data[category]
print(f"{category}包括:{' '.join(items)}")
print(f"共{len(items)}个项目")
else:
print("未找到该类别")
题目描述:
年画是中国传统民间艺术,过年时家家户户张贴年画以增添喜庆气氛。某年画作坊提供定制服务,收费规则如下:
- 小幅年画(边长 <= 30cm):每幅成本价 15 元
- 中幅年画(边长 31~60cm):每幅成本价 30 元
- 大幅年画(边长 > 60cm):每幅成本价 50 元
- 如果订购数量 >= 10幅,总价打9折(乘以0.9)
请编写程序,输入年画的边长(整数,cm)和订购数量(整数),计算并输出总费用,保留1位小数。
输入格式:
输出格式:
示例输入1:
25 5
示例输出1:
总费用:75.0元
样例1说明:边长25cm(小幅),单价15元,5幅共75元,不足10幅不打折。
示例输入2:
45 12
示例输出2:
总费用:324.0元
样例2说明:边长45cm(中幅),单价30元,12幅。原价30×12=360元,满10幅打9折,360×0.9=324.0元。
示例输入3:
80 8
示例输出3:
总费用:400.0元
样例3说明:边长80cm(大幅),单价50元,8幅共400元,不足10幅不打折。
示例输入:
示例输出:
# 读取边长和数量
size, count = map(int, input().split())
# 根据边长判断单价
if size <= 30:
price = 15
elif size <= 60:
price = 30
else:
price = 50
# 计算原价
total = price * count
# 满10幅打9折
if count >= 10:
total = total * 0.9
# 输出结果(保留1位小数)
print(f"总费用:{total:.1f}元")