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

2024-05-20 15:02:24 发布

您现在位置:Python中文网/ 问答频道 /正文

在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:当我输入空白作为第一个输入时

^{pr2}$

2:当我输入第一个输入为123时

Welcome to the Pig Latin Translator!
Enter a word 123
Enter a valid word
Enter a word 
Enter a valid word
Enter a word 123gas
Enter a valid word
Enter a word 
Enter a valid word
Enter a word gas
gas
Original variable is 123
Pig Latin word is 231ay
Obvious
5 
5
None

3。当我直接输入正确的输入时

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

Tags: namestringifischeckelsewordprint
1条回答
网友
1楼 · 发布于 2024-05-20 15:02:24

在第4行调用的string_check函数内部。但是返回的结果(name)没有被捕获。一种解决方案是将第4行的string_check()替换为name = string_check()。在

相关问题 更多 >