1

「式を入力してください:」のようなものがどのようにあるかを理解しようとしています。最初のint、操作の文字、2番目のintの3つの変数を取り込んでください。これは、C++ではcin>> num1 >> operation>>num2だけで非常に簡単です。

これまでのところ、他の人の質問ごとに、私はリストを取り込んでそれを分割しようとしました。これは、1桁を超える整数を除いて機能します。私はこのようなことをしています:

list1=raw_input()
list1.split()
print list1
num1=list1[0]
plus=list1[1]
num2=list1[2]
print num1, plus, num2

たとえば、10 + 3と入力すると、1 0 +が出力されます。ここに簡単な修正があるように感じますが、わかりません。どんな助けでも大歓迎です。

4

4 に答える 4

1

list1.split()文字列は不変であるため、どこかの結果をキャプチャする必要があります。しかし、それはあなたが望むことをしないので、あなたを助けません。おそらくPythonの言語サービスを使用して、パーサーを使用します。

于 2012-04-15T04:22:23.557 に答える
1

代わりにこれを試してください:

list1 = raw_input()
for x in list1.split():
    print x,
于 2012-04-15T04:24:02.680 に答える
0

この場合、たとえば次のように正規表現を使用することをお勧めします。

 re_exp = re.compile(r'\s*(\d+)\s*([^\d\s])+\s*(\d+)')
 expr = raw_input()
 match = re_exp.match(expr)
 if match:
     num1, oper, num2 = match.groups()
     print num1, oper, num2

を使用splitすると、解析できますが、 (スペースなしで)処理すること、または両方のケースを処理10 + 1することは困難になります。10+1

于 2012-04-15T04:41:12.017 に答える
0
#You should write like this
list1 = raw_input()
a=list1.split()
num1=a[0]
plus=a[1]
num2=a[2]
print num1, plus, num2
于 2016-06-05T20:34:22.983 に答える