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


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

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

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

下面的练习就是修改一个坏的程序员的代码。我把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

相关内容

    暂无相关文章

评论关闭