"다른 모양의 영역을 찾으시겠습니까?"에 "아니오"를 입력 할 때마다 그것은 저에게 질문을 다시 묻습니다. 여기 내 코드는 다음과 같습니다 -파이썬 코드가 두 번 실행되는 이유는 무엇입니까?
def calculate_area():
print "Welcome to the area calculator"
user= raw_input("Enter the shape you would like to calculate the area of:").lower()
def restart():
answer= raw_input("Would you like to find the area of another shape?('yes' or 'no')")
if answer=="yes":
calculate_area()
def rerun():
restart()
if user== "rectangle":
def calculate_rectangle():
rect1= int(raw_input("Enter the length of the first side:"))
rect2= int(raw_input("Enter the length of the second side:"))
print "The area is:",float(rect1*rect2)
calculate_rectangle()
rerun()
elif user== "square":
def calculate_square():
square=int(raw_input("Enter the length of the side:"))
print "The area is:",float(square**2)
calculate_square()
rerun()
elif user== "triangle":
def calculate_triangle():
triangle=int(raw_input("Enter the length of the base:"))
triangle2=int(raw_input("Enter the height of the triangle:"))
print "The area is:", float((0.5*triangle)*triangle2)
calculate_triangle()
rerun()
elif user== "trapezoid":
def calculate_trap():
trapezoid=int(raw_input("Enter the length of base 1:"))
trapezoid2=int(raw_input("Enter the length of base 2:"))
trapezoid3=int(raw_input("Enter the height:"))
print "The area is:", (float(trapezoid+trapezoid2)/2*float(trapezoid3))
calculate_trap()
rerun()
elif user== "circle":
def calculate_circle():
circle=int(raw_input("Enter the radius:"))
print "The area is:", (float((circle**2)*3.14))
calculate_circle()
rerun()
elif user== "rhombus":
def calculate_rhombus():
rhombus1=int(raw_input("Enter the length of diagonal 1:"))
rhombus2=int(raw_input("Enter the length of diagonal 2:"))
print "The area is:", (float((rhombus1*rhombus2)/2))
calculate_rhombus()
rerun()
else:
print "Shape not recognized"
rerun()
이 코드는 "데프 다시 시작"아래에 내가 입력 할 때마다 두 번 실행 "아니오." 왜 이런 일이 일어나는 걸까요?
() '함수의 끝에서 ... – mguijarr
당신이 디버거에서 그것을 실행 시도하셨습니까'재방송이 있기 때문에, "다른 모양의 영역을 찾으시겠습니까?"줄에 중단 점이 있습니까? 두 번에 스택 추적을 확인하면 대답을 알 수 있다고 생각합니다. – alf
마지막'''rerun()'''은 마지막''else''' 블록 아래 들여 쓰이지 않습니다. –