2016-11-28 85 views
-1

當我打印gb0時,它將元素更改爲「< - 您在此處」。嵌套列表中的Python元素不變

當我撥打board函數它不會改變任何東西。

我該如何改變我的代碼來改變事物?

def board(): 

    gb = [['Planet Number', 'CivLevel', 'Success%', 'Fuel', 'Rocks', '']] 
    for row in gb: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb0 = [['Planet 0', '4', '80%', '10', '10', '']] 
    for row in gb0: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb1 = [['Planet 1', '4', '80%', '10', '10', '']] 
    for row in gb1: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb2 = [['Planet 2', '4', '80%', '10', '10', '']] 
    for row in gb2: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb3 = [['Planet 3', '4', '80%', '10', '10','']] 
    for row in gb3: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb4 = [['Planet 4', '4', '80%', '10', '10', '']] 
    for row in gb4: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb5 = [['Planet 5', '4', '80%', '10', '10', '']] 
    for row in gb5: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb6 = [['Planet 6', '4', '80%', '10', '10', '']] 
    for row in gb6: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    gb7 = [['Planet 7', '4', '80%', '10', '10', '']] 
    for row in gb7: 
     print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

    print("") 

    if place == 0 
     gb0[0][6] = "<-- You are here" 
     return gb0[0][6] 

    print ("") 
+5

因爲所有的變量是局部的功能。 –

+2

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。 [最小,完整,可驗證的示例](http://stackoverflow.com/help/mcve)適用於此處。在您發佈代碼並準確描述問題之前,我們無法有效幫助您。由於語法錯誤,您發佈的代碼不會運行,並且沒有主級代碼可以調用您的函數,所以毫無疑問,沒有任何更改。 – Prune

回答

0

高清板():

place = 0 


gb = [['Planet Number', 'CivLevel', 'Success%', 'Fuel', 'Rocks', '']] 
for row in gb: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb0 = [['Planet 0', '4', '80%', '10', '10', '']] 
if place == 0: 
    gb0[0][5] = ("<-- You are here") 
for row in gb0: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb1 = [['Planet 1', '4', '80%', '10', '10', '']] 
for row in gb1: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb2 = [['Planet 2', '4', '80%', '10', '10', '']] 
for row in gb2: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb3 = [['Planet 3', '4', '80%', '10', '10','']] 
for row in gb3: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb4 = [['Planet 4', '4', '80%', '10', '10', '']] 
for row in gb4: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb5 = [['Planet 5', '4', '80%', '10', '10', '']] 
for row in gb5: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb6 = [['Planet 6', '4', '80%', '10', '10', '']] 
for row in gb6: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

gb7 = [['Planet 7', '4', '80%', '10', '10', '']] 
for row in gb7: 
    print("{: >20} {: >20} {: >20} {: >20} {: >20} {: >20}".format(*row)) 

print("") 

print ("") 
+0

我認爲您的縮進已關閉:函數** board **具有空主體,這在語法上不合法。 – Prune

+0

我是新來堆棧溢出,我努力複製和粘貼正確。 –

+0

點擊「編輯」並使用「代碼」圖標:匹配的大括號。 – Prune

0

如果你期待的改變?您發佈的功能之外沒有任何代碼。函數中的所有變量都在函數中聲明,初始化,打印和操作。他們中沒有一個提到任何外面的東西您唯一的溝通是返回值「< - 您在這裏」,而不考慮董事會名單中的任何數據。

此外,請注意,gb列表一旦退出該功能就會被回收。也許你需要更多的東西是這樣的:

def board_init(place): 

    gb = [ 
      ['Planet Number', 'CivLevel', 'Success%', 'Fuel', 'Rocks', ''], 
      ['Planet 1', '4', '80%', '10', '10', ' '], 
      ['Planet 2', '4', '80%', '10', '10', ' '], 
      ['Planet 3', '4', '80%', '10', '10', ' '], 
      ['Planet 4', '4', '80%', '10', '10', ' '], 
      ['Planet 5', '4', '80%', '10', '10', ' '], 
      ['Planet 6', '4', '80%', '10', '10', ' '], 
      ['Planet 7', '4', '80%', '10', '10', ' '] 
     ] 

    if place > 0 and place < len(gb): 
     gb[place][-1] = "<-- You are here" 

    print ("") 
    for row in gb: 
     print("{: >15} {: >15} {: >15} {: >15} {: >15} {: >15}".format(*row)) 

    return gb 

# Main program 
game_display = board_init(3) 

輸出:

Planet Number  CivLevel  Success%   Fuel   Rocks     
     Planet 1    4    80%    10    10     
     Planet 2    4    80%    10    10     
     Planet 3    4    80%    10    10 <-- You are here 
     Planet 4    4    80%    10    10     
     Planet 5    4    80%    10    10     
     Planet 6    4    80%    10    10     
     Planet 7    4    80%    10    10  
+0

我試圖添加它,以便當你選擇你想要去什麼星球,它增加了「 < - 你在這裏「在主板上列表結束,例如在行星6行,在10列燃料旁邊應該說」< - 你在這裏「 –

+0

你如何選擇這個星球?我更新了這個嘗試,使用** place **參數來完成這個任務,請編輯你的規範更新到問題的正文中 – Prune

+0

對不起,除了函數之外,我還有一個輸入變量(地方)要求你選擇你想要去的地方,非常感謝你! –