26. 修改代码
源代码在 https://learnpythonthehardway.org/book/exercise26.txt
Code
一修改发现很多错是看不出来的,掌握的还是不牢固。
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 good\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)
结果
Let's practice everything.
You'd need to know 'bout escapes with \ that do
newlines and tabs.
--------------
The lovely world
with logic so firmly planted
cannot discern
the needs of love
nor comprehend passion from intuition
and requires an explantion
where there is none.
--------------
This should be five: 6
With a starting point of: 10000
We'd have 5000000 jeans, 5000 jars, and 50 crates.
We can also do that this way:
We'd have 500000 beans, 500 jars, and 5 crabapples.
All
weight.
All
who
['All', 'come', 'good\tthings', 'those', 'to', 'weight.', 'who']
All
weight.
All
who
Process returned 0 (0x0) execution time : 0.049 s
问题
%d的用法
start_point = 10000
print ("With a starting point of: %d" % start_point)
本来以为是改成{ }嵌入的形式,后来发现这也是一种方法。
回顾一下格式化方法:
第一种格式化方法
print("With a starting point of :{}".format(start_point))
#It's just like with an f"" string
第二种在开头输入f,并嵌入变量
print(f"We'd have {beans} beans, {jars} jars, and {crates} crates.")
第三种
print("We can also do that this way.")
formula = secret_formula(start_point)
#this is an easy way to app;y a ;ist to a format string
#直接引用整个定义的formula
print("We'd have {} beans,{} jars, and {} crates.".format(*formula))