0

问题已解决。但是,我的帐户是新帐户,所以它不会让我回答问题。似乎用 raw_input() 更改 input() 的实例使其工作。老实说,我不知道为什么,但这可能与 2 和 3 之间的差异有关。

我应该做一个可以计算面积和周长的程序。那部分并没有那么困难。

但是,菜单不起作用。菜单的第一部分工作得很好,但是在您做出选择之后,它不会打印它应该打印的内容。

import math

print ("""
1) Calculate circumference
2) Calculate area
""")
ans = input("Enter 1, 2, or 0 to exit this program: ")
if ans == "1":
    diameter = float(input("Enter the diameter: "))
    if diameter > 0:
        circumference = (diameter*math.pi)
        print("The circumference is", circumference)
    else:
        print("Error: the diameter must be a positive number.")
if ans == "2":
    radius = float(input("Enter the radius: "))
    if radius > 0:
        area = ((radius**2)*math.pi)
        print("The area is", area)
    else:
        print("Error: the radius must be a postive number.")
if ans == "0":
    print("Thanks for hanging out with me!")
    quit()
4

4 回答 4

1

正确缩进后,改成if ans == "1"or str(ans) == "1"ans == 1应该没问题。

这应该有效:

import math

print ("""
1) Calculate circumference
2) Calculate area
""")
ans = input("Enter 1, 2, or 0 to exit this program: ")
if str(ans) == "1":
    diameter = input("Enter the diameter: ")
    print diameter
    if float(diameter) > 0.0:
        circumference = (diameter*math.pi)
        print("The circumference is", circumference)
    else:
        print("Error: the diameter must be a positive number.")
....

PS:正如评论中提到的,它有效,但它很恶心。如果您使用 python < python 3,我们应该只使用ans == 1或修改input to input_raw

于 2013-09-10T23:35:14.533 回答
0

您的代码缩进显示了每个“if”、“for”或“while”的控制范围。您需要进一步缩进每个主要“if”语句下的指令,以便仅在选择该“if”语句时执行它们。否则,每次循环都会执行最左边缩进的所有内容。例如,你应该有类似的东西:

if answer == '1':
....<statements that execute under condition 1>
elif answer == '2':
....<statements that execute under condition 2>

我用'....'强调了缩进。

于 2013-09-10T23:34:32.200 回答
0

第二个 if 语句不在第一个的括号内。1 和 2 都是如此。

if ans == "1";
    diameter = float(input("enter the diameter: "))
    if diameter ....
于 2013-09-10T23:35:20.090 回答
0

对我来说,将 ans 视为整数有效。我将 ans 视为整数的意思不是写 ans=="1" ,而是写 ans==1.it print corret cvalue。检查此代码:


import math

print ("""
1) Calculate circumference
2) Calculate area
""")
ans = input("Enter 1, 2, or 0 to exit this program: ")
print ans
if ans ==1:
    diameter = float(input("Enter the diameter: "))
    if diameter > 0:
        circumference = (diameter*math.pi)
        print("The circumference is", circumference)
    else:
        print("Error: the diameter must be a positive number.")
if ans == 2:
    radius = float(input("Enter the radius: "))
    if radius > 0:
        area = ((radius**2)*math.pi)
        print("The area is", area)
    else:
        print("Error: the radius must be a postive number.")
if ans == 0:
    print("Thanks for hanging out with me!")
    quit()
于 2013-09-10T23:52:40.027 回答