簡體   English   中英

在“ while”循環中“追加”不起作用,Python

[英]“Append” in a while loop not working, Python

我想使用while循環在列表“ self.CarteInMano”中添加列表“ M.Carte”(長度40)的最后三項:

class Mano:
    def __init__(self,Giocatore,Dimensioni=3):
        self.Giocatore=Giocatore
        self.CarteInMano=[]
        self.Dimensioni=Dimensioni

    def Pesca(self):
        a=0
        while a==self.Dimensioni:
            self.CarteInMano.append(M.Carte.pop())
            a=a+1

但是之后:

M1=Mano(1)
M1.Pesca()

我得到:

len(M.Carte)
40
len(M1.CarteInMano)
0

為什么“ Pesca”沒有做它必須做的事情?

您的問題在這里:

while a==self.Dimensioni:
    self.CarteInMano.append(M.Carte.pop())
    a=a+1

這僅在a == 3時運行,而應嘗試以下操作:

while a<=self.Dimensioni:
    self.CarteInMano.append(M.Carte.pop())
    a=a+1

原因是,在第一個代碼中,a僅在與Dimensioni相等時才運行,並且由於它從0開始而不是從3開始,所以它將永遠不相等,並跳過該代碼。 如果使用<=代替,則現在在a小於或等於3時運行代碼

注意

如果要獲得3個元素,則僅使用<而使用<=將獲得4個元素(因為它適用於0、1、2和3)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM