我不確定你爲什麼把課放在這裏,因爲縮進是不正確的,你使用「方法」的方式不像你想要使用類。我有兩個代碼。一個使用類而另一個不使用。
首先,假設你真的想使用類(我覺得這個最適合您的問題):
class Generator:
words = "" # you should put words and letters here. this will be attribute and both get_words() and sort_words() can see this
letters = []
def get_words(self):
words = raw_input("input the letters\n")
letters = []
# i = 0 : no effect. it just local variable with method get_words
def sort_words(self):
i = 0 # must be assign value before use
for word in words:
letters.append(word)
print letters[i]
i = i + 1
你應該注意到,當你使用類,每個方法必須有關鍵字self
。下面是測試:
generator = Generator()
generator.get_words()
generator.sort_words()
如果這僅僅是正常功能。您的問題不起作用,因爲某些原因:
1)單詞和字母可能不會聲明爲全局。所以,當你在get_words()中給這些變量賦值時,sort_words()看不到這個。如果你編譯並沒有錯誤,只是某種原因,你已經在全局中賦值SOMEWHERE(在其他地方輸入name和assign value,而不是在任何函數中)。但在這種情況下,當你使用get_words()時,這些全局仍然不會更新。所以,沒有「印刷單詞」,因爲你看到,因爲你使用的「單詞」,並沒有更新。
2)i變量:在使用前必須賦值。
所以,這裏是我固定的代碼:
def get_words():
global words
global letters
words = raw_input("input the letters\n")
letters = []
# global i=0 : you can do that, but SHOULDN'T
def sort_words():
i = 0 # i must be assign value before use
for word in words:
letters.append(word)
print letters[i]
i = i + 1
和測試將是:
get_words()
sort_words()
希望這將幫助你:)
來源
2012-10-29 01:38:00
hqt
您使用「爲單詞中的單詞「將通過單詞中的單個字母進行。那是你的意圖嗎?我會建議將單詞聲明爲一個列表而不是一個空字符串。 –
也許是因爲get_words()不完整,而words =「」? – monkut
@monkut我編輯了代碼。我認爲這會讓它變得混亂。 –