嘿,我是Python新手,我想完成这个练习,但我得到了以下错误:“int”对象没有属性“sort”。 我必须使用for循环从一个数字列表中取出它们,使它们都成正方形,然后按顺序逐个打印出来。 我是否错误地使用了sort命令?或者它连数字都不起作用?我是否必须使用.append()命令将它们逐一打印出来? 这是我目前想要的代码:
start_list = [5, 3, 1, 2, 4]
square_list = []
for square_list in start_list:
square_list ** 2
print square_list.sort()
最毒的解药是
或一行:
让我们剖析一下您的代码:
直接的解决方法是:
有三个问题:
start_list
上的square_list
分配。最终结果是
square_list
不是列表,因此无法排序。比较以下代码:
这里我们对列表进行迭代,为每个循环取一个
item
。然后将其平方(使用** 2
),然后将其附加到square_list
。print square_list.sort()
在这里,您在列表中使用
.sort()
,然后尝试print
返回值。但是.sort()
在中对列表进行排序,然后返回None
。所以这一行将始终打印None
。要打印已排序的列表,可以使用sorted()
函数返回已排序的列表,准备传递给print
:也可以在打印前对列表进行排序:
你必须了解循环。
本例中的
square_list
并不是指您创建的空列表。它用作从列表中提取值的不明确变量。因此,这只是每次迭代期间列表中的每个值,它们都是整数,因为这就是列表中的内容。第二,你实际上并没有在列表中添加平方,你只是在计算平方,而没有对它们做任何操作。最后,sort方法不返回任何内容,它只是更改列表而不返回值。使用等价的排序方法,该方法不改变列表,但返回新值。我想你最好能理解一些代码。
相关问题 更多 >
编程相关推荐