Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 将数字输入空列表_List_Python 3.x_Input_Append_Tuples - Fatal编程技术网

List 将数字输入空列表

List 将数字输入空列表,list,python-3.x,input,append,tuples,List,Python 3.x,Input,Append,Tuples,我正在编写一个演示线性搜索的程序,但是我被我正在采取的一个步骤困住了。在这一步中,我试图让程序获取一个用逗号分隔的数字的输入列表,然后以列表形式返回列表。 (例1,5,2,4-->[1,5,2,4])。 到目前为止,我的代码将以列表形式返回输入,但仅当我输入一个数字时。(例3-->[3]) 但当我输入带有逗号的数字列表时,会出现以下错误: Traceback (most recent call last): File "C:/Users/eardery/Desktop/Final Ex

我正在编写一个演示线性搜索的程序,但是我被我正在采取的一个步骤困住了。在这一步中,我试图让程序获取一个用逗号分隔的数字的输入列表,然后以列表形式返回列表。
(例1,5,2,4-->[1,5,2,4])。 到目前为止,我的代码将以列表形式返回输入,但仅当我输入一个数字时。(例3-->[3])

但当我输入带有逗号的数字列表时,会出现以下错误:

     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'
回溯(最近一次呼叫最后一次):
文件“C:/Users/eardery/Desktop/Final-examice-Practice/linearsearch.py”,第8行,在
main()
文件“C:/Users/eardery/Desktop/Final-examice-Practice/linearsearch.py”,第4行,在main中
n=int(n)
TypeError:int()参数必须是字符串或数字,而不是“tuple”

还有什么方法可以在不出现错误的情况下评估输入,并让程序按照我的预期工作?有人能解释一下“元组”是什么吗?

这里不应该使用
eval
<使用用户输入时,最好避免使用代码>评估。此外,当它以不同于单个整数的方式处理整数列表时,它通常会返回意外的结果,就像您的情况一样。)

像这样的怎么样:

line = input("Enter list of numbers separated by commas: ")
data = [int(i) for i in line.split(',')]
最后一行将分割逗号周围的文本,并将每个元素转换为int

data = []
for i in line.split(','):
    data.append(int(i))

您不应在此处使用
eval
<使用用户输入时,最好避免使用代码>评估。此外,当它以不同于单个整数的方式处理整数列表时,它通常会返回意外的结果,就像您的情况一样。)

像这样的怎么样:

line = input("Enter list of numbers separated by commas: ")
data = [int(i) for i in line.split(',')]
最后一行将分割逗号周围的文本,并将每个元素转换为int

data = []
for i in line.split(','):
    data.append(int(i))
Tuple是一个不可变(不可更改)的列表。这是Python假定您输入的内容,因为它是一个逗号分隔的列表

拆分(',')
允许您将
'1,2,3'
拆分为
['1','2','3']
并将'4'转换为['4']

您仍然需要将每个字符串转换为int,我正在对此进行列表理解

def main():
    n = input("Enter list of numbers separated by commas: ")
    # For each val in list of input, make int.
    list = [int(val) for val in n.split(',')]
    print(list)

if __name__ == '__main__':
    main()
Tuple是一个不可变(不可更改)的列表。这是Python假定您输入的内容,因为它是一个逗号分隔的列表

拆分(',')
允许您将
'1,2,3'
拆分为
['1','2','3']
并将'4'转换为['4']

您仍然需要将每个字符串转换为int,我正在对此进行列表理解

def main():
    n = input("Enter list of numbers separated by commas: ")
    # For each val in list of input, make int.
    list = [int(val) for val in n.split(',')]
    print(list)

if __name__ == '__main__':
    main()

不要使用eval,因为eval是邪恶的

def main():
    raw = input("Enter list of numbers separated by commas: ")
    numbers = list(map(int, raw.split(',')))
    print(numbers)

if __name__ == '__main__':
    main()

不要使用eval,因为eval是邪恶的

def main():
    raw = input("Enter list of numbers separated by commas: ")
    numbers = list(map(int, raw.split(',')))
    print(numbers)

if __name__ == '__main__':
    main()

您不需要eval函数。仅用于评估材料

您需要通过split函数分割输出,并将其转储到列表中

您的解决方案:-

def main():
    n = raw_input("Enter list of numbers separated by commas: ")
    list= [int(value) for value in n.split(',')]
    print(list)
main()

您不需要eval函数。仅用于评估材料

您需要通过split函数分割输出,并将其转储到列表中

您的解决方案:-

def main():
    n = raw_input("Enter list of numbers separated by commas: ")
    list= [int(value) for value in n.split(',')]
    print(list)
main()


看看
n
包含的内容;-)请不要使用
列表
作为变量名。这个名字有一个内置的东西,
eval
实际上为您完成了工作,
n
int
s的元组。但实际上,你应该听从下面回答者的建议,不要在用户输入时使用
eval
请不要使用
列表
作为变量名。这个名字有一个内置的东西,
eval
实际上为您完成了工作,
n
int
s的元组。但实际上,您应该听取下面回答者的建议,不要在用户输入时使用
eval
。这不会将字符串转换为int。您可以键入cast by int():)不要使用list,它是内置类型。第一次分配给
列表
是没有用的。我故意把它留着让他理解。我知道在不声明VARABLE的情况下,它是可以实现的。这不会将字符串转换为int。您可以键入cast by int():)不要使用list,它是一个内置类型。第一次分配给
列表
是没有用的。我故意把它留着让他理解。我知道在不声明VARABLE的情况下,它是可以实现的注:他显然在使用Python 3,因此它应该是
input
,而不是
raw\u input
。您完全正确,先生。旧习难改。我已经适应了,它成功了!我知道我现在犯了什么错误。非常感谢。注意:他显然在使用Python3,因此它应该是
input
,而不是
raw\u input
。您完全正确,先生。旧习难改。我已经适应了,它成功了!我知道我现在犯了什么错误。非常感谢。你不能。您只能获得单个字符的列表。这只返回字符串列表。必须转换为整数。您不能。您只能获得单个字符的列表。这只返回字符串列表。必须转换为整数。嘿,-2?为什么?请评论!最有可能是因为
list(map(int,raw.split(','))
不像
[int(val)for val in raw.split(','))那样通灵。
。此外,使用列表理解的优化通常比
list
map
更快。对不起,这是一个品味问题;-)我没有否决投票,但我想这就是原因。我发现这个列表更容易快速阅读。嘿,-2?为什么?请评论!最有可能是因为
list(map(int,raw.split(','))
不像
[int(val)for val in raw.split(','))那样通灵。
。此外,使用列表理解的优化通常比
list
map
更快。对不起,这是一个品味问题;-)我没有否决投票,但我想这就是原因。我发现这张清单很容易快速阅读。