@RNIKROBOT

При использовании команды input выдаёт ошибку, хотя в других случаях работает нормально. В чём суть проблемы?

Мне нужно ввести данные для расчётов, но выводится данная ошибка. В других случаях всё работает, в этом же выдаёт ошибку:

AttributeError: 'float' object has no attribute 'write'

Ещё питон не может создать в ворде формулу. В коде данные строчки отмечены комментарием. Знаете ли вы о возможности вводе формулу в Word через питон? Я прочёл некоторые статьи, но решения ещё не видел.
import docx
from docx.shared import Pt
from datetime import date
from docx.enum.text import WD_ALIGN_PARAGRAPH 

#узнаю и вбиваю сегодняшнее число. Перевожу в тип строки
current_date = date.today()
t=str(current_date)
#создаю txt файл
b=t+' Лобовое сопротивление экраноплан.docx'
my_file = open(b, "w+",encoding='utf-8')
#исходные данные

doc =docx.Document()
# задаем стиль текста по умолчанию
style = doc.styles['Normal']
# название шрифта
style.font.name = 'Times New Roman'
# размер шрифта
style.font.size = Pt(14)
#расчёты и ввод данных
#Абзац
para1=doc.add_paragraph('4 ЛОБОВОЕ СОПРОТИВЛЕНИЕ ЭКРАНОПЛАНА')
para1.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
doc.add_paragraph('')
para2=doc.add_paragraph('Коэффициент сопротивления крыла:')
para2.paragraph_format.alignment=WD_ALIGN_PARAGRAPH.LEFT

# Питон не может создать в ворде даннцю формлу. Требует доработки.
# para3=doc.add_paragraph(plt.title(r'$C_{xa кр}=C_{xa р} + \Sigma\Delta C_{xa}$'))
#Cxakp=Cxap+sdCxa
# Добавляем пустой абзац
p = doc.add_paragraph()
# Добавляем пустой прогон
run = p.add_run()
# Добавляем картинку как отдельный абзац
run.add_picture('f1.png')
# выравниваем картинку посередине страницы
p.alignment =  WD_ALIGN_PARAGRAPH.CENTER
#Тоже не считает. Упрощу расчёт. 
#para4=doc.add_paragraph(plt.title(r'$Re=\frac{Vb_{cp}}{ν}$'))
doc.add_page_break()
p2 = doc.add_paragraph()
# Добавляем пустой прогон
run = p2.add_run()
# Добавляем картинку как отдельный абзац
run.add_picture('f2.png')
# выравниваем картинку посередине страницы
p2.alignment =  WD_ALIGN_PARAGRAPH.CENTER
V=float(input('\nВведите крейсерскую скорость экраноплана '))
b=float(input('\nВведите среднюю геометрическую хорду крыла, полученную с эскиза '))
ν=15.06*10**-6
doc.add_paragraph('')
para3=doc.add_paragraph(f'Где V={V} м⁄с – крейсерская скорость экраноплана; bср={b} – средняя геометрическая хорда крыла, полученная из эскиза; ν=15,06∙10^(-6) – коэффициент кинематической вязкости воздуха вблизи воды при температуре 20℃')
print(f'Где V={V} м⁄с – крейсерская скорость экраноплана; bср={b} – средняя геометрическая хорда крыла, полученная из эскиза; ν=15,06∙10^(-6) – коэффициент кинематической вязкости воздуха вблизи воды при температуре 20℃')
doc.save(b)
  • Вопрос задан
  • 73 просмотра
Решения вопроса 1
@PavelMos
AttributeError: 'float' object has no attribute 'write'

Есть что-то похожее на имя_переменной.write(.....
?
Возможно, тут должен был быть некий объект класса файл или что-то еще, у которого есть встроенная функция write, которой он сам себя записывает куда-то. А по ошибке под этим именем сохранилось число, то есть объект типа float
Всё вышеописанное также сообщает сам компилятор, нужно только перевести с английского и разобраться.

Если нужно создание файлов с формулами, можно LaTex посмотреть.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы