2017-04-04 7 views
0

Je travaille sur le code python et j'essayais de calculer la distance d'un objet si la hauteur, l'angle et la vélocité originale étaient donnés. c'était mon code. Cela ne fonctionne pas, cela me donne un message d'erreur à chaque fois.python calculer la distance avec l'angle de la hauteur et la vélocité originale

import subprocess as sp 
import math 
sp.call('cls',shell=True) 
pangle = float(0.0) 
distance = float(0) 
a = float(0) 
y = float(0) 
v = float(0) 
a = input("Angle:") 
y = input("Hight (Meter):") 
v = input("Speed (M/S):") 
try: 
    a = float(angle) 
    y = float(hight) 
    v = float(speed) 
except: 
    sp.call('cls',shell=True) 
    print("Error") 
    error = input("") 
    exit 
distance = float((v * (math.cos(math.radians(a/1))))*(v * math.sin(math.radians(a)) + ((v * math.sin(math.radians(a)))^2+2*y)**(1.0/2))) 
sdistance = str(distance) 
print ("Distance is " + sdistance + " Meter") 
error = input("") 
exit 

S'il vous plaît Aide

+0

Vous n'avez pas défini 'angle',' height' et 'speed' – kuro

+0

erreur cela vous donne-t-il? Veuillez donner. –

+0

Ajoutez suffisamment de code pour que votre extrait puisse être exécuté. Donnez également toute la traceback pour l'erreur qui résulte de votre extrait. Voir [Comment créer un exemple minimal, complet et vérifiable] (http://stackoverflow.com/help/mcve). De même, définissez plus précisément vos termes "hauteur, angle et vitesse d'origine". –

Répondre

0

Vous essayez bloc devrait ressembler à ceci:

try: 
    a = float(a) 
    y = float(y) 
    v = float(v) 

et être carefoul que ^ n'est pas l'opérateur exposant en python, utilisez ** à la place:

distance = float((v * (math.cos(math.radians(a/1))))*(v * math.sin(math.radians(a)) + ((v * math.sin(math.radians(a)))**2+2*y)**(1.0/2)))