Ошибка типа: не удается умножить последовательность на не-int типа ‘float’ | Python

#python

Вопрос:

 h = s * math.tan(a * 3.14/180) - g * s * s / (v**2 * math.cos(a*3.14/180)**2 * 2)  

дает:

 TypeError: can't multiply sequence by non-int of type 'float'  

Полный код:

 import math  g = 9.81 s = 25 v = float(txtv.get()) a = float(txta.get()) h = s * math.tan(a * 3.14/180) - g * s * s / (v**2 * math.cos(a*3.14/180)**2 * 2)   window = Tk()  window.title("Добро пожаловать в приложение PythonRu")  window.geometry('400x250')  lbls = Label(window, text="Ввод переменной S:")  lbls.grid(column=0, row=0)  txts = Entry(window,width=10)  txts.grid(column=1, row=0)   lblv = Label(window, text="Ввод переменной Vo:")  lblv.grid(column=0, row=1)  txtv = Entry(window,width=10)  txtv.grid(column=1, row=1)   lbla = Label(window, text="Ввод переменной a:")  lbla.grid(column=0, row=2)  txta = Entry(window,width=10)  txta.grid(column=1, row=2)   

Помогите, пожалуйста

Комментарии:

1. 1 — что такое txtv , 2 — что вы ожидаете "Ваше значение Vo"**2 получить?

2. ДА. В типе int

Ответ №1:

s является строкой (отсюда и знаки деления). Вам нужно либо удалить кавычки, либо преобразовать их в числовой тип (например int(s) ), прежде чем использовать их в арифметической операции.

Редактировать:
Не видел v , a чтобы переменная and возвращалась .get() (Tkinter?). Здесь вам нужно конвертировать. Поскольку он не уверен, что это целое число, я бы использовал float() .

Комментарии:

1. v и a это тоже струны. Возможно, будет полезно узнать, чего от них ожидает ОП.

2. Я убрал кавычки. Та же ошибка

3. Как преобразовать v и a в тип int?

4. v является "Ваше значение Vo:" . Если бы вы могли преобразовать это в an int , какого бы вы ожидали результата?

5. Отредактировал приведенный выше код. Смотри