当我们在while循环中定义变量时如何定义变量?

时间:2018-03-16 14:09:05

标签: python python-3.x coding-style

G  = float(6.67 * (10**-11))
print("Choose from the following '\n a) Gravitational Force '\n b) Density '\n c) Kinetic Energy '\n d) Potential Energy '\n e) Work Done '\n f) Weight '\n g) Force ")

Answer = input("Choice: ")
 while Answer == 'a':
    M1 = float(input("Enter mass of first body: "))
    M2 = float(input("Enter mass of second body: "))
    r = float(input("Enter distance between them: "))
    break
 while Answer == 'b':
    vol = float(input("Enter volume of the object: "))
    m = float(input("Enter mass of the body: "))
    break
while Answer == 'c':
    m1 = float(input("Enter mass of the body: "))
    v = float(input("Enter velocity of the body: "))
    break
while Answer == 'd':
    g = float(input("Enter value of acceleration due to gravity: "))
    m2 = float(input("Enter mass of the body: "))
    h = float(input("Enter height of the object: "))
    break
while Answer == 'e':
    f = float(input("Enter vaue of force applied: "))
    s = float(input("Enter value of displacement: "))
    break
while Answer =='f':
    g1 = float(input("Enter value of acceleration due to gravity: "))
    m3 = float(input("Enter mass of the body: "))
    break
while Answer == 'g':
    m4 = float(input("Enter mass of the body: "))
    acc = float(input("Enter value of acceleration: "))
    break

D = m/vol
W = m3*g1
F = m4*acc
GF = (G * M1*M2)/r**2
WD = f*s
KE = (1/2 * m1 * v**2)
PE = m2*g*h

if Answer == 'a':
    print(GF)
elif Answer == 'b':
    print(D)
elif Answer == 'c':
    print(KE)
elif Answer == 'd':
    print(PE)
elif Answer == 'e':
    print(WD)
elif Answer == 'f':
    print(W)
elif Answer == 'g':
    print(F)

现在我想知道在运行代码时,它一直在说变量未声明,并且它表示在公式中我使用的变量没有定义,但我已经在while循环中定义它们,我想只带来某些当用户选择某个计算时输入。请帮忙! 我做错了什么?请帮忙 感谢

1 个答案:

答案 0 :(得分:2)

只需在if子句中进行具体计算即可。代码的问题在于,如果用户没有选择相应的选项,则某些变量无法定义。所以计算会失败。

e.g。

if Answer == 'a':
    GF = (G * M1*M2)/r**2
    print(GF)

这将确保所有必要变量都在需要它们的位置定义。