保持循环。试过其他线程,没有用

时间:2015-10-14 17:18:11

标签: python loops shape

我现在已经做了大约4周的编程了。到目前为止爱它。但我仍然坚持我写的这段代码。它是关于形状的区域。我试着在这里看到几个线程,但它没有帮助。 当我不想要它时,它会不断循环。

更新:

#Area of shapes
shape=[]
choice= None
while choice !="0":
    print (
        """
Choices:
0. Exit
1.Square
2.Rectangle
3.Triangle
4.Trapezium
    """
        )

    choice = input ("Choice\n")
    print()

#Exit
if choice != "0":
    print ("Incorrect, please try again")

#Square
    elif choice in ["1", "Square"]:
        square1=int(input("Please input the side of the square\n"))
        print ("The area of the square is", square1*4,)


#Rectangle
    elif choice in ["1", "Rectangle"]:
        rectangle1 = int(input ("Please input the side of the reactanglezn") )
        rectangle2 = int(input ("Please input the other side of the reactangle\n") )
        arearect== rectangle1*rectangle2
        print ("The area of the rectangle is of", arearect)

#Triangle
    elif choice in ["1", "Triangle"]:
        triangle1 = int(input ("Please input the base of the triangle") )
        triangle2 = int(input ("Please input the height of the triangle") )
        areatri =0.5*triangle1*triangle2
        print ("The area of the triangle is", areatri)

#Trapezium
    elif choice in ["1", "Trapezium"]:
        trapezium1 = int(input ("Please input the side A of the trapezium") )
        trapezium2= int(input ("Please input the side B of the trapezium") )
        trapezium3= int(input ("Please input the height of the trapezium") )
        areatrap= trapezium1*trapezium2/2*trapezium3
        print ("The area of the trapezium is", areatrap)

    else:
        print ("Invalid Choice")

3 个答案:

答案 0 :(得分:0)

尝试将If语句更改为

If choice == "1" or choice == "Square"

按照你现在的方式,你不是要检查选择是否等于字符串“Square”,你要检查字符串是否为“Square”。

编辑:我刚刚意识到实际上并没有回答你的循环问题,但是一旦解决了循环,你就会遇到这个问题。 要解决此问题,您需要将输入转换为字符串,因为您要将其与字符串值进行比较。为此,您可以执行以下操作:

choice  str(input("Choice\n"))

代替你现在拥有的东西。

答案 1 :(得分:0)

第14行(更改选择值的缩进)需要缩进以更正语法。

注意缩进,因为它们很容易破坏函数中的代码,if / elses等。

答案 2 :(得分:0)

您需要缩进大部分代码,以便它在您的顶级循环中。目前,在您获得print()后立即开始choice来电,您已经在循环之外,这意味着输入0以外的任何内容都不会做任何事情。输入0将退出循环,但不会进行任何区域计算。

代码的结构应该是:

while choice != "0":
    # print choices
    choice = input ("Choice\n")
    print()

    if choice == "0":
        # print exit message
    elif choice in ["1", "Square"]:
        # compute area of square
    elif choice in ["1", "Rectangle"]:
        # compute area of rectangle
    # other options
    else:
        # invalid choice

我还修复了elif条件的问题,在这些条件下,您不正确地检查多个值。这是if choice == "1" or choice == "Square"的替代方案,也可以正常使用。