tryme3.py.xhtml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <!--
  3. h t t :: / / t /
  4. h t t :: // // t //
  5. h ttttt ttttt ppppp sssss // // y y sssss ttttt //
  6. hhhh t t p p s // // y y s t //
  7. h hh t t ppppp sssss // // yyyyy sssss t //
  8. h h t t p s :: / / y .. s t .. /
  9. h h t t p sssss :: / / yyyyy .. sssss t .. /
  10. <https://y.st./>
  11. Copyright © 2017 Alex Yst <mailto:copyright@y.st>
  12. This program is free software: you can redistribute it and/or modify
  13. it under the terms of the GNU General Public License as published by
  14. the Free Software Foundation, either version 3 of the License, or
  15. (at your option) any later version.
  16. This program is distributed in the hope that it will be useful,
  17. but WITHOUT ANY WARRANTY; without even the implied warranty of
  18. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  19. GNU General Public License for more details.
  20. You should have received a copy of the GNU General Public License
  21. along with this program. If not, see <https://www.gnu.org./licenses/>.
  22. -->
  23. <!DOCTYPE html>
  24. <html xmlns="http://www.w3.org/1999/xhtml">
  25. <head>
  26. <base href="https://y.st./en/coursework/CS1101/tryme3.py.xhtml" />
  27. <title>tryme3.py &lt;https://y.st./en/coursework/CS1101/tryme3.py.xhtml&gt;</title>
  28. <link rel="icon" type="image/png" href="/link/CC_BY-SA_4.0/y.st./icon.png" />
  29. <link rel="stylesheet" type="text/css" href="/link/basic.css" />
  30. <link rel="stylesheet" type="text/css" href="/link/site-specific.css" />
  31. <script type="text/javascript" src="/script/javascript.js" />
  32. <meta name="viewport" content="width=device-width" />
  33. </head>
  34. <body>
  35. <nav>
  36. <p>
  37. <a href="/en/">Home</a> |
  38. <a href="/en/a/about.xhtml">About</a> |
  39. <a href="/en/a/contact.xhtml">Contact</a> |
  40. <a href="/a/canary.txt">Canary</a> |
  41. <a href="/en/URI_research/"><abbr title="Uniform Resource Identifier">URI</abbr> research</a> |
  42. <a href="/en/opinion/">Opinions</a> |
  43. <a href="/en/coursework/">Coursework</a> |
  44. <a href="/en/law/">Law</a> |
  45. <a href="/en/a/links.xhtml">Links</a> |
  46. <a href="/en/coursework/CS1101/tryme3.py.xhtml.asc">{this page}.asc</a>
  47. </p>
  48. <hr/>
  49. <p>
  50. <a href="/en/coursework/BUS1101/" title="Principles of Business Management">BUS 1101</a> |
  51. <span class="hyperlink_unavailable" title="Basic Accounting">BUS 1102</span> |
  52. <span class="hyperlink_unavailable" title="Principles of Marketing">BUS 2201</span> |
  53. <span class="hyperlink_unavailable" title="Multinational Management">BUS 2207</span> |
  54. <span class="hyperlink_unavailable" title="Business and Society">BUS 3306</span> |
  55. <a href="/en/coursework/CS1101/" title="Programming Fundamentals">CS 1101</a> |
  56. <a href="/en/coursework/CS1102/" title="Programming 1">CS 1102</a> |
  57. <a href="/en/coursework/CS1103/" title="Programming 2">CS 1103</a> |
  58. <span class="hyperlink_unavailable" title="Computer Systems">CS 1104</span> |
  59. <a href="/en/coursework/CS2203/" title="Databases 1">CS 2203</a> |
  60. <span class="hyperlink_unavailable" title="Communications and Networking">CS 2204</span> |
  61. <a href="/en/coursework/CS2205/" title="Web Programming 1">CS 2205</a> |
  62. <a href="/en/coursework/CS2301/" title="Operating Systems 1">CS 2301</a> |
  63. <span class="hyperlink_unavailable" title="Software Engineering 1">CS 2401</span> |
  64. <span class="hyperlink_unavailable" title="Data Structures">CS 3303</span> |
  65. <span class="hyperlink_unavailable" title="Analysis of Algorithms">CS 3304</span> |
  66. <span class="hyperlink_unavailable" title="Web Programming 2">CS 3305</span> |
  67. <span class="hyperlink_unavailable" title="Databases 2">CS 3306</span> |
  68. <span class="hyperlink_unavailable" title="Operating Systems 2">CS 3307</span> |
  69. <span class="hyperlink_unavailable" title="Information Retrieval">CS 3308</span> |
  70. <span class="hyperlink_unavailable" title="Comparative Programming Languages">CS 4402</span> |
  71. <span class="hyperlink_unavailable" title="Software Engineering 2">CS 4403</span> |
  72. <span class="hyperlink_unavailable" title="Advanced Networking and Data Security">CS 4404</span> |
  73. <span class="hyperlink_unavailable" title="Mobile Applications">CS 4405</span> |
  74. <span class="hyperlink_unavailable" title="Computer Graphics">CS 4406</span> |
  75. <span class="hyperlink_unavailable" title="Data Mining and Machine Learning">CS 4407</span> |
  76. <span class="hyperlink_unavailable" title="Artificial Intelligence">CS 4408</span> |
  77. <span class="hyperlink_unavailable" title="English Composition 2">ENGL 1102</span> |
  78. <span class="hyperlink_unavailable" title="World Literature">ENGL 1405</span> |
  79. <span class="hyperlink_unavailable" title="Introduction to Environmental Science">ENVS 1301</span> |
  80. <a href="/en/coursework/HIST1421/" title="Greek and Roman Civilization">HIST 1421</a> |
  81. <span class="hyperlink_unavailable" title="College Algebra">MATH 1201</span> |
  82. <span class="hyperlink_unavailable" title="Calculus">MATH 1211</span> |
  83. <span class="hyperlink_unavailable" title="Introduction to Statistics">MATH 1280</span> |
  84. <span class="hyperlink_unavailable" title="Discrete Mathematics">MATH 1302</span> |
  85. <span class="hyperlink_unavailable" title="Introduction to Philosophy">PHIL 1402</span> |
  86. <a href="/en/coursework/PHIL1404/" title="Ethics and Social Responsibility">PHIL 1404</a> |
  87. <a href="/en/coursework/POLS1503/" title="Globalization">POLS 1503</a> |
  88. <span class="hyperlink_unavailable" title="Introduction to Psychology">PSYC 1504</span> |
  89. <a href="/en/coursework/UNIV1001/" title="Online Education Strategies">UNIV 1001</a>
  90. </p>
  91. <hr/>
  92. <p>
  93. <a href="/en/coursework/CS1101/t_area.py.xhtml" title="t_area.py">Unit 2</a> |
  94. <a href="/en/coursework/CS1101/calculator_flowchart.xhtml" title="calculator flowchart">Unit 3</a> |
  95. <a href="/en/coursework/CS1101/tryme3.py.xhtml" title="tryme3.py">Unit 4</a> |
  96. <a href="/en/coursework/CS1101/mycalc.py.xhtml" title="mycalc.py">Unit 5</a> |
  97. <a href="/en/coursework/CS1101/bool.py.xhtml" title="bool.py">Unit 6</a> |
  98. <a href="/en/coursework/CS1101/sort_fruits.py.xhtml" title="sort_fruits.py">Unit 7</a>
  99. </p>
  100. <hr/>
  101. </nav>
  102. <header>
  103. <h1>tryme3.py</h1>
  104. <p>Written in <span title="Programming Fundamentals">CS 1101</span> of <a href="http://www.uopeople.edu/">University of the People</a>, finalized on 2017-02-22</p>
  105. </header>
  106. <h2>Script:</h2>
  107. <blockquote>
  108. <pre><code># Every good program should begin with a license comment that declares the file
  109. # as being covered by a free software license.
  110. #
  111. # This program is free software: you can redistribute it and/or modify
  112. # it under the terms of the GNU General Public License as published by
  113. # the Free Software Foundation, either version 3 of the License, or
  114. # (at your option) any later version.
  115. #
  116. # This program is distributed in the hope that it will be useful,
  117. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  118. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  119. # GNU General Public License for more details.
  120. #
  121. # You should have received a copy of the GNU General Public License
  122. # along with this program. If not, see &lt;https://www.gnu.org./licenses/&gt;.
  123. # Prints one blank line
  124. #
  125. # The version of the function new_line() in the instructions looks like this:
  126. #
  127. ## def new_line():
  128. ## print()
  129. #
  130. # However, that version of the function doesn&apos;t work in Python2. In Python2, it
  131. # doesn&apos;t print blank lines. Instead, it prints the string representation of
  132. # empty tuples. That&apos;s obviously now what we want. So, I took out the
  133. # parentheses and made the function look like this:
  134. #
  135. ## def new_line():
  136. ## print
  137. #
  138. # Success! It now worked in Python2! So what was the problem? Well, it now no
  139. # longer worked in Python3! If I recall, &quot;print&quot; is a keyword in Python2, but a
  140. # function in Python3. In Python, functions are objects, and we all know that
  141. # objects are a type of variable. (In Python, all variables are objects, but
  142. # that&apos;s not the point. The point is that all functions are variables in
  143. # Python.) With out the parentheses, it was no longer a function call, but
  144. # simply an expression without an assignment! I ended up settling on the
  145. # implementation below, which works in both Python2 and Python3.
  146. def new_line():
  147. print(&quot;&quot;)
  148. # Prints three blank lines
  149. def three_lines():
  150. new_line()
  151. new_line()
  152. new_line()
  153. # Prints nine blank lines
  154. def nine_lines():
  155. three_lines()
  156. three_lines()
  157. three_lines()
  158. # Prints twenty-five blank lines
  159. # ( 9 + 9 + 3 + 3 + 1 == 25 )
  160. def clear_screen():
  161. nine_lines()
  162. nine_lines()
  163. three_lines()
  164. three_lines()
  165. new_line()
  166. # The assignment instructions say to define both nine_lines() and
  167. # clear_screen(), but only says to actually call clear_screen(). In theory,
  168. # this script should call clear_screen() but should avoid calling nine_lines().
  169. # However, the instructions also say to put separators between the output of the
  170. # functions. That seems to heavily imply that both functions get called. The
  171. # assignment also doesn&apos;t explicitly say *not* to call both functions, so I&apos;m
  172. # calling them both to be safe and hope that that&apos;s okay.
  173. #
  174. # This next part is pretty much documented by the calls to print(), so I&apos;m done
  175. # commenting now. I would live to have put a print statement after the call to
  176. # clear_screen() to contain the blank lines between visible lines, but the
  177. # instructions specifically state that the call to clear_screen() should be on
  178. # the final line.
  179. #
  180. # Oh wait, now that I think about it, it&apos;ll be contained by the prompt that
  181. # shows up after the script completes.
  182. print(&quot;now printing 9 lines&quot;)
  183. nine_lines()
  184. print(&quot;now printing 25 lines&quot;)
  185. clear_screen()</code></pre>
  186. </blockquote>
  187. <h2>Output:</h2>
  188. <blockquote>
  189. <pre>Python 2.7.9 (default, Jun 29 2016, 13:08:31)
  190. [GCC 4.9.2] on linux2
  191. Type &quot;copyright&quot;, &quot;credits&quot; or &quot;license()&quot; for more information.
  192. &gt;&gt;&gt; ================================ RESTART ================================
  193. &gt;&gt;&gt;
  194. now printing 9 lines
  195. now printing 25 lines
  196. &gt;&gt;&gt;</pre>
  197. </blockquote>
  198. <hr/>
  199. <p>
  200. Copyright © 2017 Alex Yst;
  201. You may modify and/or redistribute this document under the terms of the <a rel="license" href="/license/gpl-3.0-standalone.xhtml"><abbr title="GNU&apos;s Not Unix">GNU</abbr> <abbr title="General Public License version Three or later">GPLv3+</abbr></a>.
  202. If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
  203. My address is in the source comments near the top of this document.
  204. This license also applies to embedded content such as images.
  205. For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
  206. </p>
  207. <p>
  208. <abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
  209. This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fcoursework%2FCS1101%2Ftryme3.py.xhtml"><abbr title="Extensible Hypertext Markup Language">XHTML</abbr> 5.1</a> specification and uses style sheets that conform to the <a href="http://jigsaw.w3.org./css-validator/validator?uri=https%3A%2F%2Fy.st.%2Fen%2Fcoursework%2FCS1101%2Ftryme3.py.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
  210. </p>
  211. </body>
  212. </html>