如何检查数组中是否存在变量?

2024-05-13 19:51:34 发布

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

我正在编写代码,为像素创建变量。你知道吗

我使用变量pixel_start = 375pixel_middle = 724pixel_end = 1073,因为我想一次检查每个变量。你知道吗

当我尝试这个:

def GoRight(self):
    basex, basey = self.getControl(347 + self.channels_Index).getPosition()
    basew = self.getControl(347 + self.channels_Index).getWidth()

    # change program controls to display the proper junks
    if self.channels_Index != len(self.program_buttons) - 1:
        CurrentRow = self.program_buttons[self.programs_Index].control.getX()
        CurrentWidth = self.program_buttons[self.programs_Index].control.getWidth()
        CurrentX = self.program_buttons[self.programs_Index].control.getX()
        print CurrentWidth
        #print CurrentX
        pixel_start = 375
        pixel_middle = 724
        pixel_end = 1073
        self.move_flag = True


        #Check on pixels size between start and end time
        if CurrentRow != pixel_end:
            if pixel_start == 375:
                if int(prog_width) == 2437:
                    programs_width = 2082
                    self.getControl(int(prog_id)).setWidth(int(programs_width))


                elif int(prog_width) == 2082:
                    programs_width = 1735
                    self.getControl(int(prog_id)).setWidth(int(programs_width))


                elif int(prog_width) == 1735:
                    programs_width = 1392
                    self.getControl(int(prog_id)).setWidth(int(programs_width))


                elif int(prog_width) == 1392:
                    programs_width = 1038
                    self.getControl(int(prog_id)).setWidth(int(programs_width))


                elif int(prog_width) == 1038:
                     programs_width = 691
                     self.getControl(int(prog_id)).setWidth(int(programs_width))


                     if int(prog_width) == 691:
                         self.programs_Index += 1
                    self.setFocus(self.program_buttons[self.programs_Index].control)


                 elif int(prog_width) == 691:
                      programs_width = 342
                      self.getControl(int(prog_id)).setWidth(int(programs_width))


                 elif int(prog_width) == 342:
                      self.getControl(int(prog_id)).setVisible(False)
                      self.getControl(int(prog_id)).setPosition(int(pos_X) - 350, int(pos_Y))


                 elif int(pos_X) == 724:
                     nextprogram = int(prog_id) + 1
                     self.getControl(int(nextprogram)).setPosition(1073, int(pos_Y))
                     self.getControl(int(nextprogram)).setVisible(True)


                     elif int(pos_X) == 1073:
                         self.move_flag = True
                         print "catch this one"



            if pixel_middle == 724:
                program_button = [elem.control for elem in self.program_buttons]
                programs_id = list()
                program_width = list()
                positions_X = list()
                positions_Y = list()

                for elem in program_button:
                    programs_id.append(elem.getId())
                    positions_X.append(elem.getX())
                    positions_Y.append(elem.getY())
                    program_width.append(elem.getWidth())
                 programs_id = map(str, programs_id)
                 posX = map(str, positions_X)
                 posY = map(str, positions_Y)
                 program_width = map(str, program_width)

                 for pos_X, pos_Y, prog_id, prog_width in zip(positions_X, positions_Y, programs_id, program_width):
                     if int(pos_X) == 724:
                         self.getControl(int(prog_id)).setPosition(375, int(pos_Y))


                     if self.move_flag == True:
                         print "catch this two"
                         if pixel_end == 1073:
                             program_button = [elem.control for elem in self.program_buttons]
                         programs_id = list()
                         program_width = list()
                         positions_X = list()
                         positions_Y = list()

                         for elem in program_button:
                             programs_id.append(elem.getId())
                             positions_X.append(elem.getX())
                             positions_Y.append(elem.getY())
                             program_width.append(elem.getWidth())
                         programs_id = map(str, programs_id)
                         posX = map(str, positions_X)
                         posY = map(str, positions_Y)
                         program_width = map(str, program_width)

                         for pos_X, pos_Y, prog_id, prog_width in zip(positions_X, positions_Y, programs_id, program_width):
                             if int(pos_X) == 1073:
                                 print "catch this three"
                                 self.getControl(int(prog_id)).setPosition(724, int(pos_Y))


                    self.channels_row += 1
                    #print self.channels_row
                    if self.channels_row <= 7:
                         pass
                         #self.move_flag = False
             self.move_flag = False

它将在代码上循环,就像它将触发两次一样。你知道吗

pixel_middle中,您可以看到我使用的是:

for pos_X, pos_Y, prog_id, prog_width in zip(positions_X, positions_Y, programs_id, program_width):
    if int(pos_X) == 724:
        self.getControl(int(prog_id)).setPosition(375, int(pos_Y))

pixel_end底线中:

if self.move_flag == True:
    print "catch this two"
    if pixel_end == 1073:
        ...
        for pos_X, pos_Y, prog_id, prog_width in zip(positions_X, positions_Y, programs_id, program_width):
            if int(pos_X) == 1073:
                self.getControl(int(prog_id)).setPosition(724, int(pos_Y))

我试图检查pos_X数组中的像素是否存在,如果它们不存在,则移动到下一个变量,例如从pixel_middle移动并使用pixel_end。当我尝试使用if self.move_flag == True时,我试图阻止代码触发两次,但没有起到任何作用。你知道吗

我使用pos_X的数组来检查像素值375724是否存在于数组中。你知道吗

你能给我举一个例子,说明我如何使用pixel_middlepixel_end检查数组中的像素是否存在,以及它们是否不存在吗?你知道吗


Tags: posselfidindexifprogramwidthint