我正在尝试一种文件处理练习,它可以转换温度并将其写入文件。我的程序的功能部分是:
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时,要求我不要在文本文件中写任何消息。即对于一组温度= [10,-20,-289,100]的值,期望输出应为:
50.0
-4.0
212.0
但我一直在
50.0
-4.0
None
212.0
为什么通过返回&#34;无&#34;价值而不是传递(什么都不做)。
这是我的主要方法:
file = open("temp_file.txt", "w+")
for i in temperatures:
k = c_to_f(i)
file.write(str(k) + "\n")
file.close()
答案 0 :(得分:1)
默认情况下,如果没有None
语句,Python将从函数返回return
。
在使用条件将输出写入文件之前,您可以检查值是否为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")