【发布时间】:2014-06-24 23:30:08
【问题描述】:
我正在编写一个演示线性搜索的程序,但我坚持我正在采取的步骤之一。在这一步中,我试图让程序获取以逗号分隔的数字输入列表,然后以列表形式返回该列表。
(例如 1,5,2,4 --> [1,5,2,4])。
到目前为止,我拥有的这段代码将以列表形式返回输入,但前提是我输入了一个数字。 (例如 3 --> [3])。
def main():
n = eval(input("Enter list of numbers separated by commas: "))
list = []
n = int(n)
list.append(n)
print(list)
main()
但是当我用逗号输入一个数字列表时,我得到这个错误:
Traceback (most recent call last):
File "C:/Users/eardery/Desktop/Final Exam Practice/linearsearch.py", line 8, in <module>
main()
File "C:/Users/eardery/Desktop/Final Exam Practice/linearsearch.py", line 4, in main
n = int(n)
TypeError: int() argument must be a string or a number, not 'tuple'
还有什么方法可以在不出现此错误的情况下评估输入并让程序按照我的预期工作?有人能解释一下什么是“元组”吗?
【问题讨论】:
-
看看
n包含什么 ;-) -
请不要使用
list作为变量名。有一个具有该名称的内置东西。 -
eval实际上为您完成了工作,n是ints 的元组。但实际上,您应该听取以下回答者的建议,不要在用户输入时使用eval。
标签: list python-3.x input append tuples