飛行機の速度と角度に基づいて被弾距離を表示するpythonスクリプトを作成しました。関数がグローバル変数を認識できません
しかし、別の関数(ask_values())がユーザーから返された2つの変数は読み込まれません。
ユーザがask_values()で入力した2つの変数(thetaとvelocity)を読み取らないようにするにはどうすればよいですか?プログラム自体
Projectile angle: 10
Velocity: 10
Angle: 10.0 Speed: 10.0
Angle: 0.0 Speed: 0.0
Distance covered: 0.0
そしてここにある:ここで
は、プログラムの出力である# IMPORT MODULES
from math import * # Import all methods/attributes from math module
import sys # Import sys.exit()
# DECLARE VARIABLES
theta = 0.0 # theta = angle at which the projectile is launched
velocity = 0.0 # velocity = speed of the projectile
percent_distance_var = 0.0 # percent_distance_var = percentage of the covered distance
max_distance_var = 0.0 # max_distance_var = maximum distance
covered_distance_var = 0.0 # covered_distance_var = covered distance
# Covered distance
def covered_distance(theta_, velocity_, covered_distance_var_): # Arguments: (theta, speed, covered_distance_var)
covered_distance_var_ = 0.2041*((velocity_)**2)*sin(theta_)*cos(theta_) # Calculate 0.2041*((velocity)**2)*sin(theta)*cos(theta)
data = dict(angle=theta_, speed=velocity_, distance=covered_distance_var_)
print("Angle: {angle} Speed: {speed} \n \nDistance covered_: {distance}".format(**data)) # Doesn't print out the correct variables
return covered_distance_var_ # Return covered_distance_var
# Ask user for values
def ask_values(theta, velocity):
theta = float(input("Projectile angle: \t"))
velocity = float(input("Velocity: \t \t"))
print("Angle: {} Speed: {}".format(theta, velocity)) # Prints out the correct variables
return(theta, velocity)
def main():# Main method
ask_values(theta, velocity) # Ask for values
covered_distance(theta, velocity, covered_distance_var)
# EXECUTE CODE
if __name__ == "__main__": # If "__main__" statement
main() # Main() method
あなたが –
@NipunGarg私は強く 'の使用に対して助言する機能でグローバル変数にアクセスするために'グローバルsome_global_variabe'を使用することができますあなたのすべての機能でグローバル。上記の関数は基本的には良いことですが、出力を正しい名前に割り当てるだけで済みます。 –
@ juanpa.arrivillagaその場合、グローバル変数の使用はここでは無用です。 –