首页 > 解决方案 > 为什么我的用户定义函数的返回值没有写入文本文件?

问题描述

正如标题所述,我一直在尽一切努力将结果写入文件。任何人都可以让我知道发生了什么事吗?我将不胜感激!

def convert_seconds(seconds):
    hours = seconds // 3600
    minutes = (seconds - hours * 3600) // 60
    remaining_seconds = (seconds - hours * 3600 - minutes * 60)
    return(hours, minutes, remaining_seconds)

convs = open("results.txt", "w")

koshka = input()

hours, minutes, seconds = convert_seconds(koshka)

convs.write(hours, minutes, seconds)

标签: python-3.x

解决方案


我在这里看到三个潜在的错误。当我测试这段代码时,我的第一个问题是捕获input()的是一个字符串,它需要是一个整数或浮点数(但这可能只是我运行它的方式)。我通过添加seconds = int(seconds)到函数的顶部来解决这个问题。

接下来,convs.write(hours, minutes, seconds)抛出一个错误,因为 writ 只接受一个参数。它应该是这样的,convs.write(str(hours) + " " + str(minutes) + " " + str(seconds))你可以让它更优雅,但关键是你需要写对象是一个字符串。

最后,在 w 模式下运行 write() 将“将文件截断为零长度或创建用于写入的文本文件。流位于文件的开头。” 大概,您想打开文件并将结果添加到其他任何内容中?如果是这样,您应该使用“a”而不是“w”。


推荐阅读