2016-11-06 196 views
-1

我開始使用這段代碼時遇到了麻煩,希望能得到一些幫助。我有一個名爲STATE_LIST的列表,其中包含美國所有州的縮寫。我需要做的是在窗口中打印此列表,並且當用戶在文本框中輸入來自STATE_LIST的縮寫之一時,我需要從該列表中刪除該縮寫在窗口打印列表。這是我的整個代碼,迄今爲止希望你們可以理解它。謝謝。從python3的列表中刪除元素

from proj2_support_code import * 

def verify_input(x,y): 
    for i in range (len(x)): 
     if x[i] == y.upper(): 
      return True 



def clicked_trump(x_point,y_point): 


    trump_top_left_x = WINDOW_WIDTH * .25 - 50 
    trump_top_left_y = WINDOW_HEIGHT * 0 
    width = 100 
    height = 100 
    trump_top_left = Point(trump_top_left_x, trump_top_left_y) 
    trump_bottom_right = Point(trump_top_left_x + width, trump_top_left_y + height) 


    if (trump_top_left.getX() <= x_point <= trump_bottom_right.getX() and trump_top_left.getY() <= y_point <= 
     trump_bottom_right.getY()): 
     return True 

def clicked_clinton(x_point, y_point): 

    clinton_top_left_x = WINDOW_WIDTH * .75 - 50 
    clinton_top_left_y = WINDOW_HEIGHT * 0 
    width = 100 
    height = 100 
    clinton_top_left = Point(clinton_top_left_x, clinton_top_left_y) 
    clinton_bottom_right= Point(clinton_top_left_x + width,clinton_top_left_y + height) 

    if (clinton_top_left.getX() <= x_point <= clinton_bottom_right.getX() and clinton_top_left.getY() <= y_point <= 
     clinton_bottom_right.getY()): 
     return True 


def main(): 

    win= GraphWin('Project_2',WINDOW_WIDTH, WINDOW_HEIGHT) 

    clin_in_v = 0 
    tru_in_v = 0 



    trump_img = Image(Point(WINDOW_WIDTH*.25,WINDOW_HEIGHT/6 - 50),"trump.gif") # Filenames of candidate pics 
    trump_img.draw(win) 

    clinton_img = Image(Point(WINDOW_WIDTH * .75,WINDOW_HEIGHT/6 -50),"clinton.gif") 
    clinton_img.draw(win) 

    textbox_trump = Text(Point(WINDOW_WIDTH * .245, WINDOW_HEIGHT/6 +10), "VOTES: " + str(clin_in_v)) 
    textbox_trump.draw(win) 

    textbox_clinton = Text(Point(WINDOW_WIDTH * .75, WINDOW_HEIGHT/6 +10), "VOTES: " + str(tru_in_v)) 
    textbox_clinton.draw(win) 


    inst_textbox = Text(Point(WINDOW_WIDTH * .5, WINDOW_HEIGHT - USER_INSTRUCTIONS_HEIGHT), "Enter a state abbreviation, then click a picture.") 
    inst_textbox.draw(win) 
    entrybox = Entry(Point(WINDOW_WIDTH * .5,WINDOW_HEIGHT - ENTRYBOX_HEIGHT), 10) 
    entrybox.draw(win) 

    STATE_LISTbox= Text(Point(WINDOW_WIDTH * .5, WINDOW_HEIGHT *.5),'States Remaining:' + str(STATE_LIST)) 
    STATE_LISTbox.draw(win) 

    for i in range(len(STATE_LIST)): 
     STATE_LISTB = print(STATE_LIST[i]) 

    STATE_LISTB.draw(win) 

    clin_in_v1=0 
    tru_in_v1 =0 
    for i in range(50): 
     c_point = win.getMouse() 
     x_c_point = c_point.getX() 
     y_c_point = c_point.getY() 

     if clicked_trump(x_c_point,y_c_point) == True: 
      enteredtext = entrybox.getText().upper() 
      x= verify_input(STATE_LIST,enteredtext) 
      if x == True: 
       tru_in_v1 = STATE_VOTES[enteredtext] + tru_in_v 
      else: 
       print('Incorrect State Entered:',enteredtext) 

      tru_in_v = tru_in_v1 

      textbox_trump.setText("VOTES: " + str(tru_in_v)) 




     elif clicked_clinton(x_c_point, y_c_point) == True: 
      enteredtext = entrybox.getText().upper() 
      x = verify_input(STATE_LIST,enteredtext) 
      if x == True: 
       clin_in_v1 = STATE_VOTES[enteredtext] + clin_in_v 
      else: 
       print('Incorrect State Entered:', enteredtext) 

      clin_in_v = clin_in_v1 

      textbox_clinton.setText("VOTES: " + str(clin_in_v)) 



    win.getMouse() 
    win.close() 

main() 

因此,用戶在輸入框中輸入州名縮寫,然後點擊總統候選人的圖像。然後將選票添加到候選人總票數中。我需要在列出所有狀態縮寫的圖形窗口中放置一個列表,並且當用戶在輸入框中輸入狀態縮寫並單擊候選人時,需要從狀態列表中刪除該縮寫。

+0

顯示您的代碼嘗試並解釋您在自己的代碼中遇到了哪些困難。 – idjaw

+1

因爲您沒有發佈任何內容,我們是否應該假設您目前沒有任何代碼? –

+1

您似乎忘記添加您的代碼。並且請僅添加重現問題所需的代碼,而不是您的「完整」代碼。 – mhawke

回答

0

當從用戶輸入的一個索引被從列表中刪除時,我認爲它可以被認爲是一個下面的腳本。

list = ["AB", "BC", "CD", "DE", "EF"] 
idx = list.index("BC") 
list.pop(idx) 
print(list) 

在第二行,輸入的單詞被勾選。 在第三行,列表中的單詞被刪除。

如果您不想打破列表,第三行變成如下所示。

list[idx] = "" 

這是暗示嗎?