Как поменять местами точки с запятыми в Python?

#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 ли это работать с числом? Ваш ответ будет дополнен полной рабочей строкой кода.