武汉理工大学实验九第四关

任务描述

本关任务:根据附件文件,创建字典并实现按照分类进行查询的功能。

附件中文件名为menu.csv,编码格式为UTF-8。数据为csv格式(文本),各数据项之间以逗号,分隔‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬

文件包含某餐饮品牌店中的菜品以及各菜品对应的相关成分数据(包含菜品分类Category,菜品名称Item,菜品份量Serving Size,卡路里Calories,总脂肪Total Fat等) 文件内容示例:

,

代码模板已经实现了文件读取所有数据,并存为列表ls,根据测试要求完成代码。

编程要求

将数据列表ls中部分数据创建为字典: key为序号(整数),按照文件顺序,从1开始依次递增,每次递增1。 value为列表,包含菜品分类Category,菜品名称Item两组数据 输入n:

  1. 如果输入的n为一个文件中的菜品分类Category,则按照文件内数据顺序,输出数据字典中所有属于该分类的数据内容及数据总数量。每行输出字典中一个键值对,键key与值value之间
### 武汉理工大学 Python 实验三 第八 解题思路与实验要求 根据武汉理工大学 Python 实验三的内容,第八通常涉及综合运用前面所学的知识点来解决实际问题。结合引用内容和常见的实验设计[^1],以下是对第八可能的实验要求及解题思路的分析。 #### 1. 实验要求 第八实验要求通常包括以下几个方面: - **综合知识点**:实验可能要求学生综合运用函数、条件语句、循环语句、字符串处理、文件操作等基础知识。 - **具体任务**:例如实现一个简单的加密解密程序(如凯撒密码[^3])、处理文本文件中的数据、或者完成一个小型的网络通信任务。 - **输入输出规范**:明确输入数据格式和输出结果的要求。 - **代码优化**:要求学生对代码进行优化,确保程序的可读性和效率。 #### 2. 解题思路 以下是可能的解题思路,假设实验任务实现一个凯撒密码加密解密程序: ##### (1) 凯撒密码加密 ```python def caesar_encrypt(text, shift): result = "" for char in text: if char.isalpha(): # 判断是否为字母 base = ord('A') if char.isupper() else ord('a') result += chr((ord(char) - base + shift) % 26 + base) else: result += char # 非字母字符保持不变 return result ``` ##### (2) 凯撒密码解密 ```python def caesar_decrypt(text, shift): return caesar_encrypt(text, -shift) # 解密即为负向加密 ``` ##### (3) 文件操作 如果实验要求从文件中读取明文或密文,将结果写入另一个文件,可以使用以下代码: ```python # 读取文件内容 with open("input.txt", "r", encoding="utf-8") as file: plaintext = file.read() # 加密保存到输出文件 ciphertext = caesar_encrypt(plaintext, 3) with open("output.txt", "w", encoding="utf-8") as file: file.write(ciphertext) ``` ##### (4) 用户交互 如果需要用户输入加密或解密模式以及移位值,可以添加以下交互逻辑: ```python mode = input("选择模式 (E: 加密, D: 解密): ").strip().upper() shift = int(input("输入移位值: ")) text = input("输入文本: ") if mode == 'E': result = caesar_encrypt(text, shift) elif mode == 'D': result = caesar_decrypt(text, shift) else: result = "无效模式" print("结果:", result) ``` #### 3. 注意事项 - 确保程序能够正确处理大小写字母[^3]。 - 对于非字母字符(如空格、标点符号),应保持其原样。 - 如果实验涉及文件操作,注意文件路径和编码格式,避免因编码问题导致错误。 --- ###
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值