【问题标题】:writing a basic addition algorithm编写一个基本的加法算法
【发布时间】:2015-01-14 13:35:02
【问题描述】:

我正在尝试编写一个基本的加法算法,它给了我一个错误,上面写着: 回溯(最近一次通话最后): 回溯(最近一次通话最后): 文件“solution.py”,第 6 行,在 打印 C NameError:名称“C”未定义 我删除了第一个打印语句,它解决了这个问题,但现在它说'a'未定义

def solveMeFirst(a,b):

    a = int(raw_input('A='))
    b = int(raw_input('B='))
    C = a+b
    print C
res = solveMeFirst(num1,num2)
print res

【问题讨论】:

  • 对我来说,C 的定义已经很充分了,至少在这个函数中是这样。
  • 原代码把print C放到函数外面(见source),导致报错C is not defined;编辑不小心缩进了它。
  • 所以这是一个拼写错误和编辑过度热心的情况,嗯?
  • 现在是一个紧迫的问题:既然 OP 再次编辑了问题,这是正确的缩进吗?这非常很重要。如果是,那么与您在问题中指出的不同,它在语法上没有任何问题。

标签: python algorithm addition


【解决方案1】:

我得到 NameError: name 'num1' is not defined

这是有道理的,因为 num1 和 num2 没有在任何地方定义。

num1 = 1 
num2 = 2 
def solveMeFirst(a,b):
   a = int(raw_input('A='))
   b = int(raw_input('B='))
   C = a+b
   print C
res = solveMeFirst(num1,num2)
print res

工作。

res 是 None 因为你没有从 solveMeFirst 返回任何值。

如果你尝试在函数solveMeFirst之外打印C,它将是未定义的,因为它只在函数内部定义。

我认为您正在尝试做的事情如下:

num1 = int(raw_input('A='))
num2 = int(raw_input('B=')) 
def solveMeFirst(a,b):
   return a+b
res = solveMeFirst(num1,num2)
print res

【讨论】:

  • 一开始我读的太快了,但这可能是最干净的解决方案。
【解决方案2】:
  1. 通过raw_input方法从User获取num1和num2。
  2. 调用您的函数。
  3. 从函数返回加法值。
  4. 获取res 中的值并打印。

代码:-

def solveMeFirst(a,b):
    C = a+b
    return C

num1 = int(raw_input('A='))
num2 = int(raw_input('B='))
res = solveMeFirst(num1,num2)
print res

输出:

$ python test.py 
A=2
B=2
4

【讨论】:

  • 这并不能解释为什么他认为C 没有定义。
  • 是的,但帖子缺少代码详细信息。我只是提供了建议,以便他了解代码中的错误。
  • 首先,他没有返回任何东西(而是在打印)这一事实并不是他所说的错误。其次,如果问题没有详细信息,为什么还要在了解全貌之前回答它?
【解决方案3】:
def solveMeFirst():

    a = int(raw_input('A='))
    b = int(raw_input('B='))
    C = a+b
    return C                    # you need to return value

res = solveMeFirst()   #no need of argument
print res

输出:

A=10
B=34
44

【讨论】:

  • 即使没有 return 语句,代码也已经可以工作了。这里令人困惑的是,他认为C 没有定义。
  • 我试过你的代码,它给了我输出 "A=B=5" 而不是 5
  • 啊,我明白了,想传递参数,并且该参数被正确输入 raw_input
  • 好的,成功了!不得不从 raw_input 中删除 A= 和 B=...谢谢大家
猜你喜欢
  • 2014-01-17
  • 2011-03-02
  • 1970-01-01
  • 2021-04-17
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多