2017-10-04 1 views
0

저는 공중에 얼마나 오래 있었는지를 기준으로 객체가 얼마나 중력에 의해 떨어 졌는지 계산하는 아주 간단한 프로그램을 작성하고 있습니다.극히 기본적인 Python 프로그램이 적절한 값을 반환하지 않습니다.

(main.py) 

# Importing falling_distance function 
from a3_functions import falling_distance 

# Doc-string 
import a3_functions; print(a3_functions.falling_distance.__doc__) 

# Input from user and formatted output 
t = input('Enter the time (in secs): ') 
print("The Object has fallen {:.2f} in {:d} seconds".format(falling_distance(t), t)) 

^^ 사용자가 시간을 두는 주 모듈/클래스가 됨. 그 후 그것은 본질적으로 다양한 기능을위한 라이브러리 인 a3_functions.py 프로그램을 참조합니다.

(a3_functions.py) 

def falling_distance (t): 
"""------------------------------------------------------------------------- 
Purpose: Calculate and output falling distance (in metres) given time (in 
seconds) 
--------------------------------------------------------------------------- 
Preconditions: 
     t - time (int > 0) 
     g - gravitational constant 
Postconditions: 
     returns: 
     d - distance (float > 0) 
--------------------------------------------------------------------------- 
""" 

t = int(t) 
g = 9.8 
d = (1/2)*g*t**2 
return d 

저는 한 프로그램에서 매우 간단하게 할 수 있습니다.하지만 d가 0으로 반환 될 때 누구에게 말해 줄 수 있습니까?

제 생각에는 그것이 일식이 설정되어있는 방식과 관련이 있다고 생각합니다. 나는 다른 프로그램에서 일했고,이 프로그램으로 돌아 왔고, 프로그램이 깨졌습니다. 이 문제는 너무 자주 발생하는 간단한 문제이며 쉽게 해결할 수 있습니다.

+0

파이썬 3을 사용하고 있습니까? 파이썬 셸에서'import sys'와'sys.version'를 타이핑하면 어떻게됩니까? –

+0

파이썬 3.6 – Dan

+0

을 사용하여 명백히 (1/2) 0.5를 변경하면 문제가 해결됩니다. – Dan

답변

0

Python 3이 아니라 Python 2를 사용하고 있습니다. 대부분 동일한 시스템에 설치되어 있고 대부분의 시스템에서는 기본값 2입니다. 3 대신에 python3으로 명시 적으로 시작하면 python 대신 Python 3을 설치할 수 있습니다.

구체적 input 두 정수를 나누면, 파이썬 2, 그것은 정수 결과를 변환하므로 1/2 이것은 3

또한 파이썬 부동 소수점 나눗셈을 수행하도록 변경되었다 0 준다 함수는 파이썬 3에서 eval(input(...))과 동일하므로 t은 이미 int입니다. Python 3에서는 문자열에 {:d}을 사용할 수 없기 때문에 형식 호출이 작동하지 않습니다.

+0

어떻게 콘솔에서 sys.version을 실행했기 때문에 Py 2를 없애 버렸는지 명확하게 보여주었습니다. 그러나 프로젝트에 Eclipse를 사용했습니다 – Dan

+0

nevermind, 파이썬 2 인터프리터를 삭제하고 3.6을 유지했습니다. – Dan

관련 문제