算法应用主题赛 · Python · 共 14 题(5单选+5多选+4编程)· 满分 100 分
price_str = "200"。要将它转换为整数进行计算,以下代码正确的是?route = "长安-敦煌-喀什-撒马尔罕"。执行 route[3:5] 的结果是?camels = ["载货", "空闲", "载货", "休息"]
for c in camels:
if c == "空闲":
print("找到空闲骆驼")
break
else:
print("没有空闲骆驼")for i in range(1, 6):
if i == 3:
continue
print(i)while 循环的说法,正确的有?(多选)题目描述:
丝绸之路上的驼队每行进 7 天就需要在驿站休息 1 天。请你编写程序,用户输入一个天数编号(从第1天开始),程序判断该天是否为休息日。
判断规则:如果天数编号能被 7 整除(即余数为0),则该天为休息日,输出"第X天是休息日"。否则,输出"第X天继续赶路"。
输入格式:
一行,一个正整数,表示天数编号。
输出格式:
一行,按规则输出判断结果。
示例输入1:
7
示例输出1:
第7天是休息日
示例输入2:
5
示例输出2:
第5天继续赶路
示例输入:
示例输出:
day = int(input())
if day % 7 == 0:
print("第" + str(day) + "天是休息日")
else:
print("第" + str(day) + "天继续赶路")
题目描述:
在丝绸之路的丝绸贸易中,不同地区的度量单位不同。中原地区使用"尺",西域使用"米"。已知:1尺 ≈ 0.33米。
请你编写一个函数 convert_to_meter(chi),接收一个尺数(整数),返回对应的米数(保留两位小数)。然后在主程序中,用户输入一个尺数,调用函数并输出换算结果。
输入格式:
一行,一个正整数,表示尺数。
输出格式:
一行,输出"X尺 ≈ Y米"(Y为换算后的米数,保留两位小数)。
示例输入:
示例输出:
def convert_to_meter(chi):
return round(chi * 0.33, 2)
chi = int(input())
meter = convert_to_meter(chi)
print(str(chi) + "尺 ≈ " + str(meter) + "米")
题目描述:
丝绸之路上的瓷器来自不同的窑口,每个窑口生产的瓷器有不同的质量等级。请你编写程序,实现以下功能:
1. 用户先输入一个窑口名称(如"景德镇"、"德化"、"龙泉")。
2. 根据窑口输出对应的等级和特色:
- 景德镇 → "等级:御窑,特色:青花瓷"
- 德化 → "等级:官窑,特色:白瓷"
- 龙泉 → "等级:民窑,特色:青瓷"
- 其他输入 → "未收录该窑口信息"
3. 然后用户输入该批次瓷器的数量(正整数)。
4. 程序根据等级判断每件瓷器的单价:
- 御窑(景德镇):每件 500 文
- 官窑(德化):每件 300 文
- 民窑(龙泉):每件 100 文
5. 输出该批次瓷器的总价。
输入格式:
第一行:窑口名称(字符串)。
第二行:瓷器数量(正整数)。
输出格式:
第一行:窑口等级和特色信息(或"未收录该窑口信息")。
如果窑口被收录,第二行输出:该批次总价:X文。
如果窑口未被收录,不输出第二行。
示例输入1:
景德镇
3
示例输出1:
等级:御窑,特色:青花瓷
该批次总价:1500文
示例输入2:
汝窑
5
示例输出2:
未收录该窑口信息
示例输入:
示例输出:
kiln = input()
quantity = int(input())
if kiln == "景德镇":
print("等级:御窑,特色:青花瓷")
price = 500
total = price * quantity
print("该批次总价:" + str(total) + "文")
elif kiln == "德化":
print("等级:官窑,特色:白瓷")
price = 300
total = price * quantity
print("该批次总价:" + str(total) + "文")
elif kiln == "龙泉":
print("等级:民窑,特色:青瓷")
price = 100
total = price * quantity
print("该批次总价:" + str(total) + "文")
else:
print("未收录该窑口信息")
题目描述:
"一带一路"倡议涵盖了众多沿线国家。请你编写程序,实现对贸易伙伴国家的统计功能:
1. 程序初始包含一份已有的国家列表:countries = ["哈萨克斯坦", "乌兹别克斯坦", "伊朗"]。
2. 用户首先输入一个整数 m,表示接下来要进行 m 次操作。
3. 每次操作为一行输入,格式如下:
- join 国家名:表示有新的国家加入贸易合作,将其添加到列表末尾。
- leave 国家名:表示有国家退出合作,将其从列表中移除(如果存在)。
- count:统计并输出当前国家数量。
- list:按顺序输出当前所有国家名称,每行一个,前面加上编号(从1开始)。
4. 注意:如果执行 leave 操作时,列表中国家数量为1,则不能移除(至少保留一个国家),并输出"无法移除,至少保留一个国家。"
输入格式:
第一行:一个正整数 m,表示操作次数。
接下来 m 行:每行一个操作命令。
输出格式:
对 count 命令:输出"当前合作伙伴数量:X国"。
对 list 命令:先输出"===合作伙伴列表===",然后每行输出"编号. 国家名"。
对无法移除的情况:输出"无法移除,至少保留一个国家。"
示例输入:
示例输出:
countries = ["哈萨克斯坦", "乌兹别克斯坦", "伊朗"]
m = int(input())
for _ in range(m):
cmd = input()
if cmd == "count":
print("当前合作伙伴数量:" + str(len(countries)) + "国")
elif cmd == "list":
print("===合作伙伴列表===")
for i in range(len(countries)):
print(str(i + 1) + ". " + countries[i])
elif cmd.startswith("join "):
name = cmd[5:]
countries.append(name)
elif cmd.startswith("leave "):
name = cmd[6:]
if len(countries) <= 1:
print("无法移除,至少保留一个国家。")
elif name in countries:
countries.remove(name)