错误说变量没有在python中的函数中定义

时间:2015-03-19 18:07:39

标签: python function

我正在尝试编写一个简单的函数来从python中的用户输入中获取char,但不断收到以下错误:

    Traceback (most recent call last):
  File "C:/Users/chris/Desktop/Python_Stuff/replace.py", line 4, in <module>
    new= old.replace("*","")
NameError: name 'old' is not defined

这是我的代码:

def remove_char(old):
    old =input("enter a word that includes * ")
    return old #do I even need this?
new= old.replace("*","")
print (new)

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:1)

您的函数的返回值。请不要忽视它。

def remove_char(old):
   old =input("enter a word that includes * ")
   return old

new= remove_char(old).replace("*","") 
print (new)

是的,您可能不需要return

old=None
def remove_char():
   global old
   old =input("enter a word that includes * ")

remove_char() # NOTE: you MUST call this first!
new= old.replace("*","") 
print (new)

注意:我同意@jonrsharpe - 第二个例子显示了实现你想要的最丑陋的方法之一!你问你是否可以省略return - 是的,但你最好不要

答案 1 :(得分:0)

您不能在变量中使用方法,因为您之前从未定义此变量。 ( old 在函数中定义并且可见,而不是在外部)。 你真的不需要输入单词的函数。 试试这个:

old = raw_input('enter a word that includes * ')
new= old.replace("*","")
print (new)