2016-04-09 12 views
0

私はPythonの新作です!私のプログラムは、データを入力した直後に閉じています。たとえば、私はこれを実行します:入力後にpythonが終了しますか?

def main(): 
    kilometers = eval(input("How many kilometers do you want to convert to miles?")) 
    miles = kilometers * 0.62 
    print(kilometers, "kilometers is", miles, "miles!") 
main() 

そして数字を入れた後、プログラムは答えを表示せずにシャットダウンします。私の学校のコンピュータでうまく動作します。これをどうすれば解決できますか?

+0

式を期待していないときに 'eval'を使うのはなぜですか?学校のコンピュータと同じ入力をコンピュータに入れましたか? –

+0

私が言ったように、私はこれで全く新しいです。私は文字通り、ちょうど2日前にその本を手に取った。これは私の学校でpythonに入れたのと同じコードですが、動作しますが、私のラップトップでは、プログラムはすぐに終了します – plshelpme

答えて

0

おそらく、学校のコンピュータでPython 3を使用したことがあります。 Python 2のinputは既に入力した入力のevalをPython 3のどこに入力するのですかinputは、ある方法で数値に変換する必要がある文字列を返すだけです。

この例をPython 2で動作させる場合は、ユーザー入力を文字列として返してfloatで数値に変換するraw_inputを使用することをお勧めします。あなたはまた、私は次の例でやったようprintステートメントを使用するか、__future__からprint機能をインポートするか必要があります。

from __future__ import print_function 

def main(): 
    kilometers = float(raw_input("How many kilometers do you want to convert to miles?")) 
    miles = kilometers * 0.62 

    print(kilometers, "kilometers is", miles, "miles!") 

main() 
0

あなたのプログラムは、入力された後すぐに終了します。最後に "raw_input()"を使用するだけでブロックすることができます。 Python 2.7(3.xではなく)を使用している場合は、input()の代わりにraw_input()を使用してください。 evalを使うのは少し奇妙なので、floatを使ってみましょう。これはPythonの2.7タグ付けされている最後に、私はそれは2.7のような多くを感じているので、印刷がフォーマットされた文字列を使用して作られた:

def main(): 
    kilometers = float(raw_input("How many kilometers do you want to convert to miles? ")) 
    miles = kilometers * 0.62 
    print "%f kilometers is %f miles!" % (kilometers, miles) 
main() 
raw_input() 

あなたはEnterキーを押した後、今、あなたのプログラムが終了します!

関連する問題