《笨办法学Python》 第25课手记

《笨办法学Python》 第25课手记

本节课内容较多,如果不理解可以先尝试做正确,然后再来理解。我们的学习已经由最初的简单向复杂转变了,希望你能咬牙坚持下来,只要能没有遗漏的学到最后,相信我们都能掌握好Python。同时通过这么长时间的学习,我理解了很多人喜欢Python的原因。因为相较与C家族,Python真的有一种简洁的美感,而且易懂。

原代码如下:

def break_words(stuff):
   """This function break up words for us."""
   words = stuff.split(' ')
   return words

def sort_words(words):
   """sorts the words."""
   return sorted(words)

def print_first_word(words):
   """prints the first word after popping it off."""
   word = words.pop(0)
   print word

def print_last_word(words):
   """Prints the last word after popping it off."""
   word = words.pop(-1)
   print word

def sort_sentence(sentence):
   """Takes in a full sentence and returns the sorted words."""
   words = break_words(sentence)
   return sort_words(words)

def print_first_and_last(sentence):
   """Prints the first and last words of the sentence."""
   words = break_words(sentence)
   print_first_word(words)
   print_last_word(words)

def print_first_and_last_sorted(sentence):
   """Sorted the words then prints the first and last one."""
   words = sort_sentence(sentence)
   print_first_word(words)
   print_last_word(words)

这段代码定义了7个函数,里面用”“”括起来的英文解释了每个函数的功能。

而且在命令行界面输入help(函数名)可以调出”“”里面的内容,因此可以看做是帮助文档。由此可以窥见预定义函数可能也是以该种形式定义的。

这段代码涉及的新的用法:

def sort_sentence(sentence):
   """Takes in a full sentence and returns the sorted words."""
   words = break_words(sentence)
   return sort_words(words)

在一个函数的定义中调用了另一个函数,注意调用的函数必须是先前定义的,即遵循先定义再调用的顺序。这里不同于C语言可以先写一个函数声明,然后可以将函数定义写到后面的做法。

这里的7个函数实际上组成了一个模组,这和我们过去使用sys模组类似,但sys是预先就定义好的,ex25这个模组,是我们自己手动定义的。是不是感觉很棒呢!你现在已经可以自己定义模组了呢!

结果如下:
这里写图片描述
(>>>是你手动输入的内容,其他的是解释器输出的内容)

在这里面有两处与书中给出的结果不一样的地方:

1.
这里写图片描述

这是因为我将words打成了wrods而引起的错误,如果你是对的,则不会出现图片中的内容。

2.
这里写图片描述

这里的^D是在键盘上按下Ctrl+D的意思,但这里出错是因为Windows Power Shell环境下退出是Ctrl+Z,所以^Z才是正确用法。当出现PS C:\Users\你电脑的用户名时,说明当前处于无任何操作状态,在这里表示成功退出。

以该种方式运行之后,ex25.py所在文件夹会自动生成一个叫ex25.pyc的文件

这里写图片描述

本节课涉及的知识:

1.stuff.split(’ ‘),以空格为标志分割字符串,默认全部分割,可以在括号里”后面指定参数以使解释器按规定次数分割。

比如stuff.split(”,1)只分割一次,分割结果是’All’和’good things come to those who wait.’

2.sorted(words),以字母表顺序为依据将words变量所包含的字符串中的英文单词进行排序,英文句号在该过程中将被舍弃。

3.word = words.pop(0),弹出一个元素后关闭,括号内的参数表示弹出元素的位置。0代表第一个,-1代表最后一个。暂不清楚单位是不是之前类似的字节,之前碰到位置参数时,数字代表的是第几个字节数。请记住这种用法,也记住这个疑问。稍后再碰到一些具体的例子就能理解了。

4.用法:先排序,在输出第一个或者最后一个,是求最值的常用方法,SQL语言中可以先将SC表中的Grade降序排序,然后输出第一个求最高分。也请记住这种用法。

posted @ 2016-01-27 22:44  从流域到海域  阅读(47)  评论(0编辑  收藏  举报