3

2+5-3+6ユーザーにや returnなどの文字列を入力させたい10。ユーザーが入力するcと、回答が出力されます。ユーザーが a を入力したときにプロジェクトを中断する方法がわかりませんc

print 'This is a calculator. Please follow the instruction.'

temp = 0
string = 0

def asmd(string):
    print 'Your answer is', eval(str(string))

while temp != 'c':
    print 'Please enter a number or operation. Enter c to complete. :'
    temp = raw_input()
    string = str(string)+str(temp)

    if temp == str('c'):
        asmd(string)
4

1 に答える 1

1

電卓を修正するには、終了文字 ( c) が結果文字列に含まれていないことを確認してください。

if temp == str('c'):
    asmd(string[:-1])

ただし、スクリプト全体がかなりクレイジーであることに注意する必要があります。完全な式を一度に評価できるを使用してevalいますが、それでもユーザーに 1 つずつ入力するように指示しています。eval を使用すると、スクリプト全体を 1 行で書き直すことができます。

print eval(raw_input())

また、コメントで広く指摘されているようにeval、電卓を実行しているユーザーを信頼していない場合に使用するのは一般的に悪い考えです。練習しているだけなら問題ありませんeval。「実際のコード」では使用しないでください。

于 2012-10-18T16:49:51.237 に答える