Sentinel哪里出了问题,或者这段Python代码中出现了漏洞



好的,这个程序差不多完成了,但它仍在运行。需要弄清楚哨兵或突破需要去哪里。这就是我目前在Python中所掌握的内容。该程序假定读取列表上的所有Pres并打印它们。然后是去除前两个和后两个的切片。然后它打印出列表大小为6,然后按alpha的相反顺序给我6个Pres。除了无限期地重复结束之外,我什么都在做。必须有一个while循环来显示播放列表返回的列表中的元素。

Pres = ['Kennedy','Johnson','Nixon','Ford','Carter','Reagan',
        'Bush','Clinton','Bush','Obama'] 
Pres2 = Pres[2:8]
def main():
    for names in Pres:
        print(names)

    PR3=playlist(Pres2)
    while playlist !='6':
            for PR3 in Pres2:
                    print(PR3)

def playlist(PR):
    size = len(PR)
    print('list size is now', size)
    PR.sort()
    PR.reverse()
    return PR
main()

现在这是我运行它时应该得到的东西。

Kennedy
Johnson
Nixon
Ford
Carter
Reagan
Bush
Clinton
Bush
Obama
list size is now 6
Reagan
Nixon
Ford
Clinton
Carter
Bush

但在名单规模现在是6位之后,前6位总统只是不断重复。它需要在自己的线上垂直阅读。

您在理解编程的基础知识方面似乎遇到了一些问题。我强烈鼓励你再读一遍你已经读过的课程。

尽管如此,这里还是有一些解释:

  • CCD_ 1实际上是一个函数。这个while playlist !='6'循环只是验证这个函数对象不是字符串。如果你想比较函数的结果,你必须调用它:playlist(PR),这将执行函数并返回一个可以存储在变量中的列表。

  • 您的playlist函数正在返回一个list对象。为什么要将它与'6'进行比较?此外,'6'不是您列表的长度。它是一根绳子。6是列表的长度,因为它是一个内部

  • 既然你只想让六位总统显示一次,为什么要使用while循环?这没有道理。循环用于需要重复未知次数的操作。

  • 由于playlist0是从Pres开始切片的,因此其长度为6。它的长度从未如此之长,即使假设你的循环已经被正确地起草,里面的代码也永远不会被执行。

  • 当您使用for循环在列表中迭代时,在for之后写入的变量将用作别名,表示从列表中迭代的当前对象。for PR3 in Pres2:很奇怪,因为您已经定义了一个名为PR3的变量。如果你想在列表中显示总统,那么你就像以前一样使用for name in PR3

让我向您展示该功能的增强版本,希望您能够更好地了解它的工作原理:

def main():
    # Print the 10 Presidents
    for name in Pres:
        print(name)
    # Print the size of the list which already contains 6 Presidents
    # Then, sort the list, reverse it and return it
    # The new list is store into PR3
    PR3 = playlist(Pres2)
    # Print the 6 reverse sorted Presidents
    for name in PR3:
        print(name)

你明白了吗?你绝对没有必要使用循环。

  1. 编写一个名为mylist.py的程序,如下所示。请仔细遵守说明,避免扣分

在主要功能:

创建一个列表,按时间顺序列出最近几任美国总统的姓氏,从肯尼迪开始,到奥巴马结束。使用for循环对整个列表进行迭代,将每位总统的名字打印在自己的行上。把前两位总统和后两位总统从名单中去掉,分成一部分。将新切片作为参数传递给名为playlist的自定义函数。使用while循环显示播放列表返回的列表中的元素。在播放列表功能中:

打印分片列表的大小。使用列表功能。按反字母顺序对切片列表进行排序。将此列表返回到main。样本输出主要原始列表:肯尼迪Johnson尼克松河流浅水处卡特里根灌木克林顿灌木奥巴马不主要:列表大小现在为6返回主菜单,按字母顺序反向列出里根尼克松河流浅水处克林顿卡特布什

它调用主函数中的while循环

最新更新