基本上我所要做的就是让列表以不同的方式排序和显示。但是在我做第一次打印后,它似乎会得到“TypeError:'int'对象不可调用”。我假设那是因为我在列表的末尾并且需要在开始时重新启动?不知道该怎么做或者这是原因。
##vars
Index = 0
NumSize = 0
NumInput = 0
ManNum = 0
##Asking for list size
NumSize = int(input("How many numbers would you like to enter?:\n====>"))
##Declaring list
Numbers = [0] * NumSize
##Collecting data
for Index in range(NumSize):
NumInput = int(input("Please enter a number:\n====>"))
Numbers[Index] = NumInput
##Getting highest number
MaxNum = max(Numbers)
##Printing list
print("::::The numbers you entered were::::")
for Numbers in Numbers:
print(Numbers)
##Sorting list small to large
Numbers.sort()
print("::::The numbers while sorted::::")
for Numbers in Numbers:
print(Numbers)
##Sorting list large to small
Numbers.reverse()
print("::::The numbers reversed::::")
for Numbers in Numbers:
print(Numbers)
##Printing largest number
print("::::Largest number::::\n",
MaxNum)
答案 0 :(得分:5)
您使用
for Numbers in Numbers:
print(Numbers)
您不应将迭代变量命名为与集合相同的名称
试试这个
for number in Numbers:
print(number)
答案 1 :(得分:2)
在覆盖后面的
时,不要调用与集合同名的迭代器for Numbers in Numbers:
这会摧毁"数字"数组和循环之后"数字"是"数字"的最后一个元素。代替。将所有循环更改为
for number in Numbers:
答案 2 :(得分:0)
在Numbers
循环中使用任何内容代替for
,
这样
for i in Numbers:`
dosomething
如果您打印数字,那么您将看到它只包含您在列表中插入的最后一个数字。
print Numbers
>>> #last Number of List
答案 3 :(得分:0)
在循环中使用与Numbers
不同的变量。您还可以使用sorted(Numbers)
和reversed(Numbers)
来减少必须执行的变量分配。如果您不打算重复使用MaxNum
,也可以直接在print
中执行此操作。
这是完全更新的计划:
##vars
Index = 0
NumSize = 0
NumInput = 0
##Asking for list size
NumSize = int(input("How many numbers would you like to enter?:\n====>"))
##Declaring list
Numbers = [0] * NumSize
##Collecting data
for Index in range(NumSize):
NumInput = int(input("Please enter a number:\n====>"))
Numbers[Index] = NumInput
##Printing list
print("::::The numbers you entered were::::")
for number in Numbers:
print(number)
##Sorting list small to large
print("::::The numbers while sorted::::")
for number in sorted(Numbers):
print(number)
##Sorting list large to small
print("::::The numbers reversed::::")
for number in reversed(Numbers):
print(number)
##Printing largest number
print("::::Largest number::::")
print max(Numbers)
答案 4 :(得分:-1)
上面已经给出了答案。但出于解释的目的,这里出了什么问题。
>>> Numbers = [1, 4 , 10, 8] #This is creating a list.
>>> for Numbers in Numbers: #Now when you are iterating it definately gives the result
... print(Numbers)
...
1
4
10
8
>>> Numbers #But now check what is in Numbers
8
>>>
你不想要上述内容。
注意:>>>是python解释器提示
如评论中所述,请以pythonic方式开始编写代码。 这是:
list[index]
而不是append
方法。