2016-11-28 92 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

对不起,除了函数之外,我还有一个输入变量(地方)要求你选择你想要去的地方,非常感谢你! –