python 显示 none 而不是空 space

python shows none instead of empty space

我正在尝试一个文件处理练习,它可以转换温度并将其写入文件。我程序的功能部分是:

def c_to_f(c):
if c< -273.15:
    pass #"That temperature doesn't make sense!"
else:
    f=c*9/5+32
    return f

在练习说明中,要求我在输入低于-273.15时不要在文本文件中写入任何消息。即对于一组值 temperatures = [10,-2​​0,-289,100] 期望输出应该是:

 50.0
-4.0
212.0 

但我不断收到

50.0
-4.0
None
212.0

为什么传递返回 "None" 值而不是传递(什么都不做)。

这是我的主要方法:

file = open("temp_file.txt", "w+")
for i in temperatures:
    k = c_to_f(i)
    file.write(str(k) + "\n")
file.close()

如果没有 return 语句,默认情况下 Python returns None 来自函数。

在使用条件将输出写入文件之前,您可以检查值是否为 None。另请注意,使用不在 with 块中的文件句柄通常是不好的做法(请参阅 the docs)。

with open("temp_file.txt", "w+") as file:
    for i in temperatures:
        k = c_to_f(i)
        if k is not None:
            file.write(str(k) + "\n")

当您分配 k = c_to_f(i) 时,当 c_to_f 通过时,您期望 k 是什么?这是 None,因为您没有返回任何东西。

如果是None,你可以跳过写这行。

for i in temperatures:
    k = c_to_f(i)
    if k:
        file.write(str(k) + "\n")