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

How to define a variable when we defined it in a while loop?

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 循环中定义了它们,当用户选择某种计算时,我只想带来某些输入。请帮忙! 我做错了什么?请帮忙 谢谢

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

例如

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

这将确保所有必要的变量都在需要的地方定义。