Skip to main content
 首页 » 编程设计

python之如何替换函数中 if 语句中的变量

2025年05月04日32kevingrace

print 'Welcome to the Pig Latin Translator!' 
 
def pyg(): 
    if name.isalpha and len(name) > 0: 
        print 
    elif name.isdigit: 
        print "This is an integer, not a string!" 
        name = raw_input() 
        pyg() 
    elif len(name) <= 0: 
        print "You typed nothing!" 
        name = raw_input() 
        pyg() 
name = raw_input() 
pyg()         

所以我得到了错误

UnboundLocalError: local variable 'name' referenced before assignment

我想做的是当我输入的 name 是一个整数时,我输入一些东西来替换 name 并再次运行该函数

请您参考如下方法:

你为什么不通过 name作为函数的参数,并使函数接受参数?

print 'Welcome to the Pig Latin Translator!' 
 
def pyg(name): 
    if name.isalpha() and len(name) > 0: 
        print 
    elif name.isdigit(): 
        print "This is an integer, not a string!" 
        name = raw_input() 
        pyg() 
    elif len(name) == 0: 
        print "You typed nothing!" 
        name = raw_input() 
        pyg(name) 
 
name = raw_input() 
pyg(name) 

顺便说一句,代码丢失了()在 isalpha 之后, isdigit . 并且长度永远不会变成负数。 len(name) < 0没有意义。