Calls.html 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406
  1. ---
  2. redirect_from:
  3. - "/chapters/03/3/calls"
  4. interact_link: content/chapters/03/3/Calls.ipynb
  5. kernel_name: python3
  6. has_widgets: false
  7. title: |-
  8. Call Expressions
  9. prev_page:
  10. url: /chapters/03/2/1/Growth.html
  11. title: |-
  12. Example: Growth Rates
  13. next_page:
  14. url: /chapters/03/4/Introduction_to_Tables.html
  15. title: |-
  16. Introduction to Tables
  17. comment: "***PROGRAMMATICALLY GENERATED, DO NOT EDIT. SEE ORIGINAL FILES IN /content***"
  18. ---
  19. <div class="jb_cell">
  20. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  21. <div class="text_cell_render border-box-sizing rendered_html">
  22. <h1 id="Call-Expressions">Call Expressions<a class="anchor-link" href="#Call-Expressions"> </a></h1><p><em>Call expressions</em> invoke functions, which are named operations. The name of the function appears first, followed by expressions in parentheses.</p>
  23. </div>
  24. </div>
  25. </div>
  26. </div>
  27. <div class="jb_cell">
  28. <div class="cell border-box-sizing code_cell rendered">
  29. <div class="input">
  30. <div class="inner_cell">
  31. <div class="input_area">
  32. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">abs</span><span class="p">(</span><span class="o">-</span><span class="mi">12</span><span class="p">)</span>
  33. </pre></div>
  34. </div>
  35. </div>
  36. </div>
  37. <div class="output_wrapper">
  38. <div class="output">
  39. <div class="jb_output_wrapper }}">
  40. <div class="output_area">
  41. <div class="output_text output_subarea output_execute_result">
  42. <pre>12</pre>
  43. </div>
  44. </div>
  45. </div>
  46. </div>
  47. </div>
  48. </div>
  49. </div>
  50. <div class="jb_cell">
  51. <div class="cell border-box-sizing code_cell rendered">
  52. <div class="input">
  53. <div class="inner_cell">
  54. <div class="input_area">
  55. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">round</span><span class="p">(</span><span class="mi">5</span> <span class="o">-</span> <span class="mf">1.3</span><span class="p">)</span>
  56. </pre></div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class="output_wrapper">
  61. <div class="output">
  62. <div class="jb_output_wrapper }}">
  63. <div class="output_area">
  64. <div class="output_text output_subarea output_execute_result">
  65. <pre>4</pre>
  66. </div>
  67. </div>
  68. </div>
  69. </div>
  70. </div>
  71. </div>
  72. </div>
  73. <div class="jb_cell">
  74. <div class="cell border-box-sizing code_cell rendered">
  75. <div class="input">
  76. <div class="inner_cell">
  77. <div class="input_area">
  78. <div class=" highlight hl-ipython3"><pre><span></span><span class="nb">max</span><span class="p">(</span><span class="mi">2</span><span class="p">,</span> <span class="mi">2</span> <span class="o">+</span> <span class="mi">3</span><span class="p">,</span> <span class="mi">4</span><span class="p">)</span>
  79. </pre></div>
  80. </div>
  81. </div>
  82. </div>
  83. <div class="output_wrapper">
  84. <div class="output">
  85. <div class="jb_output_wrapper }}">
  86. <div class="output_area">
  87. <div class="output_text output_subarea output_execute_result">
  88. <pre>5</pre>
  89. </div>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="jb_cell">
  97. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  98. <div class="text_cell_render border-box-sizing rendered_html">
  99. <p>In this last example, the <code>max</code> function is <em>called</em> on three <em>arguments</em>: 2, 5, and 4. The value of each expression within parentheses is passed to the function, and the function <em>returns</em> the final value of the full call expression. The <code>max</code> function can take any number of arguments and returns the maximum.</p>
  100. <p>A few functions are available by default, such as <code>abs</code> and <code>round</code>, but most functions that are built into the Python language are stored in a collection of functions called a <em>module</em>. An <em>import statement</em> is used to provide access to a module, such as <code>math</code> or <code>operator</code>.</p>
  101. </div>
  102. </div>
  103. </div>
  104. </div>
  105. <div class="jb_cell">
  106. <div class="cell border-box-sizing code_cell rendered">
  107. <div class="input">
  108. <div class="inner_cell">
  109. <div class="input_area">
  110. <div class=" highlight hl-ipython3"><pre><span></span><span class="kn">import</span> <span class="nn">math</span>
  111. <span class="kn">import</span> <span class="nn">operator</span>
  112. <span class="n">math</span><span class="o">.</span><span class="n">sqrt</span><span class="p">(</span><span class="n">operator</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="mi">4</span><span class="p">,</span> <span class="mi">5</span><span class="p">))</span>
  113. </pre></div>
  114. </div>
  115. </div>
  116. </div>
  117. <div class="output_wrapper">
  118. <div class="output">
  119. <div class="jb_output_wrapper }}">
  120. <div class="output_area">
  121. <div class="output_text output_subarea output_execute_result">
  122. <pre>3.0</pre>
  123. </div>
  124. </div>
  125. </div>
  126. </div>
  127. </div>
  128. </div>
  129. </div>
  130. <div class="jb_cell">
  131. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  132. <div class="text_cell_render border-box-sizing rendered_html">
  133. <p>An equivalent expression could be expressed using the <code>+</code> and <code>**</code> operators instead.</p>
  134. </div>
  135. </div>
  136. </div>
  137. </div>
  138. <div class="jb_cell">
  139. <div class="cell border-box-sizing code_cell rendered">
  140. <div class="input">
  141. <div class="inner_cell">
  142. <div class="input_area">
  143. <div class=" highlight hl-ipython3"><pre><span></span><span class="p">(</span><span class="mi">4</span> <span class="o">+</span> <span class="mi">5</span><span class="p">)</span> <span class="o">**</span> <span class="mf">0.5</span>
  144. </pre></div>
  145. </div>
  146. </div>
  147. </div>
  148. <div class="output_wrapper">
  149. <div class="output">
  150. <div class="jb_output_wrapper }}">
  151. <div class="output_area">
  152. <div class="output_text output_subarea output_execute_result">
  153. <pre>3.0</pre>
  154. </div>
  155. </div>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. </div>
  161. <div class="jb_cell">
  162. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  163. <div class="text_cell_render border-box-sizing rendered_html">
  164. <p>Operators and call expressions can be used together in an expression. The <em>percent difference</em> between two values is used to compare values for which neither one is obviously <code>initial</code> or <code>changed</code>. For example, in 2014 Florida farms produced 2.72 billion eggs while Iowa farms produced 16.25 billion eggs (<a href="http://quickstats.nass.usda.gov/">http://quickstats.nass.usda.gov/</a>). The percent difference is 100 times the absolute value of the difference between the values, divided by their average. In this case, the difference is larger than the average, and so the percent difference is greater than 100.</p>
  165. </div>
  166. </div>
  167. </div>
  168. </div>
  169. <div class="jb_cell">
  170. <div class="cell border-box-sizing code_cell rendered">
  171. <div class="input">
  172. <div class="inner_cell">
  173. <div class="input_area">
  174. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">florida</span> <span class="o">=</span> <span class="mf">2.72</span>
  175. <span class="n">iowa</span> <span class="o">=</span> <span class="mf">16.25</span>
  176. <span class="mi">100</span><span class="o">*</span><span class="nb">abs</span><span class="p">(</span><span class="n">florida</span><span class="o">-</span><span class="n">iowa</span><span class="p">)</span><span class="o">/</span><span class="p">((</span><span class="n">florida</span><span class="o">+</span><span class="n">iowa</span><span class="p">)</span><span class="o">/</span><span class="mi">2</span><span class="p">)</span>
  177. </pre></div>
  178. </div>
  179. </div>
  180. </div>
  181. <div class="output_wrapper">
  182. <div class="output">
  183. <div class="jb_output_wrapper }}">
  184. <div class="output_area">
  185. <div class="output_text output_subarea output_execute_result">
  186. <pre>142.6462836056932</pre>
  187. </div>
  188. </div>
  189. </div>
  190. </div>
  191. </div>
  192. </div>
  193. </div>
  194. <div class="jb_cell">
  195. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  196. <div class="text_cell_render border-box-sizing rendered_html">
  197. <p>Learning how different functions behave is an important part of learning a programming language. A Jupyter notebook can assist in remembering the names and effects of different functions. When editing a code cell, press the <em>tab</em> key after typing the beginning of a name to bring up a list of ways to complete that name. For example, press <em>tab</em> after <code>math.</code> to see all of the functions available in the <code>math</code> module. Typing will narrow down the list of options. To learn more about a function, place a <code>?</code> after its name. For example, typing <code>math.log?</code> will bring up a description of the <code>log</code> function in the <code>math</code> module.</p>
  198. </div>
  199. </div>
  200. </div>
  201. </div>
  202. <div class="jb_cell">
  203. <div class="cell border-box-sizing code_cell rendered">
  204. <div class="input">
  205. <div class="inner_cell">
  206. <div class="input_area">
  207. <div class=" highlight hl-ipython3"><pre><span></span>math.log<span class="o">?</span>
  208. </pre></div>
  209. </div>
  210. </div>
  211. </div>
  212. </div>
  213. </div>
  214. <div class="jb_cell">
  215. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  216. <div class="text_cell_render border-box-sizing rendered_html">
  217. <pre><code>log(x[, base])
  218. Return the logarithm of x to the given base.
  219. If the base not specified, returns the natural logarithm (base e) of x.</code></pre>
  220. </div>
  221. </div>
  222. </div>
  223. </div>
  224. <div class="jb_cell">
  225. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  226. <div class="text_cell_render border-box-sizing rendered_html">
  227. <p>The square brackets in the example call indicate that an argument is optional. That is, <code>log</code> can be called with either one or two arguments.</p>
  228. </div>
  229. </div>
  230. </div>
  231. </div>
  232. <div class="jb_cell">
  233. <div class="cell border-box-sizing code_cell rendered">
  234. <div class="input">
  235. <div class="inner_cell">
  236. <div class="input_area">
  237. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">16</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span>
  238. </pre></div>
  239. </div>
  240. </div>
  241. </div>
  242. <div class="output_wrapper">
  243. <div class="output">
  244. <div class="jb_output_wrapper }}">
  245. <div class="output_area">
  246. <div class="output_text output_subarea output_execute_result">
  247. <pre>4.0</pre>
  248. </div>
  249. </div>
  250. </div>
  251. </div>
  252. </div>
  253. </div>
  254. </div>
  255. <div class="jb_cell">
  256. <div class="cell border-box-sizing code_cell rendered">
  257. <div class="input">
  258. <div class="inner_cell">
  259. <div class="input_area">
  260. <div class=" highlight hl-ipython3"><pre><span></span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">16</span><span class="p">)</span><span class="o">/</span><span class="n">math</span><span class="o">.</span><span class="n">log</span><span class="p">(</span><span class="mi">2</span><span class="p">)</span>
  261. </pre></div>
  262. </div>
  263. </div>
  264. </div>
  265. <div class="output_wrapper">
  266. <div class="output">
  267. <div class="jb_output_wrapper }}">
  268. <div class="output_area">
  269. <div class="output_text output_subarea output_execute_result">
  270. <pre>4.0</pre>
  271. </div>
  272. </div>
  273. </div>
  274. </div>
  275. </div>
  276. </div>
  277. </div>
  278. <div class="jb_cell">
  279. <div class="cell border-box-sizing text_cell rendered"><div class="inner_cell">
  280. <div class="text_cell_render border-box-sizing rendered_html">
  281. <p>The list of <a href="https://docs.python.org/3/library/functions.html">Python's built-in functions</a> is quite long and includes many functions that are never needed in data science applications. The list of <a href="https://docs.python.org/3/library/math.html">mathematical functions in the <code>math</code> module</a> is similarly long. This text will introduce the most important functions in context, rather than expecting the reader to memorize or understand these lists.</p>
  282. </div>
  283. </div>
  284. </div>
  285. </div>