我到目前为止创建此代码...Python函数和变量麻烦
def print_slow(str):
for letter in str:
sys.stdout.write(letter)
sys.stdout.flush()
time.sleep(0.005)
def menu():
print_slow("-------------[MENU]-------------")
print(" ")
print_slow("1) Enter a sentence.")
print(" ")
print_slow("2) Find the position of a word.")
print(" ")
print_slow("--------------------------------")
print(" ")
print_slow(">>> ")
choice = str(input(" "))
print(" ")
time.sleep(0.5)
if choice == "1":
option1()
if choice == "2":
option2()
def option1():
print_slow("Enter sentence")
sentence = str(input(": "))
print(" ")
menu()
def option2():
if not sentence:
print_slow("Please enter a sentence first!")
time.sleep(0.5)
print(" ")
else:
sentenceUppercase = sentence.upper()
[code goes on...]
基本上当我测试了一下,我按选项2第一,它应该给输出“请先输入句子! ,它这样做。
然后我按下菜单中的选项1,它应该提示我输入一个句子(我把'我的名字是bob'作为一个测试),它会。
然后我在输入句子后按下了选项2,它应该继续我的代码 - 而是给出错误消息'请先输入一个句子!
我该如何解决这个问题?
为什么你需要time.sleeps? – nbro
这是我的代码的一部分,但这并不真正相关@nbro – Nil
您是否已将'sentence'定义为全局变量?因为你向我们展示的代码应该给出一个错误,因为在函数'option2'中你正在检查'sentence'是否为True(或False),但是从你的代码看,'sentence'似乎没有被定义任何地方。换句话说,'option1'下的'sentence'是一个局部变量,而不是'option2'中的变量。 – nbro