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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值