CustomTkinter中.get()与.insert()操作报错:insert参数数量不符
问题解决:CustomTkinter程序报错“insert expected 2 arguments, got 1”
错误原因
你代码里的核心错误是误用了Python内置列表的insert()方法:
- 你把变量名命名为
list,覆盖了Python的内置list类型,这本身就不推荐。 - 内置列表的
insert()方法需要两个参数:插入的索引位置,以及要插入的元素。而你写的list.insert(float(enter.get()))只传了一个参数,这就是控制台报错的直接原因。
另外你的submitting()函数逻辑还有混乱的地方,比如重复添加元素到列表、文本框操作逻辑冲突,这些也需要调整。
修改后的完整代码
import customtkinter as ctk root = ctk.CTk() root.geometry("500x500") root.iconbitmap('/imgs/icon.ico') root.title("Max - Min finder") ctk.set_appearance_mode("dark") ctk.set_default_color_theme("dark-blue") # 不要用list作为变量名,替换为num_list num_list = [] is_there_smth = False def clearing(): list_view.delete(0.0, "end") num_list.clear() def submitting(): global is_there_smth # 获取输入框的数值,增加输入验证 try: num = float(enter.get()) except ValueError: list_view.insert("end", "请输入有效的数字!\n") enter.delete(0, "end") return enter.delete(0, "end") # 清空输入框 if is_there_smth: list_view.delete(0.0, "end") is_there_smth = False num_list.append(num) # 在文本框中追加数字,保持格式清晰 list_view.insert("end", f"{num}, ") def find_max_min(): global is_there_smth if not num_list: list_view.insert("end", "请先添加数字!\n") return if is_there_smth: list_view.delete(0.0, "end") is_there_smth = False else: is_there_smth = True max_val = max(num_list) min_val = min(num_list) list_view.insert("end", f"Max: {max_val}\nMin: {min_val}") label = ctk.CTkLabel(root, text="List", font=("Monolisa", 20)) label.pack(pady=20, padx=20) list_view = ctk.CTkTextbox(root, width=250, height=50) list_view.pack(pady=20, padx=20) enter = ctk.CTkEntry(root, placeholder_text="Enter each number", font=("Monolisa", 14), width=200) enter.pack(pady=20, padx=20) submit = ctk.CTkButton(root, text="Submit", font=("Monolisa", 14), command=submitting) submit.pack(pady=20, padx=20) clear = ctk.CTkButton(root, text="Clear", font=("Monolisa", 14), command=clearing) clear.pack(pady=20, padx=20) findmax = ctk.CTkButton(root, text="Find max and min", font=("Monolisa", 14), command=find_max_min) findmax.pack(pady=20, padx=20) root.mainloop()
关键修改点
- 把变量名
list改为num_list,避免覆盖Python内置类型。 - 移除了无效的列表
insert()调用,改用append()正确添加元素。 - 增加输入验证,处理用户输入非数字的异常情况。
- 优化文本框操作逻辑,避免重复内容和混乱显示。
- 添加空列表判断,防止点击查找按钮时触发错误。
内容的提问来源于stack exchange,提问作者idk how to code
相关产品推荐
相关产品推荐

