我正在编写一个非常简单的程序,用于计算物体在空中停留多长时间内因重力而下落的距离。
(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时,是否有人可以告诉我?
在我看来,我认为它与eclipse的设置方式有关,因为之前有效。我在其他程序上工作,回到这个程序,它破了。我觉得这是一个简单的问题,经常发生并且有一个简单的解决方法
答案 0 :(得分:0)
您使用的是Python 2,而不是Python 3.它们通常都安装在同一台计算机上,在大多数系统上,默认值为2而不是3.如果您使用python3
而不是{python
显式启动它{1}},如果安装了Python 3,你应该能够获得它。
具体来说,在Python 2中,如果划分两个整数,它会将结果转换为整数,因此1/2
给出0.这被改为在Python 3中进行浮点除法。
此外,Python 2中的input
函数相当于Python 3中的eval(input(...))
,因此t
已经是int
。在Python 3中,您的格式调用不起作用,因为您不能在字符串上使用{:d}
。