Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何指导这些简单模块按顺序运行?_Python_Module - Fatal编程技术网

Python 如何指导这些简单模块按顺序运行?

Python 如何指导这些简单模块按顺序运行?,python,module,Python,Module,我有一个任务,我需要创建三个模块,在主程序中依次调用和运行。我假设这是一个更复杂的最终项目的测试用例,但我知道这听起来像是一个愚蠢的想法,所以我包括了说明。我这里有3个单独模块的代码(请注意:所有这些都可以作为一个脚本使用,但我的任务是将其拆分) 说明: 绘制层次结构图,然后为计算人体体重指数(BMI)的程序规划逻辑。BMI是一种比较人的体重和身高的统计指标。该程序使用三个模块。第一个命令提示用户输入并接受用户的高度(以英寸为单位)。第二个模块接受用户以磅为单位的体重,并将用户的身高转换为米,体

我有一个任务,我需要创建三个模块,在主程序中依次调用和运行。我假设这是一个更复杂的最终项目的测试用例,但我知道这听起来像是一个愚蠢的想法,所以我包括了说明。我这里有3个单独模块的代码(请注意:所有这些都可以作为一个脚本使用,但我的任务是将其拆分)

说明:

绘制层次结构图,然后为计算人体体重指数(BMI)的程序规划逻辑。BMI是一种比较人的体重和身高的统计指标。该程序使用三个模块。第一个命令提示用户输入并接受用户的高度(以英寸为单位)。第二个模块接受用户以磅为单位的体重,并将用户的身高转换为米,体重转换为千克。然后,它将体重指数计算为体重(千克)除以身高(米)的平方,并显示结果。一英寸有2.54厘米,一米有100厘米,一磅有453.59克,一公斤有1000克。只要您认为合适,就使用命名常量。最后一个模块显示消息“作业结束”。用Python创建程序,并提供repl.it的链接或附加.py文件

请注意,运行bmi_main.py实际上会按顺序启动三个模块,但模块2有一个错误,因为它使用了“高度”,这是模块1中定义的一个变量,在模块2启动时显然被遗忘了。这意味着我需要高度作为一个全局变量,即使它是由用户定义的。我不认为这会是一个问题,但试图在主程序顶部声明高度会给我带来错误。如何在保留此(可疑但必要的)结构的同时修复此问题

主要内容:

单元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.");

只要按顺序调用脚本,就可以在每个脚本中导入必要的变量。要说明测试,请执行以下操作:

在main.py中:

import mod1
import mod2
在mod1.py中:

height = input()
在mod2.py中:

from mod1 import height
print (height)

使用它,您应该能够引用这些变量并按顺序运行代码。希望有帮助

我很好奇你是否试过运行这个代码。通过调用
import
python正在处理该文件,从而“运行”它。我看到您将遇到的错误是,当您调用import时,您忽略了扩展py。因此,与导入bmi_mod01.py不同的是,
import bmi_mod01
。另外,关于第二个问题,如果您想迭代程序并返回,您可以使用函数返回或创建循环。您将不会再次执行该文件(您应该只调用导入一次)。感谢您的响应。我正在更新我的问题。我有语法错误,并且错误地标记了一个变量。不输入“.py”似乎一点都不重要。事实上,当我运行bmi_main.py时,所有程序都是按顺序运行的*我认为,问题在于“高度”是模块2的局部变量,但我需要在模块3中使用它,所以它需要是全局变量。我该怎么做?我尝试在“main”中初始化它,但它给了我定义错误。做‘全球高度’在模块2中什么都不做。*我的意思是模块1的本地,但在模块2中使用
from mod1 import height
print (height)