sort_fruits.py.xhtml 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215
  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/sort_fruits.py.xhtml" />
  27. <title>sort_fruits.py &lt;https://y.st./en/coursework/CS1101/sort_fruits.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/sort_fruits.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>sort_fruits.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-03-15</p>
  105. </header>
  106. <h2>Flowchart</h2>
  107. <img class="weblog-header-image" src="/img/CC_BY-SA_4.0/y.st./coursework/CS1101/sort_fruits.py.png" alt="A flowchart depicting the flow of the script below" width="693" height="1225" />
  108. <h2>Script:</h2>
  109. <blockquote>
  110. <pre><code># Every good program should begin with a license comment that declares the file
  111. # as being covered by a free software license.
  112. #
  113. # This program is free software: you can redistribute it and/or modify
  114. # it under the terms of the GNU General Public License as published by
  115. # the Free Software Foundation, either version 3 of the License, or
  116. # (at your option) any later version.
  117. #
  118. # This program is distributed in the hope that it will be useful,
  119. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  120. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  121. # GNU General Public License for more details.
  122. #
  123. # You should have received a copy of the GNU General Public License
  124. # along with this program. If not, see &lt;https://www.gnu.org./licenses/&gt;.
  125. input_file = open(&quot;unsorted_fruits.txt&quot;, &quot;r&quot;)
  126. fruits = []
  127. # We could do this by reading the whole file at once and parsing it,
  128. # but the assignment instructions say to use a while loop somewhere in
  129. # our scripts. Using the readline() method gives us an excuse to do
  130. # just that.
  131. line = input_file.readline()
  132. while line:
  133. # The line endings in this file are a mess. We need to clean them. Some
  134. # lines end in &quot;\r\n\n&quot;, some end in &quot;\n\r\n&quot;, and one ends in &quot;\n&quot;. We
  135. # want them *all* to end in &quot;\n&quot;.
  136. line = line.strip() + &quot;\n&quot;
  137. # Python is confused by the bizarre and inconsistent line endings. I
  138. # can&apos;t blame it, I&apos;m confused by them too. Python&apos;s confusion results
  139. # in the appearance of several blank lines in our data set. Let&apos;s
  140. # ignore those instead of putting them in our list.
  141. if line != &quot;\n&quot;:
  142. fruits.append(line)
  143. # Read the next line for the next iteration.
  144. line = input_file.readline()
  145. input_file.close()
  146. fruits.sort()
  147. output_file = open(&quot;sorted_fruits.txt&quot;, &quot;w&quot;)
  148. # We could concatenate the fruit lines together and write them all at
  149. # once, but the assignment instructions say to use a for loop somewhere
  150. # in our scripts. Iterating over our array of lines and writing them
  151. # one at a time gives us an opportunity to do that.
  152. for fruit in fruits:
  153. output_file.write(fruit)
  154. output_file.close()</code></pre>
  155. </blockquote>
  156. <h2>sorted_fruits.txt:</h2>
  157. <blockquote>
  158. <pre>apple
  159. banana
  160. cherry
  161. date
  162. elderberry
  163. fig
  164. grape
  165. huckleberry
  166. imbu
  167. juneberry
  168. kiwifruit
  169. lime
  170. mango
  171. nectarine
  172. orange
  173. papaya
  174. quince
  175. raspberry
  176. strawberry
  177. tamarind
  178. umkolo
  179. vanilla
  180. watermelon
  181. xigua
  182. yiessas
  183. zapote blanco</pre>
  184. </blockquote>
  185. <hr/>
  186. <p>
  187. Copyright © 2017 Alex Yst;
  188. 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>.
  189. If for some reason you would prefer to modify and/or distribute this document under other free copyleft terms, please ask me via email.
  190. My address is in the source comments near the top of this document.
  191. This license also applies to embedded content such as images.
  192. For more information on that, see <a href="/en/a/licensing.xhtml">licensing</a>.
  193. </p>
  194. <p>
  195. <abbr title="World Wide Web Consortium">W3C</abbr> standards are important.
  196. This document conforms to the <a href="https://validator.w3.org./nu/?doc=https%3A%2F%2Fy.st.%2Fen%2Fcoursework%2FCS1101%2Fsort_fruits.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%2Fsort_fruits.py.xhtml"><abbr title="Cascading Style Sheets">CSS</abbr>3</a> specification.
  197. </p>
  198. </body>
  199. </html>