У меня вопрос о том, как работает скрипт html+py. .... Я получаю 3 значения трапециевидных данных из html: высота, длина стороны 1 и длина стороны 2, затем нажимаю отправить. и отправьте значение, которое ввел пользователь, давайте рассчитаем с помощью скрипта py Затем покажите секретный результат на экране. Но результаты показали, что скрытых эффектов на экране нет вообще. Как мне это исправить? Спасибо
это мой код
<!DOCTYPE>
<html lang = "th">
<head>
<meta charset = "UTF-8">
<title>
trapezoidal
</title>
<link rel = "stylesheet" href = "https://pyscript.net/alpha/pyscript.css" />
<script defer src = "https://pyscript.net/alpha/pyscript.js"></script>
</head>
<body>
<form onsubmit = "return false">
<label for = "w1">1st side length:</label><br>
<input type = "number" step = "any" id = "w1" name = "w1" ><br>
<label for = "w2">2st side length:</label><br>
<input type = "number" step = "any" id = "w2" name = "w2" ><br>
<label for = "h">height:</label><br>
<input type = "number" step = "any" id = "h" name = "h" ><br>
<input pys-onClick = "whcalc" type = "submit" id = "btn-form" value = "submit">
</form>
<p id = 'output'></p>
<py-script>
def whcalc(*args,**kwargs):
w1= float(Element('w1').value)
w2= float(Element('w2').value)
h= float(Element('h').value)
result_place = Element('output')
#except:
w1 = 0.0
w2 = 0.0
h = 0.0
if w1 > 0 and w2 > 0 and h > 0:
s = 1/2*h*w1+w2
result_place.write('this is trapezoidal ', s)
</py-script>
</body>
</html>
Вы устанавливаете все свои переменные в 0.0
перед проверкой их значений, что означает, что ваше условие (if w1 > 0 and w2 > 0 and h > 0
) всегда будет оцениваться как False
, поэтому вы никогда ничего не печатаете в своем выходном элементе.
Удалите следующие строки, и ваш скрипт заработает:
w1 = 0.0
w2 = 0.0
h = 0.0
Также, если вы хотели отобразить значение, вам нужно будет изменить следующую строку:
result_place.write('this is trapezoidal ', s)
к этому:
result_place.write('this is trapezoidal ' + str(s))