Python 代码未 运行 输入(可能与菜单相关)

Python code not running input (Possibly menu related)

import circle
pi = 3.1415

def main():

        area(radius)
        circumference(radius)

def menu():
        
        print("Type a for area of circle")
        print("Type b for circumference of a circle")
        print("Type c to END PROGRAM")     
loop=True

while loop:
        menu()
        choice = input('Please enter your choice: ')

        if choice== "a":
                radius = float(input ("Input the radius of the circle : "))
                print(circle.area(radius))
        elif choice== "b":
                radius = float(input ("Input the radius of the circle : "))
                print(circle.circumference(radius))
        else:
                print("Goodbye!")
                

def area(radius):
    return pi * radius**2


def circumference(radius):
    return 2 * pi * radius

main()

在我的最后一个问题中,我在菜单上收到了帮助(现在可以使用了!)但是,当我输入半径时,我收到错误消息:

AttributeError:部分初始化的模块 'circle' 没有属性 'area'(很可能是由于循环导入)

杀死 import circle 行。将 circle.area 更改为 area,将 circle.circumference 更改为 circumference。将 areacircumference 函数的定义移动到顶部,以便在使用它们之前定义它们。最后杀死 main() 行。阅读 https://docs.python.org/3/tutorial/index.html 而不是键入您不理解的魔法并希望它们能以某种方式起作用:)

我对您的代码进行了一些更改,它应该可以正常工作。如果您有任何问题,请告诉我!

基本上去掉import,去掉main()函数,把area()和circumference()移到最上面

pi = 3.1415

# function to print the menu options
def menu():
    print("Type a for area of   ")
    print("Type b for circumference of a circle")
    print("Type c to END PROGRAM")

# function to calculate area
def area(radius):
    return pi * radius**2

# function to calculate circumference
def circumference(radius):
    return 2 * pi * radius

# menu loop
while True:

    # display menu
    menu()

    # prompt for user's choice
    choice = input('Please enter your choice: ')

    if choice == "a":
        radius = float(input("Input the radius of the circle : "))
        print(area(radius))
    elif choice == "b":
        radius = float(input("Input the radius of the circle : "))
        print(circumference(radius))
    else:
        print("Goodbye!")
        break