首页 > 程序开发 > Web开发 > Python >

Learn Python The Hard Way学习(26) - 恭喜,可以进行期中考试了!

2012-06-27

我们已经学习到差不多一半了,下半部分会更加有意思,我们会学习逻辑判断。在进行下半部分的学习前,我们先做一个测试,这个测试会有点难,我们要修改别人的代码。作为程序员,不可避免要修改别人的代码,而这些...

我们已经学习到差不多一半了,下半部分会更加有意思,我们会学习逻辑判断。

在进行下半部分的学习前,我们先做一个测试,这个测试会有点难,我们要修改别人的代码。作为程序员,不可避免要修改别人的代码,而这些人往往认为自己的代码是完美的。

这些人是愚蠢的,并且不在乎别人的感受。好的程序员就像科学家,要经常质疑自己的代码。好的程序员会先怀疑自己的代码错误,并且仔细检查无误后,才得出别人代码有错的结论。

下面的练习就是修改一个坏的程序员的代码。我把24和25节的代码胡乱拷贝到一个文件中,并且随机加了一些错误。大部分错误python都会告诉你,一些算数,格式和拼写错用需要你自己找出来。

所有这些错误都是很容易犯,有经验的程序员也不例外。

在这个练习中,使用自己的经验修复所有错误,让程序能完美运行,不要寻求帮助,如果被卡住了,休息一下再回来解决。

就算需要几天才能完成,也要坚持完成。

拷贝下面网址中的代码到ex26.py中,开始修改吧:
www.2cto.com

我修改后的代码(这里不是翻译内容):
[python]
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)




print "Let's practice everything."
print 'You\'d need to know \'bout escapes with \\ that do \n newlines and \t tabs.'


poem = """
\tThe lovely world
with logic so firmly planted
cannot discern \n the needs of love
nor comprehend passion from intuition
and requires an explantion
\n\t\twhere there is none.
"""




print "--------------"
print poem
print "--------------"


five = 10 - 2 + 3 - 5
print "This should be five: %d" % five


def secret_formula(started):
jelly_beans = started * 500
jars = jelly_beans / 1000
crates = jars / 100
return jelly_beans, jars, crates




start_point = 10000
beans, jars, crates = secret_formula(start_point)


print "With a starting point of: %d" % start_point
print "We'd have %d jeans, %d jars, and %d crates." % (beans, jars, crates)


start_point = start_point / 10


print "We can also do that this way:"
print "We'd have %d beans, %d jars, and %d crabapples." % secret_formula(start_point)




sentence = "All god\tthings come to those who weight."


words = break_words(sentence)
sorted_words = sort_words(words)


print_first_word(words)
print_last_word(words)
print_first_word(sorted_words)
print_last_word(sorted_words)
sorted_words = sort_sentence(sentence)
print sorted_words


print_first_and_last(sentence)


print_first_and_last_sorted(sentence)

作者:lixiang0522

相关文章
最新文章
热点推荐