My assignment is to create a program to take 3 sides of a triangle and determine whether it is equilateral, isosceles, scalene, or not a triangle. There are 3 textboxes for the user to enter the lengths of the sides of the triangle, and a button to trigger its function. I keep getting errors when it goes to convert the user-inputted text to an integer or float. I'll copy my code below.
我的任务是创建一个程序来获取一个三角形的三条边,并确定它是否是等边、等腰、等边或不是三角形。有3个文本框供用户输入三角形的边长,还有一个按钮用于触发其功能。在将用户输入的文本转换为整型或浮点型文本时,我一直收到错误。我将在下面复制我的代码。
I expected it to convert the user-inputted text from the textboxes to integers in order to be able to compare them mathematically to determine the type of triangle.
我预计它会将用户输入的文本从文本框转换为整数,以便能够通过数学比较来确定三角形的类型。
Please let me know if I need to share more detail, this is the first time I've asked questions on here, though I've been reading for a couple of years.
如果我需要分享更多细节,请让我知道,这是我第一次在这里提问,尽管我已经读了几年了。
import flet as ft
def main(page: ft.Page):
############ function ##################
def is_triangle(side1, side2, side3):
side1 = float(side1.value);
side2 = float(side2.value);
side3 = float(side3.value);
if side1 + side2 > side3 or side2 + side3 > side1 or side1 + side3 > side2:
get_type(side1, side2, side3);
return(get_type(side1, side2, side3))
else:
return("Not a triangle");
def get_type(side1, side2, side3):
if side1 == side2 and side2 == side3:
return("The Triangle is equilateral")
else:
side1!= side2 and side2!= side3 and side1!= side3;
return("The Triangle is scalene");
output_textField.value = f"{is_triangle()}"
page.update()
############# page setup ################
page.title = "Triangle Type Identifier"
page.window_width = 700
page.window_height = 700
page.theme_mode = "light"
page.window_center()
page.vertical_alignment = ft.MainAxisAlignment.SPACE_EVENLY
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
########### page content ###############
title_text = ft.Text("Enter the length of each side of a triangle", color = "BLUE", size = 30)
########### input ###############
input1 = ft.Text("Enter side 1 of a triangle", color = "BLACK", size = 25)
side1 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")
input2 = ft.Text("Enter side 2 of a triangle", color = "BLACK", size = 25)
side2 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")
input3 = ft.Text("Enter side 3 of a triangle", color = "BLACK", size = 25)
side3 = ft.TextField(width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center")
############ button ###############
get_type_button = ft.ElevatedButton(
content = ft.ResponsiveRow(
[ft.Text("Get Type of Triangle", size = 20, text_align = "center")]
),
width = 300, height = 100, bgcolor = "BLUE", color = "WHITE",
on_click = is_triangle(side1, side2, side3)
)
########### output ###############
output_text = ft.Text("Triangle Type", color = "BLACK", size = 25)
output_textField = ft.TextField(
width = 100, height = 100, color = "BLACK", text_size = 20, text_align = "center"
)
page.add(
title_text,
input1,
side1,
input2,
side2,
input3,
side3,
get_type_button,
output_text,
output_textField
)
ft.app(target = main)
This was as far as I got. I keep getting the following error.
I tried using "a, b, c" within function "is_triangle" and that got it to where
it'd open the window at least, but then it would say
'TypeError: int() argument must be a string, a bytes-like object or a real
number, not 'TextField'
我只能走到这一步了。我一直收到以下错误。我尝试在函数“is_triangle”中使用“a,b,c”,这样至少可以打开窗口,但它会说‘TypeError:int()参数必须是字符串、类似字节的对象或实数,而不是’Textfield‘。“
Unhandled error processing page session : Traceback (most recent call last):
File "C:\Users\agcqu\anaconda3\lib\site-packages\flet_runtime\app.py", line 357, in on_session_created
session_handler(page)
File "c:\users\agcqu\cs120\3.4 lab_3_quigley_anna.py", line 55, in main
on_click = is_triangle(side1, side2, side3)
File "c:\users\agcqu\cs120\3.4 lab_3_quigley_anna.py", line 7, in is_triangle
side1 = float(side1.value);
ValueError: could not convert string to float:
"""
未处理的错误处理页面会话:回溯(最近一次调用):文件“C:\Users\agcqu\anaconda3\lib\site-packages\flet_runtime\app.py”,第357行,位于ON_SESSION_CREATED SESSION_HANDLER(PAGE)文件“c:\USERS\agcquu\cs120\3.4Lab_3_quigley_anna.py”,第55行,in Main on_Click=is_三角形(side 1,side 2,side 3)文件“c:\USERS\agcquu\cs120\3.4Lab_3_quigley_anna.py”,第7行,In is_triangleside 1=浮动(side 1.value);ValueError:无法将字符串转换为浮点型:“
更多回答
我是一名优秀的程序员,十分优秀!