【问题标题】:Changing a for loop to a while loop in Python在 Python 中将 for 循环更改为 while 循环
【发布时间】:2014-04-05 03:52:02
【问题描述】:
myList=[1,2,3,5]
def findMax(aList):
     biggest = aList[0]
     for value in aList: 
           if value > biggest:
               biggest = value
     return biggest

此代码搜索列表中的最大数字。

如何将其更改为 while 循环,而不是 for 循环?

【问题讨论】:

  • 你为什么要那个?并且 y 不使用 max([1,2,3,4,5])?
  • 这是一个课堂作业,看看我们是否可以将 for 循环改为 while。我知道 max 函数,但我们不能使用他说的那个。 :) 不过我想不通。
  • 设置一个变量 (i) 来索引数组。 while 循环的条件是 i 小于列表的大小。在循环内增加 i。
  • 考虑将您评论中的详细信息(这是一项家庭作业,您需要在没有 for 循环或 max 函数的情况下解决此问题),以便人们了解您的来源。

标签: list loops for-loop while-loop


【解决方案1】:
myList=[1,2,3,5]
def findMax(aList):
     biggest = aList.pop()
     while(len(aList) > 0):
         element = aList.pop()
         if (element > biggest):
             biggest = element
     return biggest

【讨论】:

  • 所以每次 while 循环运行时 len 都会缩小,因为 pop 吗?
  • 是的。如果您未在 () 中指定,它将删除最后一个。见docs
【解决方案2】:

您可以做的是在进入循环之前声明一个简单的计数器,然后在检查值是否大于biggest 之后,将计数器加一。确保检查计数器是否等于数组的大小,这样就不会超出它的范围。如果是,您可以跳出 while 循环。

【讨论】:

    【解决方案3】:

    试试这个:

    myList=[1,2,3,5]
    
    def findMax(aList):
         i = 0
         biggest = aList[0]
         while (i < len(myList)):
              if myList[i] > biggest:
                   biggest = value
              i += 1;
         return biggest
    

    【讨论】:

    • 至少他放了一些代码。 ;) 如果有 eis 代码,那么他应该得到一些答案
    【解决方案4】:
    myList=[1,2,3,5]
    def findMax(aList):
         biggest = aList[0]
         ii = 1
         while ii < len(aList): 
               if aList[ii] > biggest:
                   biggest = aList[ii]
               ii += 1
         return biggest
    

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 2017-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-11-23
      • 2014-03-15
      • 1970-01-01
      • 2020-09-17
      • 1970-01-01
      相关资源
      最近更新 更多