用temp编程每次输入一个动物名,以及其重量和单位,动物名与重量间用空格分隔,直接输入回车时结束输入(此时输入的字符为空字符串)。
时间: 2024-02-20 16:57:07 浏览: 77
好的,我可以为您提供一个使用 `temp` 文件来存储用户输入的动物名称和重量的Python程序。以下是程序示例:
```python
import tempfile
animals = {}
with tempfile.TemporaryFile(mode="w+t") as f:
while True:
input_str = input("请输入动物名称和重量(单位):")
if not input_str:
break
f.write(input_str + "\n")
animal, weight_unit = input_str.split()
weight, unit = weight_unit.split("kg")
animals[animal] = float(weight)
f.seek(0)
sorted_animals = sorted(animals.items(), key=lambda x: x[1], reverse=True)
for animal, weight in sorted_animals:
f.write(f"{animal} {weight} kg\n")
f.seek(0)
print(f.read())
```
在这个程序中,我们使用 `tempfile` 模块创建了一个临时文件,并将其用作存储用户输入的动物名称和重量的容器。在 `with` 语句中,我们进入一个无限循环,接收用户的输入,并将每次输入的内容写入临时文件中。与前面的程序类似,当用户输入一个空字符串时,我们使用 `break` 语句跳出循环。同时,我们将动物名称和重量的信息提取出来,并将其存储在字典 `animals` 中,以动物名称为键,以重量为值。
循环结束后,我们使用 `seek` 函数将文件指针移动到文件开头,并使用 `sorted` 函数对字典中的项进行排序,排序的依据是每个项的值(重量),我们指定了一个 `lambda` 函数来获取每个项的值。然后,我们遍历排序后的项,并将它们的名称、重量和单位写入临时文件中。
最后,我们再次使用 `seek` 函数将文件指针移动到文件开头,并使用 `read` 函数读取整个文件的内容,并将它打印到控制台上。
如果用户依次输入了以下内容:
```
大象 5000kg
狮子 190kg
长颈鹿 1500kg
斑马 500kg
犀牛 2200kg
河马 2500kg
```
则程序将输出:
```
大象 5000.0 kg
河马 2500.0 kg
犀牛 2200.0 kg
长颈鹿 1500.0 kg
斑马 500.0 kg
狮子 190.0 kg
```
这就是按重量排序后的动物列表,每个动物的重量都带有单位,并且存储在了 `temp` 文件中。
阅读全文