我现在已经做了大约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")
答案 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"
的替代方案,也可以正常使用。