2017-10-23 1 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)를 합한 수를 합한 수를 하나씩 읽는 프로그램이 필요하다. "."을 쓴 후에 숫자를 쓸 때. 프로그램은 그 인쇄물을 멈추고 둘 다 할 것입니다. 그리고이 오류가 발생합니다.예기치 않은 EOF (구문 분석 중)

답변

0

eval()이 문제입니다. 이것은 작동합니다 : 당신은 파이썬 실행 코드로 문자열을 설정하고자 할 때

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

관련 문제