加分习题
研究答案中没有分析过的行,找出它们的来龙去脉。确认自己明白了自己使用的是模组 ex25 中定义的函数。
试着执行 help(ex25) 和 help(ex25.break_words) 。这是你得到模组帮助文档的方式。 所谓帮助文档就是你定义函数时放在 """之间的东西,它们也被称作 documentation comments (文档注解),后面你还会看到更多类似的东西。
重复键入 ex25. 是很烦的一件事情。有一个捷径就是用 from ex25 import * 的方式导入模组。这相当于说:“我要把 ex25 中所有的东西 import 进来。”程序员喜欢说这样的倒装句,开一个新的会话,看看你所有的函数是不是已经在那里了。
把你脚本里的内容逐行通过 python 编译器执行,看看会是什么样子。你可以执行CTRL-D (Windows 下是 CTRL-Z)来关闭编译器。
习题练习
1.
2.
3.
4.
1 defbreak_words(stuff):2 """This function will break up words for us."""
3 words = stuff.split(' ') #split(' ') 函数以空格为标志分割字符串,默认全部分割
4 returnwords5
6 defsort_words(words):7 """Sorts the words."""
8 return sorted(words) #sorted(words),以字母表顺序为依据将words变量所包含的字符串中的英文单词进行排序,英文句号在该过程中将被舍弃。
9
10 defprint_first_word(words):11 """Prints the first word afterpopping it off."""
12 word = words.pop(0) #pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
13 print word #打印变量 word 的内容
14
15 defprint_last_word(words):16 """Prints the last word after poping it off."""
17 word = words.pop(-1) #pop(-1) 删除最后一个元素,并把该元素赋予变量 word
18 print word #打印变量 word 的内容,不同函数内变量不一样
19
20 defsort_sentence(sentence):21 """Takes in a full sentence and returns the sorted words."""
22 words =break_words(sentence)23 returnsort_words(words)24
25 defprint_first_and_last(sentence):26 """Prints the first and last words of the sentence."""
27 words =break_words(sentence)28 print_first_word(words)29 print_last_word(words)30
31 defprint_first_and_last_sorted(sentence):32 """Sorts the words then prints the first and last one."""
33 words =sort_sentence(sentence)34 print_first_word(words)35 print_last_word(words)
本节课涉及的知识:
(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降序排序,然后输出第一个求最高分。也请记住这种用法。