對於我的Python類的作業,我們必須創建一個接受字符串S的函數,並創建一個以分號分隔的字符串數字的嵌套列表(元素必須是浮點數)。例如,字符串:將程序轉換爲Python中的函數?
「3.5 1 9.2 4 2 7 0 15 3 1 8 -2」
應產生的列表:
[[3.5,1.0,9.2,4.0] [2.0,7.0,0.0,15.0],[3.0,1.0,8.0,-2.0]
我終於能寫程序:
S = "3.5 1 9.2 4;2 7 0 15;3 1 8 -2"
i = 0
z = 0
temp_list = []
good_list = []
str_temp = ""
S_temp = S.split(";")
while i < len(S_temp):
str_temp = S_temp[i]
temp_list = str_temp.split(" ")
while z < len(temp_list):
temp_list[z] = float(temp_list[z])
z += 1
z = 0
good_list.append(temp_list)
i += 1
不過,我現在卡住試圖找出如何轉換爲功能...
我想這將是沿着線:
def testfunction(S):
S_temp = S.split(";")
while i < len(S_temp):
str_temp = S_temp[i]
temp_list = str_temp.split(" ")
while z < len(temp_list):
temp_list[z] = float(temp_list[z])
z += 1
z = 0
good_list.append(temp_list)
i += 1
然而,當我將它保存並嘗試運行testfunction(S)(分配s到相同的字符串作爲我原來的程序後)我得到以下錯誤:
UnboundLocalError:局部變量賦值
這到底是怎麼回事之前,「我」引用?我不是要求一個直接的答案,而只是一兩個提示,以便我可以弄明白並從中學習..
謝謝。
哪裏是'I = 0'在你的函數? – vks 2014-10-19 06:41:01
您沒有將變量初始化設置放入您的函數中。 – BrenBarn 2014-10-19 06:42:56