使用切片和返回函数创建列表

2024-06-26 03:44:05 发布

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

有人能解释一下我为什么会出错 编程问题:

编写一个创造性的程序,如下所示来演示您对Python列表的理解:

先做一个空列表。 使用循环向列表中添加12个介于50和80之间(含50和80)的随机整数。 按从高到低的降序排列列表。 使用循环将排序后的列表元素打印在一行上,用单个空格隔开。 确定66是否在列表中,并生成一些适当的输出。请参见示例输出。 打印列表中最大的元素和列表中最小的元素。 将索引为4到8的五个元素切片并分配给一个变量。打印切片。 打印此切片中所有五个元素的总数。 使用while循环将切片中的所有元素显示在一行上,用制表符分隔。 样本输出

71 70 67 66 62 55 53 52 52 52 51 50 
Yes, 66 is in the list at index 3
71 is the largest element
The smallest element is 50
Here is the slice [62, 55, 53, 52, 52]
The total of the slice is 274
62 55 53 52 52

我的代码:

^{pr2}$

****确定66是否在列表中,并生成一些适当的输出。 我试图确定66是否在列表中并生成必要的输出,但是我一直得到一个错误。代码的其余部分是正确的,但是对于问题的这一部分,它无法成功地确定它是否是数字。换句话说,确定列表中的一个随机数是否为66。我可以让它正常运行,但它不能生成准确的输出。有人能解释一下为什么会这样吗?在


Tags: the代码程序元素列表排序is编程
1条回答
网友
1楼 · 发布于 2024-06-26 03:44:05

在编写代码时,一种让自己保持条理的方法是避免 计算和打印的混合。这是什么的草图 如果我们遵循这一原则,您的程序可能看起来像:

import random

def main ():

    # Create values.
    vals = []
    for x in range(12):
        vals.append(random.randint(50,80))
    vals.sort(reverse=True)

    # Compute some stuff.
    max_val = max(vals)
    min_val = min(vals)
    has_66 = 66 in vals
    vals_slice = vals[4:9]        # Elements 4 through 8, inclusive.
    sum_slice = sum(vals_slice)

    # Print stuff.
    ...

main()

您还可以使用列表理解(可能是Python课程的未来主题)更简单地创建值:

^{pr2}$

相关问题 更多 >