如何将多个变量分配给一个GUI输入框?像这样:q1,q2,q3 = input()
这不是代码的方式,但这只是我希望它的样子:
a, b, c = str(input("Type in a command"))
但不是这样的:
abc = str(input("Type in a command"))
if abc == str("a"):
print ("a is right")
else:
print ("a is wrong")
if abc == str("b"):
print ("b is right")
else:
print ("b is wrong")
if abc == str("c"):
print ("c is right")
else:
print ("c is wrong")
如果我这样做,我会误解其中一个,它会告诉我一个是正确的& 2是错的。 (a是错的,b是对的,c是错的)
答案 0 :(得分:2)
input
只能返回一个字符串,但您可以动态处理它:
a, b, c = input('Type in a command').split()
如果输入中的“字词数”与3不同,则可能会产生ValueError
,因此您可能需要使用try
- except
来处理它。
try:
a, b, c = input('Type in a command').split()
except ValueError:
print('Invalid input. Please enter a, b and c')
答案 1 :(得分:1)
Input
只返回一个字符串。您可以存储输入,然后根据需要进行处理。采用多变量输入的简单而安全的方法是:
s = input().split()
在这里,s
为您提供了空白分隔输入的列表。这可以采用任意数量的选项。
然后,您可以单独处理每个:
for i in s :
if i in ('a','b','c') :
print(i, " is right")
else :
print(i, " is wrong")
答案 2 :(得分:0)
如果您想使用不同类型,可以使用ast.literal_eval
:
a,b,c = ast.literal_eval("3,4,5")
a,b,c = ast.literal_eval("3,4.5,'foobar'")
这是有效的,因为ast
将字符串评估为包含文字的元组。然后在左侧打开包装。当然,要使其工作,元素必须用逗号分隔。