我正在编写一个简单的程序来计算不同形状的面积。问题是当我包含一个OR语句时,它会指向错误的if语句。这很难解释,我找不到合适的词来获得有意义的结果,所以我在这里。这是代码。
import time
import math
import sys
def calc():
shape = input("Circle, Square/Rectangle, or Triangle?: ")
if shape.lower() == "circle":
rad = int(input("Enter the radius of the circle: "))
pi = float(math.pi)
area = float((rad*rad)*pi)
#rounded = round(area, 3)
print("The area of your circle is: ", area)
again()
elif shape.lower() == "square":
L = int(input("Enter Length: "))
H = int(input("Enter Height: "))
area = float(L*H)
print("The area is ", area)
again()
elif shape.lower() == "triangle":
base = int(input("Enter the base: "))
height = int(input("Enter the Height: "))
area = int((base*height)/2)
print("The area of your triangle is.. ", area)
again()
def again():
ag = input("Again?")
if ag == "y":
calc()
else:
sys.exit
calc()
我想接受广场的两个值。通过将其更改为此可接受方形或矩形。最后,它会在底部运行代码,询问用户是否有其他形状。
elif shape.lower() == "square" or "rectangle":
L = int(input("Enter Length: "))
H = int(input("Enter Height: "))
area = float(L*H)
print("The area is ", area)
again()
def again():
ag = input("Again?")
if ag.lower == "y" or "yes":
calc()
elif ag.lower() == "n" or "no":
sys.exit
当我在任何其他程序中运行此代码时,接受两个值没有问题。使用这个程序,当我输入“triangle”时,它会完全跳过三角形并返回长度/高度提示,就好像我输入了square。如果我删除方形的OR部分,它没有问题转到三角形。
退出脚本也是如此。如果我将OR留在那里,它会完全跳过退出提示。如果我输入Y或YES,它会再次运行。如果我输入N或NO,它会再次运行。当我拿出OR部分时,它再次运行没有问题。
我知道我可以为矩形创建一个单独的IF / ELSE,并且值是相同的,但这是我之前遇到过的一个问题,我想帮助解决它。任何人都可以对这个问题有所了解吗?