习题 25: 更多更多的练习?

我们将做一些关于函数和变量的练习,以确认你真正掌握了这些知识。这节练习对你来说可以说是一本道:写程序,逐行研究,弄懂它。

不过这节练习还是有些不同,你不需要运行它,取而代之,你需要将它导入到 python 里通过自己执行函数的方式运行。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
def break_words(stuff):
    """This function will 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):
    """Sorts the words then prints the first and last one."""
    words = sort_sentence(sentence)
    print_first_word(words)
    print_last_word(words)

首先以正常的方式 python ex25.py 运行,找出里边的错误,并把它们都改正过来。然后你需要接着下面的答案章节完成这节练习。

你应该看到的结果?

这节练习我们将在你之前用来做算术的 python 编译器里,用交互的方式和你的.py 作交流。

这是我做出来的样子:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$ python
Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ex25
>>> sentence = "All good things come to those who wait."
>>> words = ex25.break_words(sentence)
>>> words
['All', 'good', 'things', 'come', 'to', 'those', 'who', 'wait.']
>>> sorted_words = ex25.sort_words(words)
>>> sorted_words
['All', 'come', 'good', 'things', 'those', 'to', 'wait.', 'who']
>>> ex25.print_first_word(words)
All
>>> ex25.print_last_word(words)
wait.
>>> wrods
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'wrods' is not defined
>>> words
['good', 'things', 'come', 'to', 'those', 'who']
>>> ex25.print_first_word(sorted_words)
All
>>> ex25.print_last_word(sorted_words)
who
>>> sorted_words
['come', 'good', 'things', 'those', 'to', 'wait.']
>>> sorted_words = ex25.sort_sentence(sentence)
>>> sorted_words
['All', 'come', 'good', 'things', 'those', 'to', 'wait.', 'who']
>>> ex25.print_first_and_last(sentence)
All
wait.
>>> ex25.print_first_and_last_sorted(sentence)
All
who
>>> ^D
$

我们来逐行分析一下每一步实现的是什么:

  • 在第 5 行你将自己的 ex25.py 执行了 import,和你做过的其它 import 一样。在 import 的时候你不需要加 .py 后缀。这个过程里,你把 ex25.py 当做了一个“模组(module)”来使用,你在这个模组里定义的函数也可以直接调用出来。
  • 第 6 行你创建了一个用来处理的“句子(sentence)”。
  • 第 7 行你使用 ex25 调用你的第一个函数 ex25.break_words。其中的 . (dot, period)符号可以告诉 Python:“嗨,我要运行 ex25 里的哪个个叫 break_words 的函数!”
  • 第 8 行我们只是输入 words,而 python 将在第 9 行打印出这个变量里边有什么。看上去可能会觉得奇怪,不过这其实是一个“列表(list)”,你会在后面的章节中学到它。
  • 10-11 行我们使用 ex25.sort_words 来得到一个排序过的句子。
  • 13-16 行我们使用 ex25.print_first_wordex25.print_last_word 将第一个和最后一个词打印出来。
  • 第 17 行比较有趣。我把 words 变量写错成了 wrods,所以 python 在 18-20 行给了一个错误信息。
  • 21-22 行我们打印出了修改过的词汇列表。第一个和最后一个单词我们已经打印过了,所以在这里没有再次打印出来。

剩下的行你需要自己分析一下,就留作你的加分习题了。

加分习题?

  1. 研究答案中没有分析过的行,找出它们的来龙去脉。确认自己明白了自己使用的是模组 ex25 中定义的函数。
  2. 试着执行 help(ex25)help(ex25.break_words) 。这是你得到模组帮助文档的方式。 所谓帮助文档就是你定义函数时放在 """ 之间的东西,它们也被称作 documentation comments (文档注解),后面你还会看到更多类似的东西。
  3. 重复键入 ex25. 是很烦的一件事情。有一个捷径就是用 from ex25 import * 的方式导入模组。这相当于说:“我要把 ex25 中所有的东西 import 进来。”程序员喜欢说这样的倒装句,时时彩计划软件公式:开一个新的会话,看看你所有的函数是不是已经在那里了。
  4. 把你脚本里的内容逐行通过 python 编译器执行,看看会是什么样子。你可以执行CTRL-D (Windows 下是 CTRL-Z)来关闭编译器。

Project Versions

Table Of Contents

Previous topic

习题 24: 更多练习

Next topic

习题 26: 恭喜你,现在可以考试了!

This Page

时时彩娱乐平台有哪些 时时彩选胆是什么意思 福少—时时彩 时时彩是不是骗局lm0 江西时时彩投注视频
重庆时时彩平台出租 怎么注册优游娱乐 时时彩平台架设是什么 重庆时时彩在哪个平台 天津时时彩
时时彩走势图 网上的时时彩骗局揭秘 重庆时时彩新手资料 微信重庆时时彩群真假 邢台时时彩开奖视频
北京pk10正规平台平台 时时彩戒赌日记 内蒙古时时彩稳赚银狐娱乐 内蒙古时时彩 重庆时时彩fc平台骗局
吉林快3大小预测 qq游戏中有梭哈吗 新梦彩票 北京赛车聚彩 河北快三走势图
湖南快乐10分中奖规则 小蝌蚪找妈妈故事 北京pk拾直播 贵州11选5预测推荐 福建36选7中奖说明
曾道人玄机 北京pk10开奖视频 北京11选5综合走势图 码报开奖结果官网 75秒秒速赛车是哪里开
江苏快3今天推荐号码 安徽快3网购 云南时时彩11选5开奖结果走势图 双色球字谜图谜 推荐你个pk10信誉平台