#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:"
. Если бы вы могли преобразовать это в anint
, какого бы вы ожидали результата?5. Отредактировал приведенный выше код. Смотри