微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

要声明一个变量

如何解决要声明一个变量

我想获取“ weight”的值并将其乘以.38,本质上将其分配给名为x的变量。但是,执行说

”第12行,在 打印(“在火星上,您将称量“ + x +”磅。\ n“ NameError:名称“ x”未定义”

我该怎么办?

def weight_for_binky(x):
#asking for weight
    weight = int(input("What do you weigh? "))

#binky weight
    x = (weight * 0.38)

print("you weigh " + x + " pounds. \n")

if __name__ == '__main__':
    weight_for_binky(x) 

出于隐私目的更改了变量名

解决方法

如果出现问题,您的代码中有数字

  1. 您的函数具有x参数,但从未在计算中使用它。相反,您将计算结果分配给x
  2. x在函数的本地范围内,当您尝试打印它时在函数外部不可用
  3. 尝试调用函数-weight_for_binky(x) 时,仍未定义
  4. x
  5. 缩进是错误的,这可能是您发布代码时格式不正确的结果。
    def weight_for_binky(weight):
        return weight * 0.38
    
    if __name__ == '__main__':
        weight = int(input("What do you weight? "))
        print(f"you weight {weight_for_binky(weight)} pounds.")

,

您的问题是x是在函数内部定义的,因此无法在函数外部访问。您要么必须编写这样的代码:

def weight_for_binky(x):
    #asking for weight
    weight = int(input("What do you weigh? "))
    #binky weight
    x = (weight * 0.38)
    print("you weigh " + str(x) + " pounds. \n")

if __name__ == '__main__':
    weight_for_binky(x) 

或类似这样:

def weight_for_binky(x):
    #asking for weight
    weight = int(input("What do you weigh? "))
    #binky weight
    x = (weight * 0.38)
    return x

if __name__ == '__main__':
    print("you weigh " + str(weight_for_binky(x)) + " pounds. \n"))
,

我是Python迷,这是我的解决方案:

def weight_for_binky(x):
    weight = float(input("What do you weigh? "))
    x = (weight * 0.38)
    return f'you weigh {x} pounds. \n'


weight = weight_for_binky(x=1)
print(weight)
if __name__ == '__main__':
    weight

我建议使用float函数,因为用户可能输入20.5(我的公制单位不是磅,所以数字不是实数),您的程序会返回错误。

此外,您还应该在函数中缩进print语句。

,

在Python中,您没有用于定义代码块的方括号,因此使用正确的缩进非常重要。
同样在这种情况下,将变量x传递给函数,它是毫无用处的*(在您的情况下,x尚未定义)*,您可以这样做:

def weight_for_binky():
#asking for weight
  weight = int(input("What do you weigh? "))
#binky weight
  return (weight * 0.38)


if __name__ == '__main__':
  x = weight_for_binky()
  print("you weigh " + str(x) + " pounds. \n")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。