如何让Python脚本首次运行时优先执行mainProgram函数?
问题:Python脚本启动时先执行了Area()函数,如何让它优先运行mainProgram()?
原代码
def Area(): print("Area() function has been called") return Area() <----- This how I understood the definition of a function is to be done. I was not aware of this. def mainProgram() : userSelection = -1 while userSelection != 7 : print ("CALCULATIONS MENU") print ("") print ("1) AREA (SQUARE)") print ("2) AREA (RECTANGLE)") print ("3) AREA (CIRCLE)") print ("4) PERIMITER (SQUARE)") print ("5) PERIMITER (RECTANGLE)") print ("6) PERIMITER (CIRCLE)") print ("7) EXIT") print ("") userSelection = int(input ("INPUT MENU CHOICE (1,2,3,4,5,6 OR 7)? ")) if userSelection == 1 : Area() elif userSelection == 7: exit() mainProgram()
执行输出
Area() function has been called <---- This line gets outputed CALCULATIONS MENU 1) AREA (SQUARE) 2) AREA (RECTANGLE) 3) AREA (CIRCLE) 4) PERIMITER (SQUARE) 5) PERIMITER (RECTANGLE) 6) PERIMITER (CIRCLE) 7) EXIT INPUT MENU CHOICE (1,2,3,4,5,6 OR 7)?
程序运行逻辑正常,但启动时print("Area() function has been called")会在mainProgram()执行前输出,如何修改让脚本首次运行时先显示菜单内容?
解决方案
问题原因
你在定义完Area()函数后直接写了Area()语句,这行代码会在脚本加载阶段立即执行,不需要等待mainProgram()调用,所以启动时先输出了那行内容。另外你的代码存在缩进错误:while循环后的代码块没有缩进,这在Python中会引发语法错误。
修改步骤
- 删除
Area()函数定义后的直接调用语句Area()——你已经在mainProgram()的菜单选择逻辑里添加了选项1调用Area()的代码,不需要额外提前执行。 - 修正
while循环的缩进:将循环内的所有代码(从打印菜单到条件判断部分)统一缩进(Python推荐4个空格)。
修改后的完整代码
def Area(): print("Area() function has been called") return def mainProgram() : userSelection = -1 while userSelection != 7 : print ("CALCULATIONS MENU") print ("") print ("1) AREA (SQUARE)") print ("2) AREA (RECTANGLE)") print ("3) AREA (CIRCLE)") print ("4) PERIMITER (SQUARE)") print ("5) PERIMITER (RECTANGLE)") print ("6) PERIMITER (CIRCLE)") print ("7) EXIT") print ("") userSelection = int(input ("INPUT MENU CHOICE (1,2,3,4,5,6 OR 7)? ")) if userSelection == 1 : Area() elif userSelection == 7: exit() mainProgram()
修改效果
启动脚本后会直接显示计算菜单,只有当你输入选项1时,才会调用Area()函数并输出对应的提示内容。
内容的提问来源于stack exchange,提问作者blogger13
相关产品推荐
相关产品推荐

