Так что я новичок в 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
ador007 30 Июн 2019 в 21:02

3 ответа

Лучший ответ

Вы можете преобразовать его в строку и затем добавить, используя {{X0} } для этого.

Num2 = float(input("Enter 2nd num: "))
Salary = num1 - num2
employee_file = open("employee_salary.txt", "a")
employee_file.write(str(salary))
employee_file.close()
0
Vitor Falcão 30 Июн 2019 в 18:06

Вы должны сначала преобразовать float в строку.

employee_file.write(str(salary))

Кроме того, вы можете добавить новую строку, поскольку File.write() не делает этого автоматически.

employee_file.write(str(salary) + '\n')

Кроме того, не открывайте и не закрывайте файлы явно. Лучше практиковать это с помощью конструкции with python:

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
2
Finomnis 30 Июн 2019 в 18:11

Вы должны преобразовать ваш float в текст, чтобы иметь возможность записать его в текстовый файл. Если вы используете Python 3.6 или новее, вы можете использовать так называемые f-строки. Просто замени

employee_file.write(salary)

В вашем коде с

employee_file.write(f"{salary}\n")

Тогда он всегда будет добавлять зарплату и newline в ваш файл. Если вы хотите узнать больше о f-строках, я предложил прочитать эту статью. В качестве примечания я хочу предупредить вас, что операции с float могут привести к результату, который не является правильным с математической точки зрения, если вы хотите узнать больше об этом есть соответствующая часть документации. Из-за этого вы можете закончить со значениями менее 1 цента, в удивительных местах, рассмотрите следующий пример:

s = 0.1+0.1+0.1
print(s)

Выход:

0.30000000000000004
0
Daweo 30 Июн 2019 в 18:55