我到目前爲止創建此代碼...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