我运行以下程序,希望将输出保存为.txt文件。
我已经在python 3.6的spyder IDE中运行了此代码。
temperatures = [10,-20,-289,100]
file = open('temperature.txt','w')
def f_to_c(temperatures):
for celsius in temperatures:
if celsius > -273.15:
fahrenheit = celsius * (9/5) + 32
file.write(str(fahrenheit))
f_to_c(temperatures)
此代码中没有没有错误消息,但是我没有在.txt文件中得到输出。你能帮忙吗?
答案 0 :(得分:1)
def f_to_c(file: str, temps: list):
with open(file, 'a', newline='\n') as f:
for temp in temps:
if temp > -273.15:
fahrenheit = temp * (9/5) + 32
f.write(f'{fahrenheit}\n')
temps = [10,-20,-289,100]
f_to_c('temperature.txt', temps)
with open
打开文件。
file
从未关闭。 with
,将自动关闭文件。 Reading and Writing Files file
对象。 Scope of Variables in Python a
附加到文件。f'{fahrenheit}\n'
是f-string。
fahrenheit
来转换str()
(file: str, temps: list)
使用PEP 484 - Type Hints def f_to_c(temps: list) -> list:
return [temp * (9/5) + 32 for temp in temps if temp > -273.15]
temps = [10,-20,-289,100]
with open('temperature.txt', 'a', newline='\n') as f:
for value in f_to_c(temps):
f.write(f'{value}\n')
return
statement 答案 1 :(得分:0)
以下更清洁的方法
def f_to_c(temperatures):
fahrenheit_results = []
for celsius in temperatures:
if celsius > -273.15:
fahrenheit_results.append(celsius * (9 / 5) + 32)
return fahrenheit_results
results = f_to_c([10, -20, -289, 100])
with open('out.txt','w') as out:
for r in results:
out.write(str(r) + '\n')