appetite.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.17.1: http://docutils.sourceforge.net/" />
  6. <meta property="og:title" content="1. Whetting Your Appetite" />
  7. <meta property="og:type" content="website" />
  8. <meta property="og:url" content="https://docs.python.org/3/tutorial/appetite.html" />
  9. <meta property="og:site_name" content="Python documentation" />
  10. <meta property="og:description" content="If you do much work on computers, eventually you find that there’s some task you’d like to automate. For example, you may wish to perform a search-and-replace over a large number of text files, or ..." />
  11. <meta property="og:image" content="https://docs.python.org/3/_static/og-image.png" />
  12. <meta property="og:image:alt" content="Python documentation" />
  13. <meta name="description" content="If you do much work on computers, eventually you find that there’s some task you’d like to automate. For example, you may wish to perform a search-and-replace over a large number of text files, or ..." />
  14. <meta property="og:image:width" content="200" />
  15. <meta property="og:image:height" content="200" />
  16. <meta name="theme-color" content="#3776ab" />
  17. <title>1. Whetting Your Appetite &#8212; Python 3.12.0 documentation</title><meta name="viewport" content="width=device-width, initial-scale=1.0">
  18. <link rel="stylesheet" type="text/css" href="../_static/pygments.css" />
  19. <link rel="stylesheet" type="text/css" href="../_static/pydoctheme.css?digest=b37c26da2f7529d09fe70b41c4b2133fe4931a90" />
  20. <link id="pygments_dark_css" media="(prefers-color-scheme: dark)" rel="stylesheet" type="text/css" href="../_static/pygments_dark.css" />
  21. <script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
  22. <script src="../_static/jquery.js"></script>
  23. <script src="../_static/underscore.js"></script>
  24. <script src="../_static/doctools.js"></script>
  25. <script src="../_static/sidebar.js"></script>
  26. <link rel="search" type="application/opensearchdescription+xml"
  27. title="Search within Python 3.12.0 documentation"
  28. href="../_static/opensearch.xml"/>
  29. <link rel="author" title="About these documents" href="../about.html" />
  30. <link rel="index" title="Index" href="../genindex.html" />
  31. <link rel="search" title="Search" href="../search.html" />
  32. <link rel="copyright" title="Copyright" href="../copyright.html" />
  33. <link rel="next" title="2. Using the Python Interpreter" href="interpreter.html" />
  34. <link rel="prev" title="The Python Tutorial" href="index.html" />
  35. <link rel="canonical" href="https://docs.python.org/3/tutorial/appetite.html" />
  36. <style>
  37. @media only screen {
  38. table.full-width-table {
  39. width: 100%;
  40. }
  41. }
  42. </style>
  43. <link rel="stylesheet" href="../_static/pydoctheme_dark.css" media="(prefers-color-scheme: dark)" id="pydoctheme_dark_css">
  44. <link rel="shortcut icon" type="image/png" href="../_static/py.svg" />
  45. <script type="text/javascript" src="../_static/copybutton.js"></script>
  46. <script type="text/javascript" src="../_static/menu.js"></script>
  47. <script type="text/javascript" src="../_static/themetoggle.js"></script>
  48. </head>
  49. <body>
  50. <div class="mobile-nav">
  51. <input type="checkbox" id="menuToggler" class="toggler__input" aria-controls="navigation"
  52. aria-pressed="false" aria-expanded="false" role="button" aria-label="Menu" />
  53. <nav class="nav-content" role="navigation">
  54. <label for="menuToggler" class="toggler__label">
  55. <span></span>
  56. </label>
  57. <span class="nav-items-wrapper">
  58. <a href="https://www.python.org/" class="nav-logo">
  59. <img src="../_static/py.svg" alt="Logo"/>
  60. </a>
  61. <span class="version_switcher_placeholder"></span>
  62. <form role="search" class="search" action="../search.html" method="get">
  63. <svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" class="search-icon">
  64. <path fill-rule="nonzero" fill="currentColor" d="M15.5 14h-.79l-.28-.27a6.5 6.5 0 001.48-5.34c-.47-2.78-2.79-5-5.59-5.34a6.505 6.505 0 00-7.27 7.27c.34 2.8 2.56 5.12 5.34 5.59a6.5 6.5 0 005.34-1.48l.27.28v.79l4.25 4.25c.41.41 1.08.41 1.49 0 .41-.41.41-1.08 0-1.49L15.5 14zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"></path>
  65. </svg>
  66. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
  67. <input type="submit" value="Go"/>
  68. </form>
  69. </span>
  70. </nav>
  71. <div class="menu-wrapper">
  72. <nav class="menu" role="navigation" aria-label="main navigation">
  73. <div class="language_switcher_placeholder"></div>
  74. <label class="theme-selector-label">
  75. Theme
  76. <select class="theme-selector" oninput="activateTheme(this.value)">
  77. <option value="auto" selected>Auto</option>
  78. <option value="light">Light</option>
  79. <option value="dark">Dark</option>
  80. </select>
  81. </label>
  82. <div>
  83. <h4>Previous topic</h4>
  84. <p class="topless"><a href="index.html"
  85. title="previous chapter">The Python Tutorial</a></p>
  86. </div>
  87. <div>
  88. <h4>Next topic</h4>
  89. <p class="topless"><a href="interpreter.html"
  90. title="next chapter"><span class="section-number">2. </span>Using the Python Interpreter</a></p>
  91. </div>
  92. <div role="note" aria-label="source link">
  93. <h3>This Page</h3>
  94. <ul class="this-page-menu">
  95. <li><a href="../bugs.html">Report a Bug</a></li>
  96. <li>
  97. <a href="https://github.com/python/cpython/blob/main/Doc/tutorial/appetite.rst"
  98. rel="nofollow">Show Source
  99. </a>
  100. </li>
  101. </ul>
  102. </div>
  103. </nav>
  104. </div>
  105. </div>
  106. <div class="related" role="navigation" aria-label="related navigation">
  107. <h3>Navigation</h3>
  108. <ul>
  109. <li class="right" style="margin-right: 10px">
  110. <a href="../genindex.html" title="General Index"
  111. accesskey="I">index</a></li>
  112. <li class="right" >
  113. <a href="../py-modindex.html" title="Python Module Index"
  114. >modules</a> |</li>
  115. <li class="right" >
  116. <a href="interpreter.html" title="2. Using the Python Interpreter"
  117. accesskey="N">next</a> |</li>
  118. <li class="right" >
  119. <a href="index.html" title="The Python Tutorial"
  120. accesskey="P">previous</a> |</li>
  121. <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  122. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  123. <li class="switchers">
  124. <div class="language_switcher_placeholder"></div>
  125. <div class="version_switcher_placeholder"></div>
  126. </li>
  127. <li>
  128. </li>
  129. <li id="cpython-language-and-version">
  130. <a href="../index.html">3.12.0 Documentation</a> &#187;
  131. </li>
  132. <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">The Python Tutorial</a> &#187;</li>
  133. <li class="nav-item nav-item-this"><a href=""><span class="section-number">1. </span>Whetting Your Appetite</a></li>
  134. <li class="right">
  135. <div class="inline-search" role="search">
  136. <form class="inline-search" action="../search.html" method="get">
  137. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
  138. <input type="submit" value="Go" />
  139. </form>
  140. </div>
  141. |
  142. </li>
  143. <li class="right">
  144. <label class="theme-selector-label">
  145. Theme
  146. <select class="theme-selector" oninput="activateTheme(this.value)">
  147. <option value="auto" selected>Auto</option>
  148. <option value="light">Light</option>
  149. <option value="dark">Dark</option>
  150. </select>
  151. </label> |</li>
  152. </ul>
  153. </div>
  154. <div class="document">
  155. <div class="documentwrapper">
  156. <div class="bodywrapper">
  157. <div class="body" role="main">
  158. <section id="whetting-your-appetite">
  159. <span id="tut-intro"></span><h1><span class="section-number">1. </span>Whetting Your Appetite<a class="headerlink" href="#whetting-your-appetite" title="Permalink to this headline">¶</a></h1>
  160. <p>If you do much work on computers, eventually you find that there’s some task
  161. you’d like to automate. For example, you may wish to perform a
  162. search-and-replace over a large number of text files, or rename and rearrange a
  163. bunch of photo files in a complicated way. Perhaps you’d like to write a small
  164. custom database, or a specialized GUI application, or a simple game.</p>
  165. <p>If you’re a professional software developer, you may have to work with several
  166. C/C++/Java libraries but find the usual write/compile/test/re-compile cycle is
  167. too slow. Perhaps you’re writing a test suite for such a library and find
  168. writing the testing code a tedious task. Or maybe you’ve written a program that
  169. could use an extension language, and you don’t want to design and implement a
  170. whole new language for your application.</p>
  171. <p>Python is just the language for you.</p>
  172. <p>You could write a Unix shell script or Windows batch files for some of these
  173. tasks, but shell scripts are best at moving around files and changing text data,
  174. not well-suited for GUI applications or games. You could write a C/C++/Java
  175. program, but it can take a lot of development time to get even a first-draft
  176. program. Python is simpler to use, available on Windows, macOS, and Unix
  177. operating systems, and will help you get the job done more quickly.</p>
  178. <p>Python is simple to use, but it is a real programming language, offering much
  179. more structure and support for large programs than shell scripts or batch files
  180. can offer. On the other hand, Python also offers much more error checking than
  181. C, and, being a <em>very-high-level language</em>, it has high-level data types built
  182. in, such as flexible arrays and dictionaries. Because of its more general data
  183. types Python is applicable to a much larger problem domain than Awk or even
  184. Perl, yet many things are at least as easy in Python as in those languages.</p>
  185. <p>Python allows you to split your program into modules that can be reused in other
  186. Python programs. It comes with a large collection of standard modules that you
  187. can use as the basis of your programs — or as examples to start learning to
  188. program in Python. Some of these modules provide things like file I/O, system
  189. calls, sockets, and even interfaces to graphical user interface toolkits like
  190. Tk.</p>
  191. <p>Python is an interpreted language, which can save you considerable time during
  192. program development because no compilation and linking is necessary. The
  193. interpreter can be used interactively, which makes it easy to experiment with
  194. features of the language, to write throw-away programs, or to test functions
  195. during bottom-up program development. It is also a handy desk calculator.</p>
  196. <p>Python enables programs to be written compactly and readably. Programs written
  197. in Python are typically much shorter than equivalent C, C++, or Java programs,
  198. for several reasons:</p>
  199. <ul class="simple">
  200. <li><p>the high-level data types allow you to express complex operations in a single
  201. statement;</p></li>
  202. <li><p>statement grouping is done by indentation instead of beginning and ending
  203. brackets;</p></li>
  204. <li><p>no variable or argument declarations are necessary.</p></li>
  205. </ul>
  206. <p>Python is <em>extensible</em>: if you know how to program in C it is easy to add a new
  207. built-in function or module to the interpreter, either to perform critical
  208. operations at maximum speed, or to link Python programs to libraries that may
  209. only be available in binary form (such as a vendor-specific graphics library).
  210. Once you are really hooked, you can link the Python interpreter into an
  211. application written in C and use it as an extension or command language for that
  212. application.</p>
  213. <p>By the way, the language is named after the BBC show “Monty Python’s Flying
  214. Circus” and has nothing to do with reptiles. Making references to Monty
  215. Python skits in documentation is not only allowed, it is encouraged!</p>
  216. <p>Now that you are all excited about Python, you’ll want to examine it in some
  217. more detail. Since the best way to learn a language is to use it, the tutorial
  218. invites you to play with the Python interpreter as you read.</p>
  219. <p>In the next chapter, the mechanics of using the interpreter are explained. This
  220. is rather mundane information, but essential for trying out the examples shown
  221. later.</p>
  222. <p>The rest of the tutorial introduces various features of the Python language and
  223. system through examples, beginning with simple expressions, statements and data
  224. types, through functions and modules, and finally touching upon advanced
  225. concepts like exceptions and user-defined classes.</p>
  226. </section>
  227. <div class="clearer"></div>
  228. </div>
  229. </div>
  230. </div>
  231. <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
  232. <div class="sphinxsidebarwrapper">
  233. <div>
  234. <h4>Previous topic</h4>
  235. <p class="topless"><a href="index.html"
  236. title="previous chapter">The Python Tutorial</a></p>
  237. </div>
  238. <div>
  239. <h4>Next topic</h4>
  240. <p class="topless"><a href="interpreter.html"
  241. title="next chapter"><span class="section-number">2. </span>Using the Python Interpreter</a></p>
  242. </div>
  243. <div role="note" aria-label="source link">
  244. <h3>This Page</h3>
  245. <ul class="this-page-menu">
  246. <li><a href="../bugs.html">Report a Bug</a></li>
  247. <li>
  248. <a href="https://github.com/python/cpython/blob/main/Doc/tutorial/appetite.rst"
  249. rel="nofollow">Show Source
  250. </a>
  251. </li>
  252. </ul>
  253. </div>
  254. </div>
  255. </div>
  256. <div class="clearer"></div>
  257. </div>
  258. <div class="related" role="navigation" aria-label="related navigation">
  259. <h3>Navigation</h3>
  260. <ul>
  261. <li class="right" style="margin-right: 10px">
  262. <a href="../genindex.html" title="General Index"
  263. >index</a></li>
  264. <li class="right" >
  265. <a href="../py-modindex.html" title="Python Module Index"
  266. >modules</a> |</li>
  267. <li class="right" >
  268. <a href="interpreter.html" title="2. Using the Python Interpreter"
  269. >next</a> |</li>
  270. <li class="right" >
  271. <a href="index.html" title="The Python Tutorial"
  272. >previous</a> |</li>
  273. <li><img src="../_static/py.svg" alt="python logo" style="vertical-align: middle; margin-top: -1px"/></li>
  274. <li><a href="https://www.python.org/">Python</a> &#187;</li>
  275. <li class="switchers">
  276. <div class="language_switcher_placeholder"></div>
  277. <div class="version_switcher_placeholder"></div>
  278. </li>
  279. <li>
  280. </li>
  281. <li id="cpython-language-and-version">
  282. <a href="../index.html">3.12.0 Documentation</a> &#187;
  283. </li>
  284. <li class="nav-item nav-item-1"><a href="index.html" >The Python Tutorial</a> &#187;</li>
  285. <li class="nav-item nav-item-this"><a href=""><span class="section-number">1. </span>Whetting Your Appetite</a></li>
  286. <li class="right">
  287. <div class="inline-search" role="search">
  288. <form class="inline-search" action="../search.html" method="get">
  289. <input placeholder="Quick search" aria-label="Quick search" type="search" name="q" />
  290. <input type="submit" value="Go" />
  291. </form>
  292. </div>
  293. |
  294. </li>
  295. <li class="right">
  296. <label class="theme-selector-label">
  297. Theme
  298. <select class="theme-selector" oninput="activateTheme(this.value)">
  299. <option value="auto" selected>Auto</option>
  300. <option value="light">Light</option>
  301. <option value="dark">Dark</option>
  302. </select>
  303. </label> |</li>
  304. </ul>
  305. </div>
  306. <div class="footer">
  307. &copy; <a href="../copyright.html">Copyright</a> 2001-2023, Python Software Foundation.
  308. <br />
  309. This page is licensed under the Python Software Foundation License Version 2.
  310. <br />
  311. Examples, recipes, and other code in the documentation are additionally licensed under the Zero Clause BSD License.
  312. <br />
  313. See <a href="/license.html">History and License</a> for more information.<br />
  314. <br />
  315. The Python Software Foundation is a non-profit corporation.
  316. <a href="https://www.python.org/psf/donations/">Please donate.</a>
  317. <br />
  318. <br />
  319. Last updated on Oct 02, 2023.
  320. <a href="/bugs.html">Found a bug</a>?
  321. <br />
  322. Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 4.5.0.
  323. </div>
  324. </body>
  325. </html>