比较lis中的for或while循环

2024-06-11 06:14:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我们想写一个函数来识别 可以解释为“Yahtzee”列表中的所有五个数字都必须 保持不变。编写一个名为isYahtzee(aList)的函数,它将, 作为参数,5个数字的列表并返回Boolean。如果全部五个 数字是相同的,它应该返回True,否则应该返回 返回False。例如,isYahtzee([1,2,3,4,5])应该返回 False,并且isYahtzee([1,1,1,1,1])应该返回True。你必须使用 检查时,此函数中的“for loop”“while loop” 列表中的值。在

这就是我目前为止所做的,我一直在出错!在

def isYahtzee(aList):
    for i in Range(0,5):
        if i != i+1:
            return false
        else:
            return true

isYahtzee(1,2,3,4,5)

Traceback (most recent call last):
  File "<string>", line 1, in <fragment>
builtins.TypeError: isYahtzee() takes 1 positional argument but 5 were given

Tags: 函数inloopfalsetrue列表for参数
3条回答

这是一个使用while的版本,我认为for版本更容易实现。在

def isYahtzee(aList):
    i = 0
    while i < len(aList) - 1:
        if aList[i] != aList[i + 1]:
            return False

        i += 1

    return True

输出如下:

^{pr2}$

我觉得这样比较好:

def isYahtzee(aList):
    return len(set(aList)) == 1

>>> isYahtzee([1,1,1,1,1])
True
>>> isYahtzee([1,2,3,4,5])
False
def isYahtzee(aList):
    for i in range(4):
        if aList[i] != aList[i+1]:
            return False
    return True

isYahtzee([1,1,1,1,1])
# True

isYahtzee([1,2,3,4,5])
# False

相关问题 更多 >