习题 24:更多练习
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 explanation \n\t\twhere there is none. """ print("--------") print(poem) print("--------") five = 10 - 2 + 3 - 6 print("This shouble be five: %s" % 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 beans, %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 crates." % secret_formula(start_point))
习题 25:更多更多的实践
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 agter 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)
cmd 输入 python 进入Python 解释器
把 ex25.py 当做了一个“模块”来使用,在 import 的时候不需要加 .py 后缀,模块里定义的函数也可以直接调用出来。
sorted() 函数对所有可迭代的对象进行排序操作。
sort() 与 sorted() 的区别:sort() 是应用在 list 上的方法,sorted() 可以对所有可迭代的对象进行排序操作。
list 的 sort() 方法返回的是对已经存在的列表进行操作,而内建函数 sorted() 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
pop() 从列表删除某个元素,一个参数:删除元素的索引值。
Python 索引值从 0 开始,-1 表示最后一个索引值。
split() 通过指定分隔符对字符串进行切片。
常见问题回答:
这个问题有点复杂,不过在这里 words 是一个列表,可以对它进行操作,操作结果也可以保存下来,这和操作文件 file.readline() 时的工作原理差不多。函数里的代码不是只在函数里有效吗?为什么 words.pop(0) 这个函数会改变 words 的内容?