我是 Python 的初学者。 我为我的导航作业创建了一个小程序,当我输入数据时,它为我解决了它,但它不起作用。它询问最初的问题以确定要解决哪种类型的问题,然后,当它应该解决它时,它崩溃了。这是为什么?
import math
print("Insert all values in degree decimal form.")
prob = input("1 or 2")
if prob == 1:
fia = input("Insert value of phi in A: ")
lama = input("Insert value of lambda in A: ")
route = input("Insert value of true route: ")
vel = input("Insert speed: ")
Tma = input("Insert Established Time of Departure: ")
Tmb = input("Insert Established Time of Arrival: ")
deltaT = Tmb - Tma
print(deltaT)
m = vel * deltaT
print(m)
deltafi = (m / 60) * math.cos(route)
print(deltafi)
fib = fia + deltafi
if fib > 180:
fib1 = -(360 - fib)
fib = fib1
print(fib)
else:
print(fib)
fim = (fia + fib) / 2
print(fim)
deltalam = (m * math.sin(route) / (60 * math.cos(fim)))
lamb = lama + deltalam
if lamb > 180:
lamb1 = -(360 - lamb)
lamb = lamb1
print(lamb)
else:
print(lamb)
print("Coordinates of B: ")
print(fib, lamb, Tmb)
elif prob == 2:
fia = input("Insert value of phi in A: ")
lama = input("Insert value of lambda in A: ")
fib = input("Insert value of phi in B: ")
lamb = input("Insert value of lambda B: ")
deltafi = fib - fia
deltalam = lamb - lama
fim = (fia + fib) / 2
tanroute = (deltalam / deltafi) * math.cos(fim)
route = math.atan(tanroute)
m = (60 * abs(deltafi)) / math.cos(route)
答案 0 :(得分:0)
python 中的输入以字符串形式接收值,并且您将它与 if 条件中的整数值进行比较
将您的输入语句更新为以下行以接收整数输入:
prob = eval(input("1 or 2"))
答案 1 :(得分:0)
输入法将您的数据解释为字符串,而不是整数。
在你的 if 条件中你必须输入
if int(prob) == 1:
答案 2 :(得分:0)
您必须将 prob
输入(以及所有其他输入)转换为 int
,因为它默认被视为 string
:prob = int(input("..."))
。
您也可以通过简单地打印 type(prob)
来验证这一点。