习题 18: 命名、变量、代码、函数
# this one is like your scripts with argv
def print_two(*args):
arg1,arg2 =args
print("arg1:%r, arg2:%r"% (arg1,arg2))
# ok, that *args is actually pointless, we can just do this
def print_two_again(arg1,arg2):
print("arg1:%r, arg2:%r"% (arg1,arg2))
#this just takes one argument
def print_one(arg1):
print("arg1:%r"% arg1)
#this one takes no arguments
def print_none():
print("I got nothing.")
print_two("Zed","Shaw")
print_two_again("Zed","Shaw")
print_one("First!")
print_none()
习题 19: 函数和变量
def cheese_and_crackers(cheese_count,boxer_of_crackers):
print("You have %d cheeses!"% cheese_count)
print("You have %d boxes of crackers!"% boxer_of_crackers)
print("Man that's enough for a party!")
print("Get a blanket.\n")
print("We can just give the function numbers directly:")
cheese_and_crackers(20,30)
print("OR, we can use variables from our script:")
amount_of_cheese =10
amount_of_crackers =50
cheese_and_crackers(amount_of_cheese,amount_of_crackers)
print("We can even do math inside too:")
cheese_and_crackers(10+20,5+6)
print('And we can combine the two, variables and math:')
cheese_and_crackers(amount_of_cheese +100,amount_of_crackers +1000)
习题 20: 函数和文件
fromsysimportargv
script,input_file = argv
def print_all(f):
print(f.read())
def rewind(f):
f.seek(0)
def print_a_line(line_count,f):
print(line_count,f.readline())
current_file =open(input_file)
print("First let's print the whole file:\n")
print_all(current_file)
print("Now let's rewind, kind of like a tape.")
rewind(current_file)
print("Let's print three lines:")
current_line =1
print_a_line(current_line,current_file)
current_line = current_line +1
print_a_line(current_line,current_file)
current_line = current_line +1
print_a_line(current_line,current_file)
习题 21: 函数可以返回东西
def add(a,b):
print("ADDING %d + %d"% (a,b))
returna + b
def subtract(a,b):
print("SUBTRACTING %d - %d"% (a,b))
returna - b
def multiply(a,b):
print("MULTIPLING %d * %d"% (a,b))
returna * b
def divede(a,b):
print("DIVIDING %d /%d"% (a,b))
returna / b
print("Let's do some math with just functions!")
age = add(30,5)
height = subtract(78,4)
weight = multiply(90,2)
iq = divede(100,2)
print("Age:%d ,Height:%d, Weight:%d ,IQ:%d"% (age,height,weight,iq))
# A puzzle for the extra credit, type it in anyway.
print("Here is a puzzle.")
what = add(age,subtract(height,multiply(weight,divede(iq,2))))
print("That becomes: ",what,"Can you do it by hand?")
习题 22: 到现在你学到了哪些东西?
/
习题 23:读代码
/
习题 24: 更多练习
print("Let's practice everyting.")
print("You\'d need to know\'bout escapes with\\that do\nnewlines and\ttabs.")
#\n 换行 \t缩进
poem ="""
\tThe lovely world
with logic so firmly planted
cannot discern\nthe 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 should be five: %s "% five)
def secrdt_formula(started):
jelly_beans = started *500
jars = jelly_beans /1000
crates = jars /100
returnjelly_beans,jars,crates
start_point =10000
beans,jars,crates = secrdt_formula(start_point)
print("With a starting point of :%d"% start_point)
print("We'd have %d beans, %d jar, 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."% secrdt_formula(start_point))
习题 25: 更多更多的练习
def break_words(stuff):
"""This function will break up words for us."""
words = stuff.split(' ')
returnwords
def sort_words(words):
"""Sorts the words."""
returnsorted(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)
returnsort_words()
def print_first_and_last(sentence):
"""Printes 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)
习题 26: 恭喜你,现在可以考试了!
def break_words(stuff):
"""This function will break up words for us."""
words = stuff.split(' ')
returnwords
def sort_words(words):
"""Sorts the words."""
returnsorted(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)
returnsort_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\nnewlines and\ttabs.')
poem ="""
\tThe lovely world
with logic so firmly planted
cannot discern\nthe 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: %s"% five)
def secret_formula(started):
jelly_beans = started *500
jars = jelly_beans /1000
crates = jars /100
returnjelly_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."
importex25
words = ex25.break_words(sentence)
sorted_words = ex25.sort_words(words)
print_first_word(words)
print_last_word(words)
print_first_word(sorted_words)
print_last_word(sorted_words)
sorted_words = ex25.break_words(sentence)
print(sorted_words)
print_first_and_last(sentence)
print_first_and_last_sorted(sentence)