You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:03:09