我有一个作业,需要创建三个要在主程序中依次调用和运行的模块。我假设这是针对更复杂的最终项目的测试用例,但是我知道这听起来像是一个愚蠢的主意,因此我将其中的说明包括在内。我在这里有3个单独模块中每个模块的代码(请注意:所有这些都可以作为一个脚本正常工作,但是我需要将其拆分)。
说明:
绘制层次结构图,然后规划用于计算人的体重指数(BMI)的程序的逻辑。 BMI是一种统计量度,用于比较一个人的体重和身高。该程序使用三个模块。第一个提示用户输入并接受用户的身高(英寸)。第二个模块接受以磅为单位的用户体重,并将用户的身高转换为米,将体重转换为公斤。然后,它将BMI计算为体重(公斤)除以身高(米)的平方,并显示结果。英寸为2.54厘米,米为100厘米,磅为453.59克,千克为1,000克。只要您认为合适就可以使用命名常量。最后一个模块显示消息“作业结束”。使用Python创建程序,并提供repl.it的链接或附加.py文件。
请注意,实际上运行bmi_main.py确实会继续按顺序启动三个模块,但是模块2出现错误,因为它使用了“高度”,它是模块1中定义的变量,在模块2启动时显然已被忘记。这意味着即使用户正在定义高度,我也需要将其作为全局变量。我不认为这是个问题,但是尝试在主程序的顶部声明高度会给我带来错误。如何在保留此(可疑但必要的)结构的同时解决此问题?
主要:
#Title: BMI Main
#Author: Name
#Class: CISPROG01
import bmi_mod01.py;
import bmi_mod02.py;
import bmi_mod03.py;
#This is the main program, which has to call the modules to carry out entire
#procedures in sequence. I really hope that can be done but I am worried because
#I have not seen a single example online where that has been accomplished.
模块01:
#Title: BMI Mod01
#Author: Name
#Class: CISPROG01
print("This program will calculate your BMI. \n"
"Please enter your height in inches.");
height = int(input());
print("Your height is " + str(height) + " inches.");
模块02:
#Title: BMI Mod02
#Author: Name
#Class: CISPROG01
print("Please enter your weight in lbs.")
weight = int(input());
print("Your weight is " + str(weight) + " lbs. \n \n");
inch_to_m = float(2.54*height/100);
lbs_to_kg = float(weight*453.59/1000);
BMI = float((lbs_to_kg)/((inch_to_m)**2));
print("Your BMI is " + str(BMI) + " kg/m^2.");
模块03:
#Title: BMI Mod03
#Author: Name
#Class: CISPROG01
print("End of job.");
答案 0 :(得分:1)
只要按顺序调用脚本,就可以在每个脚本中导入必要的变量。为了说明测试:
在main.py中:
import mod1
import mod2
在mod1.py中:
height = input()
在mod2.py中:
from mod1 import height
print (height)
使用它,您应该能够引用这些变量并按顺序运行该代码。希望对您有帮助!