2017-10-23 13 views
-2
a = eval(input()) 
b = "." 
p = 0 
contador = 0 
while a != b: 
    a = eval(input()) 
    contador = contador + 1 
    if a == b: 
    print(contador) 
    print(p+a) 

私が書いた数(contador)を合計し、それらの間の数字を合計する行を1行ずつ読み込むプログラムが必要です。 "。"を書いた後に数字を書くとき。プログラムはそれらのプリントを停止して両方を行います。そして私はこのエラーを受けています。予期せぬ解析中のEOF

答えて

0

eval()が問題です。これは動作します:あなたがPythonの実行可能コードに文字列を変えたいとき

a = input() 
b = "." 
p = 0 
contador = 0 
while a != b: 
    contador = contador + 1 
    p += int(a) 

    a = input() 
    if a == b: 
     print(contador) 
     print(p) 

あなたがeval()を使用しています。たとえば、eval('print("hello")')を実行するとhelloが出力されます。

+0

ありがとうございました!それはエラーを解決しましたが、私がそれを実行すると、それは0を返すそれらの間の数を合計しません。別の間違いがありますか?私はp = p + aを試してみて、int + strと同じエラーを返します – RiceGum

+0

はい!どうもありがとうございます!あなたが行った変更の背後にあるあなたの論理を説明できますか? – RiceGum

+0

'p = p + a'を実行しようとしたとき、' a'は文字列なので動作しませんでしたので、整数にするにはint(a)を実行する必要があります。 – gommb

関連する問題