几个小时前刚开始使用python并遇到问题。 打击片段显示,最初我将userInput存储为1或2,然后执行if块。问题是代码直接跳转到else(即使我在控制台窗口中输入1)。 我知道我犯了一个简单的错误,但任何帮助都会受到赞赏。
使用Python 3.5 ===在Visual Studio 2015中运行===特别是cPython
userInput = float(input("Choose 1 (calculator) or 2 (area check)\n"))
if(userInput =='1') :
shape = input("Please enter name of shape you would like to calculate the area for\n")
if(shape == 'triangle') :
base = int(input("Please enter length of BASE\n"))
height = int(input("Please enter HEIGHT\n"))
print("The area of the triangle is %f" % ((base * height)*0.5))
elif (shape == 'circle') :
radius = int(input("Please enter RADIUS\n"))
print("The Area of the circle is %f" % ((radius**2)*22/7))
elif (shape == 'square') :
length = int(input("Please Enter LENGTH\n"))
print("The area of the square is %f" % ((length**2)*4))
else :
initial1 = float(input("Please enter a number\n"))
sign1 = input("please enter either +,-,*,/ \nwhen you wish to exit please type exit\n")
initial2 = float(input("Please enter number 2\n"))
if(sign1 == '+') :
answer = float(initial1) + float(initial2)
print(answer)
elif(sign1 == '*') :
answer = float(initial1) * float(initial2)
print(answer)
elif(sign1 == '-') :
answer = float(initial1) - float(initial2)
print(answer)
elif(sign1 == '/') :
answer = float(initial1) / float(initial2)
print(answer)
PS。如果[可能]你能尽可能保持基本的帮助,因为我想确保我完全理解基础知识。
感谢所有的帮助!! :d
答案 0 :(得分:1)
您正在将输入转换为float,但检查数字的字符串。将其更改为:
If userInput == 1.0:
或者更好的是,保持原样并且不要将用户输入转换为浮动状态。如果您想对其进行数学运算,则只需将输入转换为float
或int
。在您的情况下,您只是将其用作选项,因此您可以将其保留为字符串:
userInput = input("Choose 1 (calculator) or 2 (area check)\n")
P.S。确保在Python中使用缩进非常小心。我假设您的缩进在代码编辑器中是正确的,但在粘贴到此站点时也要小心。您在此处拥有相同级别的所有内容,但是您的某些if
块需要进一步缩进,以便您的程序正常运行。