所以我是python的初学者,我正在尝试附加命令。它对字符串非常有效,但对浮点数则无效。我用了这个:
Num1 = float(input("Enter 1st num: "))
Num2 = float(input("Enter 2nd num: "))
Salary = num1 - num2
employee_file = open("employee_salary.txt", "a")
employee_file.write(salary)
employee_file.close()
我知道我可以从输入中删除float()
,但这只是一个例子,我的程序比这更复杂,并且我不想删除float()
。是否有任何命令可将float附加到文本文件?请帮助我。
答案 0 :(得分:2)
您必须先将浮点数转换为字符串。
employee_file.write(str(salary))
此外,您可能希望添加换行符,因为File.write()
不会自动这样做。
employee_file.write(str(salary) + '\n')
此外,请勿显式打开和关闭文件。最好使用python的with
结构来做到这一点:
num2 = float(input("Enter 2nd num: "))
salary = num1 - num2
with open("employee_salary.txt", "a") as employee_file:
employee_file.write(str(salary) + '\n')
# No close necessary, the end of the with-paragraph closes the file automatically
答案 1 :(得分:0)
您可以将其转换为字符串,然后附加,并使用str(x)
。
Num2 = float(input("Enter 2nd num: "))
Salary = num1 - num2
employee_file = open("employee_salary.txt", "a")
employee_file.write(str(salary))
employee_file.close()
答案 2 :(得分:0)
您需要将float转换为文本,才能将其写入文本文件。如果您使用的是Python 3.6或更高版本,则可以使用所谓的f字符串。只需替换
employee_file.write(salary)
在您的代码中使用
employee_file.write(f"{salary}\n")
然后它将始终将薪水和newline
附加到您的文件中。如果您想了解有关f弦的更多信息,建议阅读this article。顺带一提,我想提醒您,如果您想了解更多关于there is relevant documentation piece的信息,对float
的操作可能会导致结果,从数学的角度来看,这是不正确的。因此,您可能会得到小于1美分的值,在令人惊讶的地方,请考虑以下示例:
s = 0.1+0.1+0.1
print(s)
输出:
0.30000000000000004