与def main()和def menu()顺序混淆

时间:2018-02-15 20:12:50

标签: python function loops menu main

在我选择一个选项后,我的程序应该在输入任何形状的单位后给我一个矩形,圆形或三角形的区域。但是,不是在一个区域公式之后停止,而是继续完成所有这些。我怎么阻止这个?

import math

def main():
    menu()
    if choice ==1:
        circle()
    if choice == 2:
        rectangle()
    if choice ==3:
        triangle()


def menu():
    global choice
    choice = int(input('choose option 1-3:'))

    while choice < 1 or choice > 3:
        print('error. must choose option 1-3')
        choice = int(input('try again:'))




circle()

rectangle()

triangle()

def circle ():
    radCir = float(input('enter radius of circle:'))
    areaCir = math.pi*radCir**2

    print('area of circle:',format(areaCir,'.2f'))

def rectangle():
    global choice
    length = float(input('enter length of rectangle:'))
    width = float(input('enter width of rectangle:'))

    areaRec = length * width

    print('area of rectangle:',format(areaRec, '.2f'))

def triangle():
    base = float(input('enter base of triangle:'))
    height = float(input('enter height of triangle:'))

    areaTri = base * height * .5

    print('area of triangle:',format(areaTri,'.2f'))


main()

1 个答案:

答案 0 :(得分:1)

这是因为您在定义函数之前调用函数。在定义之前删除对函数的调用,即删除:

circle()

rectangle()

triangle()

发生在def circle ():...之上。