-2

1 つの 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")

このようにすると、そのうちの 1 つが間違っていて、1 つが正しく、2 つが間違っていることがわかります。(a が間違っている、b が正しい、c が間違っている)

4

3 に答える 3

3

input1 つの文字列しか返すことができませんが、その場で処理できます。

a, b, c = input('Type in a command').split()

これはValueError、入力の「単語」の数が 3 と異なる場合に発生する可能性があるため、それを処理するためにtry-exceptを使用することをお勧めします。

try:
    a, b, c = input('Type in a command').split()
except ValueError:
    print('Invalid input. Please enter a, b and c')
于 2013-01-13T15:00:21.273 に答える
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")
于 2013-01-13T15:01:09.153 に答える
0

異なるタイプを使用したい場合は、おそらく次を使用できますast.literal_eval

a,b,c = ast.literal_eval("3,4,5")
a,b,c = ast.literal_eval("3,4.5,'foobar'")

これastは、文字列をリテラルを含むタプルに評価するため機能します。次に、左側で開梱します。もちろん、これが機能するには、要素をコンマで区切る必要があります。

于 2013-01-13T15:13:45.993 に答える