You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让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中会引发语法错误。

修改步骤

  1. 删除Area()函数定义后的直接调用语句Area()——你已经在mainProgram()的菜单选择逻辑里添加了选项1调用Area()的代码,不需要额外提前执行。
  2. 修正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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 10:24:51