前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >《笨办法学Python》 第25课手记

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

作者头像
Steve Wang
发布2018-02-05 16:31:25
6370
发布2018-02-05 16:31:25
举报
文章被收录于专栏:从流域到海域从流域到海域

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

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

原代码如下:

代码语言:javascript
复制
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(函数名)可以调出”“”里面的内容,因此可以看做是帮助文档。由此可以窥见预定义函数可能也是以该种形式定义的。

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

代码语言:javascript
复制
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降序排序,然后输出第一个求最高分。也请记住这种用法。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年01月27日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 《笨办法学Python》 第25课手记
  • 本节课涉及的知识:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档