ThinkSSL🔒 一键申购 5分钟快速签发 30天无理由退款 购买更放心 广告
# 习题 19: 函数和变量 函数这个概念也许承载了太多的信息量,不过别担心。只要坚持做这些练习,对照上个练习中的检查点检查一遍这次的联系,你最终会明白这些内容的。 有一个你可能没有注意到的细节,我们现在强调一下:函数里边的变量和脚本里边的变量之间是没有连接的。下面的这个练习可以让你对这一点有更多的思考: <table class="highlighttable"><tbody><tr><td class="linenos"> <div class="linenodiv"> <pre> 1&#13; 2&#13; 3&#13; 4&#13; 5&#13; 6&#13; 7&#13; 8&#13; 9&#13; 10&#13; 11&#13; 12&#13; 13&#13; 14&#13; 15&#13; 16&#13; 17&#13; 18&#13; 19&#13; 20&#13; 21&#13; 22&#13; 23&#13; 24</pre> </div> </td> <td class="code"> <div class="highlight"> <pre>def cheese_and_crackers(cheese_count, boxes_of_crackers):&#13; print "You have %d cheeses!" % cheese_count&#13; print "You have %d boxes of crackers!" % boxes_of_crackers&#13; print "Man that's enough for a party!"&#13; print "Get a blanket.\n"&#13; &#13; &#13; print "We can just give the function numbers directly:"&#13; cheese_and_crackers(20, 30)&#13; &#13; &#13; print "OR, we can use variables from our script:"&#13; amount_of_cheese = 10&#13; amount_of_crackers = 50&#13; &#13; cheese_and_crackers(amount_of_cheese, amount_of_crackers)&#13; &#13; &#13; print "We can even do math inside too:"&#13; cheese_and_crackers(10 + 20, 5 + 6)&#13; &#13; &#13; print "And we can combine the two, variables and math:"&#13; cheese_and_crackers(amount_of_cheese + 100, amount_of_crackers + 1000)&#13; </pre> </div> </td> </tr></tbody></table> 通过这个练习,你看到我们给我们的函数 cheese_and_crackers 很多的参数,然后在函数里把它们打印出来。我们可以在函数里用变量名,我们可以在函数里做运算,我们甚至可以将变量和运算结合起来。 从一方面来说,函数的参数和我们的生成变量时用的 = 赋值符类似。事实上,如果一个物件你可以用 = 将其命名,你通常也可以将其作为参数传递给一个函数。 ### 你应该看到的结果 你应该研究一下脚本的输出,和你想象的结果对比一下看有什么不同。 ~~~ $ python ex19.py We can just give the function numbers directly: You have 20 cheeses! You have 30 boxes of crackers! Man that's enough for a party! Get a blanket. OR, we can use variables from our script: You have 10 cheeses! You have 50 boxes of crackers! Man that's enough for a party! Get a blanket. We can even do math inside too: You have 30 cheeses! You have 11 boxes of crackers! Man that's enough for a party! Get a blanket. And we can combine the two, variables and math: You have 110 cheeses! You have 1050 boxes of crackers! Man that's enough for a party! Get a blanket. $ ~~~ ### 加分习题 1. 倒着将脚本读完,在每一行上面添加一行注解,说明这行的作用。 1. 从最后一行开始,倒着阅读每一行,读出所有的重要字符来。 1. 自己编至少一个函数出来,然后用10种方法运行这个函数。