2017-01-10 6 views
0

내가 초보자있어 다음과 같은 문제가 있습니다뻥는 EOFError

def main(): 
    print("This program illustrates a chaotic function") 
    x=eval(input("Enter a number between 0 and 1: ")) 
    for i in range(10): 
     x=3.9*x*(1-x) 
     print(x) 
main() 

나는 항상 얻을 EOFError 마지막에 main()을 상기 할 때만. 나는 몇 주 전에 그것을 시도했고이 입력 쉘 값으로 나를 이상 마리, 완벽하게 작동 특히 때문에,

This program illustrates a chaotic function 
Enter a number between 0 and 1: Traceback (most recent call last): 
    File "<stdin>", line 7, in <module> 
    File "<stdin>", line 3, in main 
EOFError: EOF when reading a line 

왜 이해가 안 : 내가 얻을 것은. 그 사이에 일어난 일이나 그 문제가 무엇인지 모릅니다.

+2

왜 'float'에'eval'을 사용하고 있습니까? 그리고 추적 할 수 있니? – jonrsharpe

답변

0

input()이 이미 eval() 인 Python 2에서 스크립트를 실행하고있는 것처럼 들립니다. 대신 Python 3으로 스크립트를 실행하거나 Python 2 raw_input() 함수를 사용하십시오.

또한 float의 사용자 입력 문자열을 실제 float으로 변환 할 때 eval을 사용할 필요가 없습니다. 파이썬 3를 사용하는 경우

0
# For Python2 
# Replace the line: 
x=eval(input("Enter a number between 0 and 1: ")) 
# with: 
x=input("Enter a number between 0 and 1: ") 

# For Python3, the line: 
x=eval(input("Enter a number between 0 and 1: ")) 
# should work 

명령을 Python2의 파일 이름 뒤에 파이썬를 사용

x = float(raw_input("Enter a number between 0 and 1: ")) 

input()raw_input()를 교체하고 명령을 python3를 사용 : 단지 float()를 사용 다음에 Python3의 파일 이름이 붙습니다.

Python3 :

python3 example.py 

Python2는 :

python example.py 

here에서 자세히 알아보세요.

+0

저는 파이썬 3을 가지고 있고 그것이 정확히 제가 가지고있는 라인입니다. – user7401887

+0

"nano"와 같은 다른 편집기를 사용하십시오. Sublime Text 2로 편집 할 때 코드가 작동합니다. 문제를 일으키는 불필요한 문자 일 수 있습니다. –