#python #excel
#python #excel
Вопрос:
У меня есть вывод, который записан в файле Excel. Мои значения имеют значение с плавающей запятой, а в python точка с плавающей запятой находится в точке (1/3 = 0,33), но в Excel точки с плавающей запятой находятся в запятых (0,33). Как я могу преобразовать все точки в запятые………………………………….?
import math
print("nThis program calculates the maximum height and speed of a one stage rocket n")
Isp = float(input("Write Specific Impulse in seconds = "))
min = float(input("Write the initial mass of the rocket ="))
mfuel = float(input("Write tha mass of fuel = "))
mf = float(input("Write the final mass of the rocket = "))
tb = float(input("Write the time that rockets fuel ends = "))
file = open("Ask_2_AET.csv", "w")
file.write("h in meters")
file.write(";")
file.write("V in m/s")
file.write(";")
file.write("t in secondsn")
g = 9.81
t = 0.000001
Ve = g * Isp
while t == tb or t < tb:
mt = min - mfuel * (t/tb)
y = g * (-t * Isp * (math.log(min/mt) / ((min/mt) - 1)) t * Isp - 1/2 * t ** 2)
V = Ve * math.log(min / mt) - g * t
t = round(t)
file.write(str(round(y, 2)))
file.write(";")
file.write(str(round(V, 2)))
file.write(";")
file.write(str(round(t)))
file.write("n")
t = 1
Vb = V
while V > 0:
V = Vb - g * t
h = Vb * t - 1 / 2 * g * t ** 2
if V > 0:
file.write(str(round(h, 2)))
file.write(";")
file.write(str(round(V, 2)))
file.write(";")
file.write(str(round(t)))
file.write("n")
t = 1
else:
break
Комментарии:
1. Не могли бы вы превратить значение с плавающей точкой в строку .a, а затем заменить точки запятой? :
num = str(num).replace('.', ',')
Ответ №1:
вы можете использовать replace()
метод for strings
в python. Непосредственно перед записью вы можете преобразовать число в строку и использовать replace()
метод для замены точки на запятую:
num = 3.16
num = str(num).replace(".", ",")
Ответ №2:
вы читаете csv? если да, вам следует рассмотреть модуль csv, который позволит вам легко анализировать ваш файл. Затем вы можете преобразовать все свои str в float, используя .replace() следующим образом:
my.csv: 1,90;1,90;1,90 2,91;2,92;2,93 3,92;3,92;3,93
>>> import csv
>>> with open('my.csv') as f:
... for line in f.readlines():
... line.replace(',' , '.')
...
'1.90;1.90;1.90n'
'2.91;2.92;2.93n'
'3.92;3.92;3.93n'
Ответ №3:
Просто используйте
variable.replace(".",",")
Если они не являются строками, вам может потребоваться сначала выполнить str() .
Комментарии:
1. Будет
.replace
ли это работать с числом? Ваш ответ будет дополнен полной рабочей строкой кода.