我尝试使用input
来获取元组的值。但是,由于input
将值设置为字符串,因此我也尝试 unstring 。我发现eval
可以用于此目的,但它应该是distrusted.虽然这不会成为问题,只要我私下使用代码,如果我要公开发布它我想尽可能使用最好的代码。
那么,是否有另一种方法可以解决Python 3中的tuple
?
这是我目前正在做的事情:
>>> a = input("What is the value? ")
What is the value? (3,4)
>>> a
'(3,4)'
>>> eval(a)
(3, 4)
答案 0 :(得分:4)
使用eval的安全版本ast.literal_eval
,该版本的设计完全符合您的目标:
from ast import literal_eval
tup = literal_eval(a)
答案 1 :(得分:2)
我会这样做:
>>> inp = input()
'(3,4)'
>>> tuple(map(int, inp.strip()[1:-1].split(',')))
(3, 4)
其中strip
将确保领先或尾随空白不会毁了你的一天。
答案 2 :(得分:1)
简单,您不要求用户输入元组。相反,你这样做:
x = input("Enter x value: ")
y = input("Enter y value: ")
data = (
int(x),
int(y)
)
print(
repr(data)
)
--output:--
(10, 3)