2015-10-19 64 views
-4

對於密碼創建程序,我需要能夠檢查列表中的任何兩個連續數字是否相同。我希望它能夠以這樣的方式工作,即當您輸入一個數字並將其附加到列表中時,它會檢查之前附加的數字以查看它們是否相同。如果以前的號碼與列表中的下一個號碼相同,我該如何檢查列表?

例如,我將第6個數字輸入到列表中,並檢查它是否與第5個數字相同。

+1

你到目前爲止嘗試過什麼嗎?有什麼結果? – jonrsharpe

+1

你讀過關於'list'訪問(特別是負指數)的任何文檔嗎? – TigerhawkT3

+0

問題是我沒有嘗試過任何事情,因爲我相當卡住,我也試着用Google搜索/查找如何做到這一點,但只找到方法找到列表中的數字,而不是比較兩個連續的數字。 –

回答

0

在例3.7從這個鏈接(dive into python),你可以找到你應該叫-1元素從列表中獲取最後一個元素:

l = [0, 1, 2] 
print l[-1] 

爲了解決你的問題,你可以嘗試這樣的事情:

class PasswordChecker: 
    def __init__(self): 
     self.passwd = list() 

    def appendNumber(self,numberToAppend): 
     if(len(self.passwd)>0): 
      if(self.passwd[-1] + 1 == numberToAppend): 
       # here i'm raising an exception 
       # but You can apply any other logic You want 
       raise Exception("Cannot use two consecutive numbers!!!") 

     self.passwd.append(numberToAppend) 

    def getPassword(self): 
     return self.passwd 


pc = PasswordChecker() 

# read (keyboard/file) first number 
r = 0 

pc.appendNumber(r) 

# read next number 
r = 3 

pc.appendNumber(r) 

# read next number 
r = 4 

pc.appendNumber(r) 
相關問題