如何使用tkinter将用户输入与列表进行比较

2024-04-25 07:50:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图找出一种方法来比较用户输入和数组。如果用户输入是唯一的,并且与列表中的任何元素都不匹配,则应将输入添加到列表中。到目前为止,我所有的方法都没有奏效。下面是我最近的一次

def input_stub():
    global player_num
    global name_entry
    global display_num
    if player_num != t1_amount:     ##t1_amount is the amount of elements the user wants in the list
        t1_input = Toplevel(master)
        final_confirm.withdraw()
        title = Label(t1_input, text = "Team 1 Input").grid(row = 0, column = 1)
        request = Label(t1_input, text = "Please enter player " + str(display_num) + " name").grid(row = 1, column = 1)
        name_entry = Entry(t1_input)
        name_entry.grid(row = 2, column = 1)
        display_num = display_num + 1
        valid_button = Button(t1_input, text = "Submit", command = lambda: player_valid()).grid(row = 4, column = 1)
        def player_valid():              ##THIS IS WHERE USER INPUT NEEDS TO BE COMPARED
            elem = len(team_1_array)
            for i in range(0, elem):
                p = None
                while not p or p in team_1_array:
                    p = name_entry.get()
                    if p in team_1_array:
                        error = Label(t1_input, text = "Error").grid(row = 3, column = 1)
                    else:
                        player_num = player_num + 1
                        t1_validation(team_1_array)  ##IF IT PASSES, IT MOVES ON TO BEING PUT ONTO THE END OF THE LIST
        def t1_validation(current_team):
            global player_num
            global display_num
            global team_1_array
            global t1_confirm
            current_player_trans = p
            current_team.append(current_player_trans)
            if player_num != t1_amount:
                t1_input.destroy()
                input_stub()
            elif player_num == t1_amount:    ##THIS DISPLAYES THE LIST ONCE THE SELECTED AMOUNT OF ELEMENTS ARE IN THE ARRAY
                t1_confirm = Toplevel(master)
                t1_input.withdraw()
                t1_confirm.geometry("200x200")
                player_count = 1
                for i in range(len(team_1_array)):
                    exec('Label%d=Label(t1_confirm,text="%s")\nLabel%d.pack()' % (i, "Player " + str(player_count) + " : " + team_1_array[i], i))
                    player_count = player_count + 1
                confirm_button = Button(t1_confirm, text = "Confirm Team 1", command = lambda: input_stub_2()).pack()

任何帮助都将不胜感激


Tags: textnameininputdisplayarrayamountglobal