Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.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 Ex 25:函数中的局部变量/对象赋值_Python_Python 2.7 - Fatal编程技术网

艰苦学习Python Ex 25:函数中的局部变量/对象赋值

艰苦学习Python Ex 25:函数中的局部变量/对象赋值,python,python-2.7,Python,Python 2.7,我正在学习python2的基础知识,学习Zed Shaw的书《艰难地学习Python》。在练习25中,作者给出了一些函数,如: def break_words(sentence): words = sentence.split(' ') return words def print_first_word(words): word = words.pop(0) print word 我缩短了如下功能: def break_words(sentence):

我正在学习python2的基础知识,学习Zed Shaw的书《艰难地学习Python》。在练习25中,作者给出了一些函数,如:

def break_words(sentence):
    words = sentence.split(' ')
    return words

def print_first_word(words):
    word = words.pop(0)
    print word
我缩短了如下功能:

def break_words(sentence):
    return sentence.split(' ')

def print_first_word(sentence)
    print break_words(sentence).pop(0)
想知道作者是否有理由将.split()&.pop()指定给words/word


谢谢

我认为唯一的原因是可读性(在他们看来)

对于许多人来说,直接返回它们同样清晰,但这取决于编写代码的人或编写代码的人

你缩短它们的方法是我个人会赞同的,但这是一个偏好的问题

从以下方面获得指导:

Python之禅

美胜于丑。
显式比隐式好。
简单总比复杂好。
复杂总比复杂好。
平的比嵌套的好。
稀疏比密集好。
可读性很重要。
特殊情况不足以违反规则。
虽然实用胜过纯洁。
错误永远不应该悄无声息地过去。
除非明确沉默。
面对模棱两可的情况,拒绝猜测的诱惑。
应该有一个——最好只有一个——显而易见的方法来做到这一点。
虽然这种方式一开始可能并不明显,除非你是荷兰人。
现在总比没有好。
虽然永远都比现在好。
如果实现很难解释,那就不是个好主意。
如果实现很容易解释,这可能是一个好主意。
名称空间是一个非常好的主意——让我们做更多的工作吧


作为旁注,这里有一个复活节彩蛋,通过运行:
导入这个

可以将它打印到控制台上,只是为了清楚起见。你到底为什么要学习Python 2?它将在2020年达到其正式寿命。您应该在学习Python 3。然后,如果您需要Python 2来处理(或阅读)遗留代码,您可以学习它。@PM2Ring因为作者建议先学习Python 2。。。你让我感到困惑和沮丧:)FWIW,所谓的Python聊天室常客。如果它对你有用,那很好,但是请注意这本书有几个问题。我们对Zed在那本书中严厉的反Python 3立场印象不深。FWIW,他现在已经完成了Python3版本,但他仍然不是Python3的忠实粉丝。请注意,原始版本会给您留下一个缩短的
单词
列表,而您的版本将始终丢弃其余单词。