問題更具體。在給定的串列序列中。我要比較的數字是一個變數(我們稱之為當前變數)和當前變數之前的變數(我們稱之為變數之前)。這意味著如果當前變數的索引為 1,則前一個變數為 0。但我希望當前變數的索引將是串列中的最后一個變數。另外,“當前變數”由用戶輸入給出。輸入在回圈中運行,以便不斷有新的“串列中的最后一個變數”。因此我總是需要比較新的變數。最終,在能夠比較這些變數之后,我想在它們中比較的是它們的值。如果它們的值相等,則程式會執行某些操作,否則程式會照常繼續。
這里的問題是我正在努力比較這些變數。盡管我并沒有在比較他們的價值觀方面苦苦掙扎。
我撰寫了兩個不同的腳本,在嘗試解決上述問題時,在兩個腳本中我都遇到了不同的問題。
首先:
list_= []
n = 0
loop = True
while(loop == True):
current_variable = input("what is your current variable?")
if(list_[n]==list_[n 1]):
print("the two values are equal")
else:
list_.append(current_variable)
n = n 1
在這里我得到一個錯誤,“串列索引超出范圍”。我理解了這個問題并創建了一個新腳本:在串列中我添加了變數。腳本的唯一變化是:
list_= ["solving the problem", "again solving the problem"]
在這里我遇到了一個問題,由于某種原因,僅在第三次輸入之后才列印“兩個值相等”的訊息,或者僅在第二次輸入之后才列印“再次解決問題”的訊息。為什么是第三個??
uj5u.com熱心網友回復:
您的程式有很多問題,很難知道從哪里開始。
n如果您只是將內容添加到串列的末尾或處理串列的最后一個元素,則不需要索引。
你while可以,while True:因為你永遠不會改變loop。
您正在嘗試比較串列中的最后兩項:list_[n]==list_[n 1],但您忽略了用戶輸入的新專案。您應該current_variable與串列的末尾進行比較。
你也不會對串列做任何事情,所以我的程式只是列印串列,這樣你就可以知道它在做什么。
list_ = []
while True:
print(list_)
current_variable = input("what is your current variable?")
if not list_ or list_[-1] != current_variable:
list_.append(current_variable)
continue
print("the two values are equal")
線路:if not list_ or list_[-1] != current_variable:將兩個步驟合二為一。not list_檢查串列是否為空。如果是,您可以在current_variable不檢查的情況下將其添加到串列中。否則,它會將最后一項與最后一項進行比較current_variable,如果它們不同,您可以將其添加到list_.
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/527070.html
上一篇:反復采樣和組合串列的元素
下一篇:回圈中串列的長度
