1

そこで、Python で簡単な電卓スクリプトを作成しています。短い文字列を分解する必要があります。プログラムは最初に短いウェルカム メッセージを表示し、次に何を計算したいかを尋ねるプロンプトが表示され、正しい形式が表示されます。機能は計算を行うためにありますが、残念ながら、文字列の解剖ビットを機能させることができません。

これが私のコードです

print ("--------------------------------------")
print (" ")

print ("Advanced Quick Calculator")
print ("By Max M, licenced under GPLv3")

print (" ")
print ("--------------------------------------")

statement = raw_input ("Please enter your mathematical statement [3 3 plus minus times            divide]: ")

strnum1 = statement[:1]
print ("strnum1 : " + strnum1)
#num1 = int (strnum1)

strnum2 = statement[:4]
print ("strnum2 : " + strnum2)
#num2 = int (strnum2)

operation = statement[5:11]
print ("operation : " + operation)
#if operation == "+":
#     ans = num1 + num2

#if operation == "-":
#   ans = num1 - num2

#if operation == "*":
#   ans = num1 * num2

#if operation == "/":
#   ans = num1 / num2

#print ("The answer is : "), ans
4

2 に答える 2

1

これは正規表現の仕事のように見えます:

>>> import re
>>> match = re.search(r'(\d+)\s*([+*/-])\s*(\d+)', '42 + 7') 
>>> match.group(1)  # <-- num1
'42'
>>> match.group(2)  # <-- operation
'+'
>>> match.group(3)  # <-- num2
'7'

現在行っているように入力をスライスすることは、許可されている形式を大幅に制限するため、おそらく良い考えではありません。たとえば、ユーザーが誤って入力の前にスペースを 2 つ入力した場合はどうなるでしょうか。正規表現は、このようなケースをうまく処理できます。

于 2013-07-14T03:25:17.497 に答える
0

私はあなたのために宿題をするつもりはありませんが、あなたの質問への答えを示します (ヒント: リンクのようにコンマではなくスペースで分割しようとしているように見えるので、それに応じてコードを調整してください) )。

Pythonでフォーマットされた入力を読む方法は?

于 2013-07-14T03:22:43.127 に答える