Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
泽德·肖';让我们来学习Python的艰苦之路教程_Python - Fatal编程技术网

泽德·肖';让我们来学习Python的艰苦之路教程

泽德·肖';让我们来学习Python的艰苦之路教程,python,Python,我是编程新手,目前正在学习Zed Shaw的Python书中的练习。 在Zed的Ex41中,有以下功能: def runner(map, start): next = start while True: room = map[next] print "\n-------" next = room() 我的问题是,当他可以直接使用“start”时,为什么他必须将“start”赋值给变量“next”?他为什么不这么做 de

我是编程新手,目前正在学习Zed Shaw的Python书中的练习。 在Zed的Ex41中,有以下功能:

def runner(map, start):
     next = start

     while True:
         room = map[next]
         print "\n-------"
         next = room()
我的问题是,当他可以直接使用“start”时,为什么他必须将“start”赋值给变量“next”?他为什么不这么做

def runner(map, start):


     while True:
         room = map[start]
         print "\n-------"
         start = room()

因为这个功能似乎也起作用。谢谢

第二个例子很管用,是的,但他正试图写一本Python教程风格的书,我认为第一个例子更清楚地说明了到底发生了什么<当变量名不再是实际的
start
,而是我们要进入的
下一个
房间时,code>start
就失去了意义。

我想这只是为了可读性。在编写代码时,应始终记住变量(以及函数、类等)应始终具有有意义的名称,否则读取代码将是一场噩梦。循环中变量的含义是保存下一个项,而不是开始项。

我认为这样做是为了可读性。在程序员的心目中,
start
应该代表某件事情的开始<代码>下一个
应该代表下一个项目

您认为代码可以缩短是正确的,但它会破坏
start
的含义


请注意,在当前版本的Python(2.6或更高版本)中,
next
是一个内置函数,因此为变量命名
next
不再是一个好主意,他不必这样做,但出于命名风格的考虑。

尽管这本书远不是最常用和推荐的Python教程,这是一个大幅度的问题,我们得到最多的“嗯?”关于这里的问题等等。试试看。只是用同样的功能帮助了一位同事。在这个练习中,我认为还有一些地方可以改进:-使用“map”作为变量名,-“ROOMS”字典键是字符串,与它们的值完全匹配。谢谢。很高兴知道。我真的以为我错过了什么。堆积如山的岩石!我会回来的;)非常感谢。我正在使用Python2.6。Zed实际上谈到了不使用内置函数作为变量,例如map。我会记下来的。