为什么我的代码为变量给出错误的值?

Wh1spr

我知道这个问题不是很精确,这是因为我也不知道这是怎么回事。我已将问题缩小到几行,但对我来说,执行似乎很奇怪。

def loadmaze(backup):
    test = createmaze(10,10) #This creates a new 10x10 matrix
    maze = placewalls(test, "x") #The X is a string with wall positions
    if maze != test: 
    #when placewalls executed correctly, and returned a maze different from the original
        showmaze(maze) #simply printing maze to console
    else:
        return backup #so nothing changes, looks as if function never happened
    return maze,10,10
    # this returns the new maze, with walls, and the dimensions of the new maze
def placewalls(amaze,positions):
    #placing walls, definitely correct
    return amaze-with-walls

显然,我更改了变量名,因此很清楚我在做什么。问题是,当我调用该函数时loadmaze(maze),它永远不会返回带有墙的迷宫。testmaze值总是以某种方式相同。我不明白这是怎么回事,因为带墙壁的迷宫被分配给mazeafter test,那时在那个地方没有墙壁。根据调试,在执行第三行之后test 包含墙。请帮助,我非常困惑。

Wh1spr

正如@stephan所说,变量testmaze指向内存中的相同对象。所以我改变了maze = placewalls(test,"x")maze = placewalls(createmaze(10,10),"x"),从而创造从迷宫中一个新的对象不同。然后,这导致测试和迷宫是两个不同的迷宫。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么这段代码给我分段,?当我们只打印 count 时它给出答案,当打印 ans[4] 或任何值时它给出错误?

C ++,Shared_ptr,请告诉我为什么我的代码给出错误?

为什么我的代码行在字符串中给出错误的字符位置

为什么我的代码显示 char 变量的错误值

为什么此代码给出错误“无法将类型'char *&'的非常量左值引用绑定到类型为'char *'的右值”

为什么函数“ strtoll”给出错误的值并将errno设置为34?

为什么这段代码不给出错误?

为什么我的JavaScript没有传递值并且没有给出错误消息

为什么我的 HashMap 类型的 ArrayList 在放入值后给出错误的数据?

什么可能导致我的代码给出错误答案?

为什么我的查询在mySql中给出错误的fileid?

为什么我的TypeScript给出错误TS2394?

为什么我的方程式给出错误的结果?

为什么我的 kick 命令只给出错误?

为什么 strlen() 函数给出错误的值

为什么我的代码给出分段错误错误?

查找列中包含内容的最后一个单元格->为什么我的代码版本给出错误?

为什么我的lp文件为每个变量给出#number?

为什么我的代码给出运行时错误?

为什么我的代码给出了错误的结果?

为什么编译器会给出错误而不是警告已分配但从未使用过其值的变量

为什么我的代码返回错误的值?

为什么此代码给出错误而不是给出二进制数?

为什么代码抛出错误“变量”未定义

在这段代码中,为什么在仅输入值为4.2的情况下我只能得到正确的输出,而输出错误呢?

为什么我的代码会抛出错误消息?

为什么我的代码输出错误的结果?整数溢出?

为什么我的SQL代码抛出错误

为什么我的 python 代码输出错误的东西?