为什么这个生成器不能在python中工作

时间:2016-06-14 15:48:40

标签: python

为什么def mygen(m): n = 0 if n < m: n = n + 1 yield n counter = mygen(5) next(counter) 1 next(counter) StopIteration 在以下生成器中不起作用

while

但是def mygen(m): n = 0 while n < m: n = n + 1 yield n 呢?

While reader.Read()
            companys.Add(New CompanySearch)
            companys(companys.Count - 1).StartDate = reader("StartDate").ToString & " (" & count & ")"
            companys(companys.Count - 1).CompanyID = reader("company").ToString
            companys(companys.Count - 1).Origin = reader("Origin").ToString
            companys(companys.Count - 1).OriginName = reader("OriginName").ToString
            companys(companys.Count - 1).Status = reader("status").ToString
            companys(companys.Count - 1).StatusName = reader("statusname").ToString
            companys(companys.Count - 1).Status = reader("status").ToString
            companys(companys.Count - 1).FullLegalBusinessName = reader("fullLegalBusinessName")
            companys(companys.Count - 1).AmountRequestedText = reader("amountRequestedText")
            companys(companys.Count - 1).HowSoonNeededText = reader("howSoonNeededText")
            companys(companys.Count - 1).QueueID = reader("QueueID")
            companys(companys.Count - 1).Company = reader("Company")
        End While

For counter As Integer = 0 To companys.Count
        counter += 1
        If i <> CInt(companys(companys.Count - 1).CompanyID) Then
            i = CInt(companys(companys.Count - 1).CompanyID)
        Else
            companys.Remove()
        End If
    Next

1 个答案:

答案 0 :(得分:0)

while循环重复比较nm(直到条件为假),而if语句将它们比较一次然后结束。 if语句正在运行,而不是您期望的方式。