242 lines
16 KiB
HTML
242 lines
16 KiB
HTML
|
||
|
||
<!doctype html>
|
||
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||
<title>Base types — pyfundoc documentation</title>
|
||
<link rel="stylesheet" href="_static/bizstyle.css" type="text/css" />
|
||
<link rel="stylesheet" href="_static/pygments.css" type="text/css" />
|
||
<script type="text/javascript">
|
||
var DOCUMENTATION_OPTIONS = {
|
||
URL_ROOT: './',
|
||
VERSION: ' ',
|
||
COLLAPSE_INDEX: false,
|
||
FILE_SUFFIX: '.html',
|
||
HAS_SOURCE: true,
|
||
SOURCELINK_SUFFIX: '.txt'
|
||
};
|
||
</script>
|
||
<script type="text/javascript" src="_static/jquery.js"></script>
|
||
<script type="text/javascript" src="_static/underscore.js"></script>
|
||
<script type="text/javascript" src="_static/doctools.js"></script>
|
||
<script type="text/javascript" src="_static/bizstyle.js"></script>
|
||
<link rel="index" title="Index" href="genindex.html" />
|
||
<link rel="search" title="Search" href="search.html" />
|
||
<link rel="next" title="Let’s play with builtin types" href="base-type2.html" />
|
||
<link rel="prev" title="Getting started" href="getting-started.html" />
|
||
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||
<!--[if lt IE 9]>
|
||
<script type="text/javascript" src="_static/css3-mediaqueries.js"></script>
|
||
<![endif]-->
|
||
</head>
|
||
<body>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="genindex.html" title="General Index"
|
||
accesskey="I">index</a></li>
|
||
<li class="right" >
|
||
<a href="py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="base-type2.html" title="Let’s play with builtin types"
|
||
accesskey="N">next</a> |</li>
|
||
<li class="right" >
|
||
<a href="getting-started.html" title="Getting started"
|
||
accesskey="P">previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="index.html">pyfundoc documentation</a> »</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="document">
|
||
<div class="documentwrapper">
|
||
<div class="body" role="main">
|
||
|
||
<div class="section" id="base-types">
|
||
<h1>Base types<a class="headerlink" href="#base-types" title="Permalink to this headline">¶</a></h1>
|
||
<ul class="simple">
|
||
<li><a class="reference external" href="https://realpython.com/python-data-types/">types</a></li>
|
||
</ul>
|
||
<div class="section" id="python-is-dynamically-typed">
|
||
<h2>Python is dynamically typed<a class="headerlink" href="#python-is-dynamically-typed" title="Permalink to this headline">¶</a></h2>
|
||
<p>it means</p>
|
||
<ul class="simple">
|
||
<li>variables don’t have fixed type, the types can change</li>
|
||
<li>the variable’s type is specified at runtime during the assignment</li>
|
||
</ul>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">1</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
|
||
<span class="go"><class 'int'></span>
|
||
<span class="gp">>>> </span><span class="n">a</span> <span class="o">=</span> <span class="mf">2.</span>
|
||
<span class="gp">>>> </span><span class="n">a</span>
|
||
<span class="go">2.0</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">a</span><span class="p">)</span>
|
||
<span class="go"><class 'float'></span>
|
||
<span class="gp">>>> </span><span class="n">b</span> <span class="o">=</span> <span class="s2">"b"</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">b</span><span class="p">)</span>
|
||
<span class="go"><class 'str'></span>
|
||
<span class="gp">>>> </span><span class="n">c</span> <span class="o">=</span> <span class="s2">"3"</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
|
||
<span class="go"><class 'str'></span>
|
||
<span class="gp">>>> </span><span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
|
||
<span class="go">3</span>
|
||
<span class="gp">>>> </span><span class="n">c2</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">c2</span>
|
||
<span class="go">3</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">c2</span><span class="p">)</span>
|
||
<span class="go"><class 'int'></span>
|
||
<span class="go">>>></span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="some-builtin-types">
|
||
<h2>Some builtin types<a class="headerlink" href="#some-builtin-types" title="Permalink to this headline">¶</a></h2>
|
||
<p>base types:</p>
|
||
<ul class="simple">
|
||
<li>integer,</li>
|
||
<li>float,</li>
|
||
<li>string,</li>
|
||
<li>boolean</li>
|
||
</ul>
|
||
<p>base container types:</p>
|
||
<ul class="simple">
|
||
<li>list,</li>
|
||
<li>dictionnary,</li>
|
||
<li>set</li>
|
||
</ul>
|
||
<p>list type sample:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">l</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">l</span>
|
||
<span class="go">range(0, 10)</span>
|
||
<span class="gp">>>> </span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">l</span><span class="p">:</span>
|
||
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
||
<span class="gp">...</span>
|
||
<span class="go">0</span>
|
||
<span class="go">(...)</span>
|
||
<span class="go">9</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>dictionary type sample:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="nb">dict</span><span class="p">(</span><span class="n">a</span><span class="o">=</span><span class="mi">2</span><span class="p">,</span> <span class="n">b</span><span class="o">=</span><span class="mi">5</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="n">d</span>
|
||
<span class="go">{'b': 5, 'a': 2}</span>
|
||
<span class="gp">>>> </span><span class="nb">type</span><span class="p">(</span><span class="n">d</span><span class="p">)</span>
|
||
<span class="go"><class 'dict'></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>a dict <strong>is not</strong> a ordered type. If you need an ordered dict, use a more
|
||
advanced collection type like an ordered dict</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="kn">from</span> <span class="nn">collections</span> <span class="k">import</span> <span class="n">OrderedDict</span>
|
||
<span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="n">OrderedDict</span><span class="p">({</span><span class="s1">'banana'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'apple'</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'pear'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'orange'</span><span class="p">:</span> <span class="mi">2</span><span class="p">})</span>
|
||
<span class="gp">>>> </span><span class="n">d</span>
|
||
<span class="go">OrderedDict([('orange', 2), ('apple', 4), ('banana', 3), ('pear', 1)])</span>
|
||
<span class="go">>>></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>set sample:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="nb">set</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
|
||
<span class="go">{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>a set <strong>is not</strong> ordered</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">))</span>
|
||
<span class="gp">>>> </span><span class="mi">3</span> <span class="ow">in</span> <span class="n">s</span>
|
||
<span class="go">True</span>
|
||
</pre></div>
|
||
</div>
|
||
</div>
|
||
<div class="section" id="mutable-types-and-non-mutable-types">
|
||
<h2>Mutable types and non-mutable types<a class="headerlink" href="#mutable-types-and-non-mutable-types" title="Permalink to this headline">¶</a></h2>
|
||
<p>A set is immutable, whereas a list is mutable:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="nb">set</span><span class="p">([</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">])</span>
|
||
<span class="gp">>>> </span><span class="n">l</span> <span class="o">=</span> <span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="mi">2</span><span class="p">]</span>
|
||
<span class="gp">>>> </span><span class="n">l</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="nb">list</span><span class="p">(</span><span class="n">l</span><span class="p">)</span>
|
||
<span class="go">[1, 2, 3]</span>
|
||
<span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">append</span><span class="p">(</span><span class="mi">3</span><span class="p">)</span>
|
||
<span class="gt">Traceback (most recent call last):</span>
|
||
File <span class="nb">"<stdin>"</span>, line <span class="m">1</span>, in <span class="n"><module></span>
|
||
<span class="gr">AttributeError</span>: <span class="n">'set' object has no attribute 'append'</span>
|
||
<span class="go">>>></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>A string is immutable. If you want to modify it, build another string:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="s2">"hello"</span>
|
||
<span class="gp">>>> </span><span class="n">s</span><span class="o">.</span><span class="n">replace</span><span class="p">(</span><span class="s1">'ll'</span><span class="p">,</span> <span class="s1">'bb'</span><span class="p">)</span>
|
||
<span class="go">'hebbo'</span>
|
||
<span class="gp">>>> </span><span class="n">s</span><span class="o">+</span><span class="s2">"you"</span>
|
||
<span class="go">'helloyou'</span>
|
||
<span class="gp">>>> </span><span class="n">s</span>
|
||
<span class="go">'hello'</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>you can see that s hasn’t changed.</p>
|
||
</div>
|
||
<div class="section" id="even-base-types-are-objects">
|
||
<h2>Even base types are objects<a class="headerlink" href="#even-base-types-are-objects" title="Permalink to this headline">¶</a></h2>
|
||
<p>It means that in python, classes are types (let’s understand it like that at first glance)</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">a</span> <span class="o">=</span> <span class="mi">2</span>
|
||
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">a</span><span class="p">,</span> <span class="nb">int</span><span class="p">)</span>
|
||
<span class="go">True</span>
|
||
<span class="gp">>>> </span><span class="n">s</span> <span class="o">=</span> <span class="s2">"a"</span>
|
||
<span class="gp">>>> </span><span class="nb">dir</span><span class="p">(</span><span class="n">s</span><span class="p">)</span>
|
||
<span class="go">['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__',</span>
|
||
<span class="go">'__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__',</span>
|
||
<span class="go">(...)</span>
|
||
<span class="go">'__init__', '__iter__', '__le__', '__len__', '__lt__', ]</span>
|
||
</pre></div>
|
||
</div>
|
||
<p><cite>s</cite> has methods. It’s an objects. The type of s is the class <cite>int</cite>.</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">d</span> <span class="o">=</span> <span class="p">{</span><span class="s1">'banana'</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="s1">'apple'</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="s1">'pear'</span><span class="p">:</span> <span class="mi">1</span><span class="p">,</span> <span class="s1">'orange'</span><span class="p">:</span> <span class="mi">2</span><span class="p">}</span>
|
||
<span class="gp">>>> </span><span class="nb">isinstance</span><span class="p">(</span><span class="n">d</span><span class="p">,</span> <span class="nb">dict</span><span class="p">)</span>
|
||
<span class="go">True</span>
|
||
<span class="go">>>></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>special methods: the iterator sample</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">l</span> <span class="o">=</span> <span class="nb">range</span><span class="p">(</span><span class="mi">10</span><span class="p">)</span>
|
||
<span class="gp">>>> </span><span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">l</span><span class="p">:</span>
|
||
<span class="gp">... </span> <span class="nb">print</span><span class="p">(</span><span class="n">i</span><span class="p">)</span>
|
||
</pre></div>
|
||
</div>
|
||
<p>We can use the <cite>for</cite> statement only because the <cite>list</cite> type has a special <cite>__iter__</cite>
|
||
method:</p>
|
||
<div class="highlight-default"><div class="highlight"><pre><span></span><span class="gp">>>> </span><span class="n">l</span><span class="o">.</span><span class="fm">__iter__</span><span class="p">()</span>
|
||
<span class="go"><range_iterator object at 0x7f28b76e1e10></span>
|
||
<span class="go">>>></span>
|
||
</pre></div>
|
||
</div>
|
||
<p>we will see the special methods later.</p>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="clearer"></div>
|
||
</div>
|
||
<div class="related" role="navigation" aria-label="related navigation">
|
||
<h3>Navigation</h3>
|
||
<ul>
|
||
<li class="right" style="margin-right: 10px">
|
||
<a href="genindex.html" title="General Index"
|
||
>index</a></li>
|
||
<li class="right" >
|
||
<a href="py-modindex.html" title="Python Module Index"
|
||
>modules</a> |</li>
|
||
<li class="right" >
|
||
<a href="base-type2.html" title="Let’s play with builtin types"
|
||
>next</a> |</li>
|
||
<li class="right" >
|
||
<a href="getting-started.html" title="Getting started"
|
||
>previous</a> |</li>
|
||
<li class="nav-item nav-item-0"><a href="index.html">pyfundoc documentation</a> »</li>
|
||
</ul>
|
||
</div>
|
||
<div class="footer" role="contentinfo">
|
||
</div>
|
||
</body>
|
||
</html> |