2024-03-29 06:41:50 发布
网友
我试图使用raw_input()来获得一个数字列表,但是使用了代码
raw_input()
numbers = raw_input() print len(numbers)
输入[1,2,3]给出了7的结果,所以我猜它将输入解释为字符串。有没有什么直接的方法可以把它列出来?也许我可以用re.findall来提取整合物,但如果可能的话,我更喜欢用一种更像Python的溶液。
[1,2,3]
7
re.findall
eval(a_string)将字符串计算为Python代码。显然这不是特别安全。通过使用ast模块中的literal_eval函数,可以获得更安全(更受限)的计算。
eval(a_string)
ast
literal_eval
raw_input()在Python 2.x中被称为它,因为它获得原始输入,而不是“解释”输入。input()解释输入,即等同于eval(raw_input())。
input()
eval(raw_input())
在Python 3.x中,input()做raw_input()以前做的事情,如果这是您想要的,则必须手动计算内容(即eval(input()))。
eval(input())
在Python3.x中,使用这个。
a = [int(x) for x in input().split()]
>>> a = [int(x) for x in input().split()] 3 4 5 >>> a [3, 4, 5] >>>
解析由空格分隔的数字列表要比解析Python语法容易得多:
Python3:
s = input() numbers = list(map(int, s.split()))
Python2:
s = raw_input() numbers = map(int, s.split())
eval(a_string)
将字符串计算为Python代码。显然这不是特别安全。通过使用ast
模块中的literal_eval
函数,可以获得更安全(更受限)的计算。raw_input()
在Python 2.x中被称为它,因为它获得原始输入,而不是“解释”输入。input()
解释输入,即等同于eval(raw_input())
。在Python 3.x中,
input()
做raw_input()
以前做的事情,如果这是您想要的,则必须手动计算内容(即eval(input())
)。在Python3.x中,使用这个。
示例
解析由空格分隔的数字列表要比解析Python语法容易得多:
Python3:
Python2:
相关问题 更多 >
编程相关推荐