Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python函数根据先前的输入返回不同的值_Python_Function - Fatal编程技术网

Python函数根据先前的输入返回不同的值

Python函数根据先前的输入返回不同的值,python,function,Python,Function,在Codeacademy上学习python。 这是一个简单的拉丁翻译程序。 正如标题所述,根据先前的输入(故意输入错误),函数返回的是不同的(第一个)值,而不是if-else清除的最新值。我试图将return放在else中,但如#Reference中所示,局部变量没有返回。请帮忙 def string_check(): name = raw_input("Enter a word") if len(name) == 0 or name.isalpha() == False:

在Codeacademy上学习python。 这是一个简单的拉丁翻译程序。 正如标题所述,根据先前的输入(故意输入错误),函数返回的是不同的(第一个)值,而不是if-else清除的最新值。我试图将return放在else中,但如#Reference中所示,局部变量没有返回。请帮忙

def string_check():
    name = raw_input("Enter a word")
    if len(name) == 0 or name.isalpha() == False:
        print "Enter a valid word"
        string_check()
    else:
        print name
    return name

print 'Welcome to the Pig Latin Translator!'

# Start coding here!
original = string_check()
print ("Original variable is " +original)
ans = original[1:len(original)] + original[0] + "ay"
print ("Pig Latin word is %s"% (ans))

# Reference
omega = 3
if omega == 3:
    print "Obvious"
    beta = 5
    print beta
print beta
输出 1:当我第一次输入空白时

Welcome to the Pig Latin Translator!
Enter a word 
Enter a valid word
Enter a word 123
Enter a valid word
Enter a word 123gas
Enter a valid word
Enter a word gas
gas
Original variable is 
Traceback (most recent call last):
File "python", line 15, in <module>
IndexError: string index out of range
三,。当我直接输入正确的输入时

Welcome to the Pig Latin Translator!
Enter a word gas
gas
Original variable has gas
Pig Latin word is asgay
Obvious
5
5
None

在第4行调用的
string\u check
函数中。但是,不会捕获返回的结果(
name
)。一种解决方案是将第4行的
string\u check()
替换为
name=string\u check()

可能的重复:
Welcome to the Pig Latin Translator!
Enter a word gas
gas
Original variable has gas
Pig Latin word is asgay
Obvious
5
5
None