【问题标题】:How to define a variable when we defined it in a while loop?当我们在while循环中定义变量时如何定义它?
【发布时间】:2018-03-16 14:09:05
【问题描述】:
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 循环中定义了它们,我只想带上某些当用户选择某个计算时输入。请帮忙! 我做错了什么?请帮忙 谢谢

【问题讨论】:

  • 你必须做一个大的while循环,里面有Answer = input("Choice: ")。不是 x 不起作用的 while 循环。
  • 你为什么要使用while 循环,比如if 语句?

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


【解决方案1】:

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

例如

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-12
    • 2017-03-24
    • 2016-02-19
    • 2015-05-01
    • 2015-10-09
    • 1970-01-01
    • 2018-03-14
    相关资源
    最近更新 更多