- Notifications
You must be signed in to change notification settings - Fork 12
Expand file tree
/
Copy path01-BasicPythonSyntax.html
More file actions
Latest commit
141 lines (126 loc) · 164 KB
/
Copy path01-BasicPythonSyntax.html
File metadata and controls
141 lines (126 loc) · 164 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
<html><head>
<metahttp-equiv="content-type" content="text/html; charset=UTF-8">
<metacharset="utf-8">
<title>01-BasicPythonSyntax</title>
<scripttype="text/javascript" src="01-BasicPythonSyntax_files/MathJax.js" charset="utf-8"></script>
<scripttype="text/javascript">
// MathJax disabled, set as null to distingish from *missing* MathJax,
// where it will be undefined, and should prompt a dialog later.
window.mathjax_url="mathjax/MathJax.js";
</script>
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/jquery-wijmo.css" type="text/css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/codemirror.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/markdown.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/rst.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/ipython.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/default.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/prettify.css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/boilerplate.css" type="text/css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/layout.css" type="text/css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/base.css" type="text/css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/notebook.css" type="text/css">
<linkrel="stylesheet" href="01-BasicPythonSyntax_files/renderedhtml.css" type="text/css">
<metaname="read_only" content="False">
<styletype="text/css">#MathJax_Zoom {position: absolute; background-color:#F0F0F0; overflow: auto; display: block; z-index:301; padding:.5em; border:1px solid black; margin:0; font-family: serif; font-size:85%; font-weight: normal; font-style: normal; text-align: left; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; box-shadow:5px5px15px#AAAAAA; -webkit-box-shadow:5px5px15px#AAAAAA; -moz-box-shadow:5px5px15px#AAAAAA; -khtml-box-shadow:5px5px15px#AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left:0; top:0; z-index:300; display: inline-block; width:100%; height:100%; border:0; padding:0; margin:0; background-color: white; opacity:0; filter:alpha(opacity=0)}
</style><styletype="text/css">#MathJax_About {position: fixed; left:50%; width: auto; text-align: center; border:3px outset; padding:1em2em; background-color:#DDDDDD; cursor: default; font-family: message-box; font-size:120%; font-style: normal; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index:201; border-radius:15px; -webkit-border-radius:15px; -moz-border-radius:15px; -khtml-border-radius:15px; box-shadow:0px10px20px#808080; -webkit-box-shadow:0px10px20px#808080; -moz-box-shadow:0px10px20px#808080; -khtml-box-shadow:0px10px20px#808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding:5px0px; border:1px solid #CCCCCC; margin:0; cursor: default; font: menu; text-align: left; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index:201; border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px; -khtml-border-radius:5px; box-shadow:0px10px20px#808080; -webkit-box-shadow:0px10px20px#808080; -moz-box-shadow:0px10px20px#808080; -khtml-box-shadow:0px10px20px#808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding:1px2em; background: transparent}
.MathJax_MenuTitle {background-color:#CCCCCC; margin:-5px000; text-align: center; font-style: italic; font-size:80%; color:#444444; padding:2px0; overflow: hidden}
.MathJax_MenuArrow {position: absolute; right:.5em; color:#666666}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuCheck {position: absolute; left:.7em}
.MathJax_MenuRadioCheck {position: absolute; left:.7em}
.MathJax_MenuLabel {padding:1px2em3px1.33em; font-style: italic}
.MathJax_MenuRule {border-top:1px solid #DDDDDD; margin:4px3px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color:#606872; color: white}
</style><styletype="text/css">#MathJax_Message {position: fixed; left:1px; bottom:2px; background-color:#E6E6E6; border:1px solid #959595; margin:0px; padding:2px8px; z-index:102; color: black; font-size:80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top:0; left:0; width:0px; z-index:101; border:0px; margin:0px; padding:0px}
.MathJax_Error {color:#CC0000; font-style: italic}
</style><styletype="text/css">@media print { body { overflow: visible !important; } }.ui-widget-content { border:0px; }</style><styletype="text/css">#MathJax_Zoom {position: absolute; background-color:#F0F0F0; overflow: auto; display: block; z-index:301; padding:.5em; border:1px solid black; margin:0; font-family: serif; font-size:85%; font-weight: normal; font-style: normal; text-align: left; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; box-shadow:5px5px15px#AAAAAA; -webkit-box-shadow:5px5px15px#AAAAAA; -moz-box-shadow:5px5px15px#AAAAAA; -khtml-box-shadow:5px5px15px#AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left:0; top:0; z-index:300; display: inline-block; width:100%; height:100%; border:0; padding:0; margin:0; background-color: white; opacity:0; filter:alpha(opacity=0)}
</style><styletype="text/css">#MathJax_About {position: fixed; left:50%; width: auto; text-align: center; border:3px outset; padding:1em2em; background-color:#DDDDDD; cursor: default; font-family: message-box; font-size:120%; font-style: normal; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index:201; border-radius:15px; -webkit-border-radius:15px; -moz-border-radius:15px; -khtml-border-radius:15px; box-shadow:0px10px20px#808080; -webkit-box-shadow:0px10px20px#808080; -moz-box-shadow:0px10px20px#808080; -khtml-box-shadow:0px10px20px#808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding:5px0px; border:1px solid #CCCCCC; margin:0; cursor: default; font: menu; text-align: left; text-indent:0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index:201; border-radius:5px; -webkit-border-radius:5px; -moz-border-radius:5px; -khtml-border-radius:5px; box-shadow:0px10px20px#808080; -webkit-box-shadow:0px10px20px#808080; -moz-box-shadow:0px10px20px#808080; -khtml-box-shadow:0px10px20px#808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding:1px2em; background: transparent}
.MathJax_MenuTitle {background-color:#CCCCCC; margin:-5px000; text-align: center; font-style: italic; font-size:80%; color:#444444; padding:2px0; overflow: hidden}
.MathJax_MenuArrow {position: absolute; right:.5em; color:#666666}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuCheck {position: absolute; left:.7em}
.MathJax_MenuRadioCheck {position: absolute; left:.7em}
.MathJax_MenuLabel {padding:1px2em3px1.33em; font-style: italic}
.MathJax_MenuRule {border-top:1px solid #DDDDDD; margin:4px3px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color:#606872; color: white}
</style><styletype="text/css">#MathJax_Message {position: fixed; left:1px; bottom:2px; background-color:#E6E6E6; border:1px solid #959595; margin:0px; padding:2px8px; z-index:102; color: black; font-size:80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top:0; left:0; width:0px; z-index:101; border:0px; margin:0px; padding:0px}
.MathJax_Error {color:#CC0000; font-style: italic}
</style></head><bodystyle="overflow: auto;"><divtabindex="2" class="cell text_cell border-box-sizing ui-widget-content ui-corner-all"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Hello, world!</h1></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [2]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print "Hello, world!"</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">"Hello, world!"</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>Hello, world!</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [3]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print "Hello, world!"</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">def</span><spanclass="cm-null"></span><spanclass="cm-variable">sayhello</span><spanclass="cm-null">():</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">"Hello, world!"</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: none;" class="output vbox"></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [4]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>sayhello()</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">sayhello</span><spanclass="cm-null">()</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>Hello, world!</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [5]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print "Hello, " + name</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><span class="cm-keyword">def</span><span class="cm-null"> </span><span class="cm-variable">sayhello</span><span class="cm-null">(</span><span class="cm-variable">name</span><span class="cm-null">):</span></pre><pre><span class="cm-null"> </span><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-string">"Hello, "</span><span class="cm-null"> </span><span class="cm-operator">+</span><span class="cm-null"> </span><span class="cm-variable">name</span></pre></div></div></div></div></div></div></div></div></div><div style="display: none;" class="output vbox"></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [6]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>sayhello('Rick')</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">sayhello</span><span class="cm-null">(</span><span class="cm-string">'Rick'</span><span class="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>Hello, Rick</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 2px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><p><strong>Exercise</strong>: Write a “Hello, world” program that uses
a function with a parameter to greet you by name</p></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Basic types</h1></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [7]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>1 # integer</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">1</span><spanclass="cm-null"></span><spanclass="cm-comment"># integer</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[7]:</div><divclass="box_flex1 output_subarea output_text"><pre>1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [8]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>3.14 # floating-point</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">3.14</span><spanclass="cm-null"></span><spanclass="cm-comment"># floating-point</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[8]:</div><divclass="box_flex1 output_subarea output_text"><pre>3.14</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [9]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>3.14e17 # floating-point (scientific notation)</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">3.14e17</span><spanclass="cm-null"></span><spanclass="cm-comment"># floating-point (scientific notation)</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[9]:</div><divclass="box_flex1 output_subarea output_text"><pre>3.14e+17</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [10]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>123456789123456789123456789 # long integer (unbounded)</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">123456789123456789123456789</span><span class="cm-null"> </span><span class="cm-comment"># long integer (unbounded)</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[10]:</div><div class="box_flex1 output_subarea output_text"><pre>123456789123456789123456789L</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [11]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 65px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># Type introspection</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># Type introspection</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-builtin">type</span><span class="cm-null">(</span><span class="cm-number">4</span><span class="cm-null">)</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-builtin">type</span><span class="cm-null">(</span><span class="cm-number">3.14</span><span class="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre><type 'int'>
<type 'float'></pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [12]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>1 + 1j</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">1</span><spanclass="cm-null"></span><spanclass="cm-operator">+</span><spanclass="cm-null"></span><spanclass="cm-number">1j</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[12]:</div><divclass="box_flex1 output_subarea output_text"><pre>(1+1j)</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [13]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>1j * 1j</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-number">1j</span><spanclass="cm-null"></span><spanclass="cm-operator">*</span><spanclass="cm-null"></span><spanclass="cm-number">1j</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[13]:</div><divclass="box_flex1 output_subarea output_text"><pre>(-1+0j)</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Variables and basic arithmetic</h1></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [14]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>x = 1</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-number">1</span></pre><pre><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[14]:</div><divclass="box_flex1 output_subarea output_text"><pre>1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [15]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>x + 1</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">x</span><span class="cm-null"> </span><span class="cm-operator">+</span><span class="cm-null"> </span><span class="cm-number">1</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[15]:</div><div class="box_flex1 output_subarea output_text"><pre>2</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [16]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y = x * 5</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> = </span><span class="cm-variable">x</span><span class="cm-null"> </span><span class="cm-operator">*</span><span class="cm-null"> </span><span class="cm-number">5</span></pre><pre><span class="cm-variable">y</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[16]:</div><div class="box_flex1 output_subarea output_text"><pre>5</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [17]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y *= 3 # in-place assigment</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> *= </span><span class="cm-number">3</span><span class="cm-null"> </span><span class="cm-comment"># in-place assigment</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">y</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>15</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [18]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y % 2 # modulo arithmetic</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> </span><span class="cm-operator">%</span><span class="cm-null"> </span><span class="cm-number">2</span><span class="cm-null"> </span><span class="cm-comment"># modulo arithmetic</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[18]:</div><div class="box_flex1 output_subarea output_text"><pre>1</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [19]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y / 2 # result dependent on Python version</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> </span><span class="cm-operator">/</span><span class="cm-null"> </span><span class="cm-number">2</span><span class="cm-null"> </span><span class="cm-comment"># result dependent on Python version</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[19]:</div><div class="box_flex1 output_subarea output_text"><pre>7</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [20]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y / 2.0 # force floating point</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> </span><span class="cm-operator">/</span><span class="cm-null"> </span><span class="cm-number">2.0</span><span class="cm-null"> </span><span class="cm-comment"># force floating point</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[20]:</div><div class="box_flex1 output_subarea output_text"><pre>7.5</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [21]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y // 2.0 # force integer (floor) division)</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> </span><span class="cm-operator">//</span><span class="cm-null"> </span><span class="cm-number">2.0</span><span class="cm-null"> </span><span class="cm-comment"># force integer (floor) division)</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[21]:</div><div class="box_flex1 output_subarea output_text"><pre>7.0</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [22]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>2==2</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-number">2</span><span class="cm-operator">==</span><span class="cm-number">2</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[22]:</div><div class="box_flex1 output_subarea output_text"><pre>True</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [23]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>2 <= 1 # comparisons are < > <= >= == !=</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-number">2</span><span class="cm-null"> </span><span class="cm-operator"><=</span><span class="cm-null"> </span><span class="cm-number">1</span><span class="cm-null"> </span><span class="cm-comment"># comparisons are < > <= >= == !=</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[23]:</div><div class="box_flex1 output_subarea output_text"><pre>False</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [84]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>2 != 3</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-number">2</span><span class="cm-null"> </span><span class="cm-operator">!=</span><span class="cm-null"> </span><span class="cm-number">3</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[84]:</div><div class="box_flex1 output_subarea output_text"><pre>True</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [85]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># exponentiation</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># exponentiation</span></pre><pre><span class="cm-number">2</span><span class="cm-null"> </span><span class="cm-operator">**</span><span class="cm-null"> </span><span class="cm-number">4</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[85]:</div><div class="box_flex1 output_subarea output_text"><pre>16</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [25]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>True and False</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">True</span><span class="cm-null"> </span><span class="cm-operator">and</span><span class="cm-null"> </span><span class="cm-variable">False</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[25]:</div><div class="box_flex1 output_subarea output_text"><pre>False</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [26]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>True or False</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">True</span><span class="cm-null"> </span><span class="cm-operator">or</span><span class="cm-null"> </span><span class="cm-variable">False</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[26]:</div><div class="box_flex1 output_subarea output_text"><pre>True</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [27]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>True and not False</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">True</span><span class="cm-null"> </span><span class="cm-operator">and</span><span class="cm-null"> </span><span class="cm-operator">not</span><span class="cm-null"> </span><span class="cm-variable">False</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[27]:</div><div class="box_flex1 output_subarea output_text"><pre>True</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 1px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><h1>Strings</h1></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [28]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print 'This is a string with single quotes'</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-string">'This is a string with single quotes'</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-string">"This is a string with double quotes"</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>This is a string with single quotes
This is a string with double quotes</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [29]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print "But we must escape \"double quotes\" inside double quotes and single quotes inside single quotes"</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">"We can embed 'single quotes' within double quotes without escaping"</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'We can also embed "double quotes" within single quotes without escaping'</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">"But we must escape \"double quotes\" inside double quotes and single quotes inside single quotes"</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>We can embed 'single quotes' within double quotes without escaping
We can also embed "double quotes" within single quotes without escaping
But we must escape "double quotes" inside double quotes and single quotes inside single quotes</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [30]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print "Strings can be" + " concatenated together " + "using the '+' operator"</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">"Strings can be"</span><spanclass="cm-null"></span><spanclass="cm-operator">+</span><spanclass="cm-null"></span><spanclass="cm-string">" concatenated together "</span><spanclass="cm-null"></span><spanclass="cm-operator">+</span><spanclass="cm-null"></span><spanclass="cm-string">"using the '+' operator"</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>Strings can be concatenated together using the '+' operator</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [31]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print '''We can also begin a string with three single-quote characters </span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'''We can also begin a string with three single-quote characters </span></pre><pre><spanclass="cm-string">or three double-quote characters. This allows us to build multi-line</span></pre><pre><spanclass="cm-string">strings without using the \\n escape sequence.'''</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>We can also begin a string with three single-quote characters
or three double-quote characters. This allows us to build multi-line
strings without using the \n escape sequence.</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [32]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print u'You can use encoded unicode characters in your source code: 海淀区科学院南路2号融科资讯中心C座南楼8层'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">u'Unicode strings have a "u" prefix.'</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">u'You can use encoded unicode characters in your source code: 海淀区科学院南路2号融科资讯中心C座南楼8层'</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>Unicode strings have a "u" prefix.
You can use encoded unicode characters in your source code: 海淀区科学院南路2号融科资讯中心C座南楼8层</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 9px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>We <em>can</em> use escape sequences inside strings, however. Escape sequences start with a backslash character (). Some common
escape sequences appear below:</p>
<ul>
<li>\n - newline</li>
<li>\r - carriage return</li>
<li>\t - tab character</li>
<li>\ - literal backslash</li>
<li>\x20 - hex escape (in this case, ASCII character 0x20, the space)</li>
<li>\u4e0b - unicode escape (hex sequence)</li>
</ul></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 3px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>You can index into a string using either a single integer or
a "slice." The result is always another string (there is no
'char' type in Python).</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [33]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s = 'The quick brown fox'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">s</span><spanclass="cm-null"> = </span><spanclass="cm-string">'The quick brown fox'</span></pre><pre><spanclass="cm-variable">s</span><spanclass="cm-null">[</span><spanclass="cm-number">0</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[33]:</div><divclass="box_flex1 output_subarea output_text"><pre>'T'</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [34]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>type(s[0])</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-builtin">type</span><spanclass="cm-null">(</span><spanclass="cm-variable">s</span><spanclass="cm-null">[</span><spanclass="cm-number">0</span><spanclass="cm-null">])</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[34]:</div><divclass="box_flex1 output_subarea output_text"><pre>str</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [35]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[1:15]</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">s</span><spanclass="cm-null">[</span><spanclass="cm-number">1</span><spanclass="cm-null">:</span><spanclass="cm-number">15</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[35]:</div><divclass="box_flex1 output_subarea output_text"><pre>'he quick brown'</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [36]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[1:15:2] # 'step' by 2</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">s</span><spanclass="cm-null">[</span><spanclass="cm-number">1</span><spanclass="cm-null">:</span><spanclass="cm-number">15</span><spanclass="cm-null">:</span><spanclass="cm-number">2</span><spanclass="cm-null">] </span><spanclass="cm-comment"># 'step' by 2</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[36]:</div><div class="box_flex1 output_subarea output_text"><pre>'h uc rw'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [37]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[:3] # beginning of range omitted</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">s</span><span class="cm-null">[:</span><span class="cm-number">3</span><span class="cm-null">] </span><span class="cm-comment"># beginning of range omitted</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[37]:</div><div class="box_flex1 output_subarea output_text"><pre>'The'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [38]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[3:] # end of range omitted</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">s</span><span class="cm-null">[</span><span class="cm-number">3</span><span class="cm-null">:] </span><span class="cm-comment"># end of range omitted</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[38]:</div><div class="box_flex1 output_subarea output_text"><pre>' quick brown fox'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [39]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[-1] # negative indexing from the end </span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">s</span><span class="cm-null">[</span><span class="cm-operator">-</span><span class="cm-number">1</span><span class="cm-null">] </span><span class="cm-comment"># negative indexing from the end </span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[39]:</div><div class="box_flex1 output_subarea output_text"><pre>'x'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [40]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[-3:] # last 3 characters</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">s</span><span class="cm-null">[</span><span class="cm-operator">-</span><span class="cm-number">3</span><span class="cm-null">:] </span><span class="cm-comment"># last 3 characters</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[40]:</div><div class="box_flex1 output_subarea output_text"><pre>'fox'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [41]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>s[::-1] # negative step reverses the sequence</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">s</span><span class="cm-null">[::</span><span class="cm-operator">-</span><span class="cm-number">1</span><span class="cm-null">] </span><span class="cm-comment"># negative step reverses the sequence</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[41]:</div><div class="box_flex1 output_subarea output_text"><pre>'xof nworb kciuq ehT'</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [86]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>len(s) # length of string</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">len</span><span class="cm-null">(</span><span class="cm-variable">s</span><span class="cm-null">) </span><span class="cm-comment"># length of string</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[86]:</div><div class="box_flex1 output_subarea output_text"><pre>19</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [89]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print len(x) # unicode length</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">x</span><span class="cm-null"> = </span><span class="cm-string">u'海'</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">len</span><span class="cm-null">(</span><span class="cm-variable">x</span><span class="cm-null">) </span><span class="cm-comment"># unicode length</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [94]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>y = x.encode('utf-8') # encode to bytes ('str')</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">y</span><span class="cm-null"> = </span><span class="cm-variable">x.encode</span><span class="cm-null">(</span><span class="cm-string">'utf-8'</span><span class="cm-null">) </span><span class="cm-comment"># encode to bytes ('str')</span></pre><pre><span class="cm-variable">len</span><span class="cm-null">(</span><span class="cm-variable">y</span><span class="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[94]:</div><div class="box_flex1 output_subarea output_text"><pre>3</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [96]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># decode utf-8 back to unicode</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># decode utf-8 back to unicode</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-builtin">unicode</span><span class="cm-null">(</span><span class="cm-variable">y</span><span class="cm-null">, </span><span class="cm-string">'utf-8'</span><span class="cm-null">) </span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>海</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 3px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><h1>Lists</h1>
<p>Lists are mutable, dynamically typed sequences, and they are used frequently in Python.</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [42]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># This is a list</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-comment"># This is a list</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"> [ </span><spanclass="cm-number">1</span><spanclass="cm-null">,</span><spanclass="cm-number">2</span><spanclass="cm-null">,</span><spanclass="cm-number">3</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 2, 3]</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [43]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 82px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># We can append to lists</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-comment"># We can append to lists</span></pre><pre><spanclass="cm-variable">lst</span><spanclass="cm-null"> = [ </span><spanclass="cm-number">1</span><spanclass="cm-null">, </span><spanclass="cm-number">2</span><spanclass="cm-null">, </span><spanclass="cm-number">3</span><spanclass="cm-null"> ]</span></pre><pre><spanclass="cm-variable">lst.append</span><spanclass="cm-null">(</span><spanclass="cm-number">4</span><spanclass="cm-null">)</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 2, 3, 4]</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [44]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># We can index into lists (0-based indexing)</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-comment"># We can index into lists (0-based indexing)</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">lst</span><spanclass="cm-null">[</span><spanclass="cm-number">2</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>3</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [45]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># We can insert, remove, and update</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># We can insert, remove, and update</span></pre><pre><span class="cm-variable">lst.insert</span><span class="cm-null">(</span><span class="cm-number">1</span><span class="cm-null">, </span><span class="cm-number">42</span><span class="cm-null">)</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 42, 2, 3, 4]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [46]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>lst.remove(2)</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">lst.remove</span><span class="cm-null">(</span><span class="cm-number">2</span><span class="cm-null">)</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 42, 3, 4]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [47]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>del lst[2]</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">del</span><span class="cm-null"> </span><span class="cm-variable">lst</span><span class="cm-null">[</span><span class="cm-number">2</span><span class="cm-null">]</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 42, 4]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [48]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>lst[1] = 43</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">lst</span><span class="cm-null">[</span><span class="cm-number">1</span><span class="cm-null">] = </span><span class="cm-number">43</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 43, 4]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [49]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># pop() removes and returns the last element</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># pop() removes and returns the last element</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst.pop</span><span class="cm-null">()</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>4</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [50]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print lst</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[1, 43]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [51]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 65px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>lst = [ 'This', 'is', 'a', 'list', 'with', 7, 'elements' ]</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># Lists are dynamically typed</span></pre><pre><span class="cm-variable">lst</span><span class="cm-null"> = [ </span><span class="cm-string">'This'</span><span class="cm-null">, </span><span class="cm-string">'is'</span><span class="cm-null">, </span><span class="cm-string">'a'</span><span class="cm-null">, </span><span class="cm-string">'list'</span><span class="cm-null">, </span><span class="cm-string">'with'</span><span class="cm-null">, </span><span class="cm-number">7</span><span class="cm-null">, </span><span class="cm-string">'elements'</span><span class="cm-null"> ]</span></pre><pre><span class="cm-variable">lst</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[51]:</div><div class="box_flex1 output_subarea output_text"><pre>['This', 'is', 'a', 'list', 'with', 7, 'elements']</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [52]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># Lists can be sliced just like strings</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># Lists can be sliced just like strings</span></pre><pre><span class="cm-variable">lst</span><span class="cm-null">[::</span><span class="cm-operator">-</span><span class="cm-number">2</span><span class="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt output_prompt">Out[52]:</div><div class="box_flex1 output_subarea output_text"><pre>['elements', 'with', 'a', 'This']</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 3px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><h1>Tuples</h1>
<p>Tuples are <em>immutable</em> sequences.</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [53]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># this is a tuple</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-comment"># this is a tuple</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"> (</span><spanclass="cm-number">1</span><spanclass="cm-null">, </span><spanclass="cm-number">2</span><spanclass="cm-null">, </span><spanclass="cm-number">3</span><spanclass="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>(1, 2, 3)</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [54]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print ('Tuples', 'are', 'also', 'dynamically', 'typed', 42)</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"> (</span><spanclass="cm-string">'Tuples'</span><spanclass="cm-null">, </span><spanclass="cm-string">'are'</span><spanclass="cm-null">, </span><spanclass="cm-string">'also'</span><spanclass="cm-null">, </span><spanclass="cm-string">'dynamically'</span><spanclass="cm-null">, </span><spanclass="cm-string">'typed'</span><spanclass="cm-null">, </span><spanclass="cm-number">42</span><spanclass="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>('Tuples', 'are', 'also', 'dynamically', 'typed', 42)</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [55]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># Tuples can be indexed</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-comment"># Tuples can be indexed</span></pre><pre><spanclass="cm-variable">t</span><spanclass="cm-null"> = (</span><spanclass="cm-number">1</span><spanclass="cm-null">,</span><spanclass="cm-number">2</span><spanclass="cm-null">,</span><spanclass="cm-number">3</span><spanclass="cm-null">)</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">t</span><spanclass="cm-null">[</span><spanclass="cm-number">0</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [56]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 82px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># Tuples can be "unpacked"</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># Tuples can be "unpacked"</span></pre><pre><span class="cm-variable">x</span><span class="cm-null">,</span><span class="cm-variable">y</span><span class="cm-null"> = (</span><span class="cm-number">1</span><span class="cm-null">,</span><span class="cm-number">2</span><span class="cm-null">)</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">x</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">y</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1
2</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Basic control structures</h1></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [57]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 82px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print 'This is false'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">if</span><spanclass="cm-null"></span><spanclass="cm-variable">True</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'This is true'</span></pre><pre><spanclass="cm-keyword">else</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'This is false'</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>This is true</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [58]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 82px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> x = x + 1</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-number">0</span></pre><pre><spanclass="cm-keyword">while</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator"><</span><spanclass="cm-null"></span><spanclass="cm-number">5</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">+</span><spanclass="cm-null"></span><spanclass="cm-number">1</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1
2
3
4
5</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [59]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>lst = [ 1, 2, 3 ]</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">lst</span><spanclass="cm-null"> = [ </span><spanclass="cm-number">1</span><spanclass="cm-null">, </span><spanclass="cm-number">2</span><spanclass="cm-null">, </span><spanclass="cm-number">3</span><spanclass="cm-null"> ]</span></pre><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-variable">lst</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1
2
3</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [60]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for x in range(3):</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">range</span><spanclass="cm-null">(</span><spanclass="cm-number">3</span><spanclass="cm-null">)</span></pre><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-variable">range</span><spanclass="cm-null">(</span><spanclass="cm-number">3</span><spanclass="cm-null">):</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[0, 1, 2]
0
1
2</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [61]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 65px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for x in xrange(3):</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-builtin">xrange</span><spanclass="cm-null">(</span><spanclass="cm-number">3</span><spanclass="cm-null">)</span></pre><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-builtin">xrange</span><spanclass="cm-null">(</span><spanclass="cm-number">3</span><spanclass="cm-null">):</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>xrange(3)
0
1
2</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [62]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 100px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for x in xrange(10):</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-builtin">xrange</span><spanclass="cm-null">(</span><spanclass="cm-number">10</span><spanclass="cm-null">):</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">if</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">%</span><spanclass="cm-null"></span><spanclass="cm-number">2</span><spanclass="cm-null"></span><spanclass="cm-operator">==</span><spanclass="cm-null"></span><spanclass="cm-number">0</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">continue</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">if</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"></span><spanclass="cm-operator">></span><spanclass="cm-null"></span><spanclass="cm-number">5</span><spanclass="cm-null">: </span><spanclass="cm-keyword">break</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">x</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>1
3
5</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 5px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h3>Exercises</h3>
<ul>
<li>Write a function that sums the values in a list using a <code>for</code> loop</li>
<li>Write a function that sums the even-numbered values in a list</li>
<li>Write a function that returns the reversed version of a list</li>
</ul></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 3px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Dicts</h1>
<p>A <em>dict</em> is a hash table (also known as a "dictionary"). Dicts are pervasive in Python.</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [63]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print { 'key': 'value' }</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"> { </span><spanclass="cm-string">'key'</span><spanclass="cm-null">: </span><spanclass="cm-string">'value'</span><spanclass="cm-null"> }</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{'key': 'value'}</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [64]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>d = { 'key1': 1, 'key2': 'foo' }</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">d</span><spanclass="cm-null"> = { </span><spanclass="cm-string">'key1'</span><spanclass="cm-null">: </span><spanclass="cm-number">1</span><spanclass="cm-null">, </span><spanclass="cm-string">'key2'</span><spanclass="cm-null">: </span><spanclass="cm-string">'foo'</span><spanclass="cm-null"> }</span></pre><pre><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">d</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{'key2': 'foo', 'key1': 1}</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [65]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>d['key1']</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'key1'</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[65]:</div><divclass="box_flex1 output_subarea output_text"><pre>1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [66]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>d['key3'] = 'bar'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'key3'</span><spanclass="cm-null">] = </span><spanclass="cm-string">'bar'</span></pre></div></div></div></div></div></div></div></div></div><div style="display: none;" class="output vbox"></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [67]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print d</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{'key3': 'bar', 'key2': 'foo', 'key1': 1}</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [68]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 65px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># dicts are unordered, but we can get a list of their keys,</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># dicts are unordered, but we can get a list of their keys,</span></pre><pre><span class="cm-comment"># values, or (key,value) pairs</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d.keys</span><span class="cm-null">()</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>['key3', 'key2', 'key1']</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [69]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print d.values()</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d.values</span><span class="cm-null">()</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>['bar', 'foo', 1]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [70]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 30px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>print d.items()</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d.items</span><span class="cm-null">()</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>[('key3', 'bar'), ('key2', 'foo'), ('key1', 1)]</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [71]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 65px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span># dict keys can be any *immutable* type in Python</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-comment"># dict keys can be any *immutable* type in Python</span></pre><pre><span class="cm-variable">d</span><span class="cm-null"> = { </span><span class="cm-string">'foo'</span><span class="cm-null">: </span><span class="cm-number">1</span><span class="cm-null">, </span><span class="cm-number">2</span><span class="cm-null">: </span><span class="cm-string">'bar'</span><span class="cm-null"> }</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{2: 'bar', 'foo': 1}</pre></div></div></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [72]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>d[(1,2)] = 'baz'</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-variable">d</span><span class="cm-null">[(</span><span class="cm-number">1</span><span class="cm-null">,</span><span class="cm-number">2</span><span class="cm-null">)] = </span><span class="cm-string">'baz'</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{(1, 2): 'baz', 2: 'bar', 'foo': 1}</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 1px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><p>Items can be removed using the <code>del</code> keyword</p></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [73]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>del d[2]</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">del</span><span class="cm-null"> </span><span class="cm-variable">d</span><span class="cm-null">[</span><span class="cm-number">2</span><span class="cm-null">]</span></pre><pre><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">d</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>{(1, 2): 'baz', 'foo': 1}</pre></div></div></div></div><div tabindex="2" class="cell text_cell border-box-sizing"><div style="display: none;" class="text_cell_input"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-default"><div style="position: relative; height: 1px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><div style="position: relative"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative" draggable="true"><pre class="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><div tabindex="-1" class="text_cell_render rendered_html"><p>A <code>dict</code> can be iterated through in a space-efficient using <code>iterkeys</code>, <code>itervalues</code>, and <code>iteritems</code>:</p></div></div><div tabindex="2" class="cell border-box-sizing code_cell vbox"><div class="input hbox"><div class="prompt input_prompt">In [74]:</div><div class="input_area box-flex1"><div class="CodeMirror"><div style="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textarea style="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><div class="CodeMirror-scroll cm-s-ipython"><div style="position: relative; height: 47px;"><div style="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for k in d.iterkeys():</span></pre></div><div style="position: relative; top: 0px;"><div style="display: none;" class="CodeMirror-gutter"><div class="CodeMirror-gutter-text"></div></div><div class="CodeMirror-lines"><div style="position: relative;" draggable="true"><pre style="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><div style=""><pre><span class="cm-keyword">for</span><span class="cm-null"> </span><span class="cm-variable">k</span><span class="cm-null"> </span><span class="cm-operator">in</span><span class="cm-null"> </span><span class="cm-variable">d.iterkeys</span><span class="cm-null">():</span></pre><pre><span class="cm-null"> </span><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-variable">k</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>(1, 2)
foo</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [75]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for v in d.itervalues():</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">v</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-variable">d.itervalues</span><spanclass="cm-null">():</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">v</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>baz
1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [76]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 47px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>for k,v in d.iteritems():</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">for</span><spanclass="cm-null"></span><spanclass="cm-variable">k</span><spanclass="cm-null">,</span><spanclass="cm-variable">v</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-variable">d.iteritems</span><spanclass="cm-null">():</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-variable">k</span><spanclass="cm-null">, </span><spanclass="cm-variable">v</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>(1, 2) baz
foo 1</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [77]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>'foo' in d # Test for key membership </span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-string">'foo'</span><spanclass="cm-null"></span><spanclass="cm-operator">in</span><spanclass="cm-null"></span><spanclass="cm-variable">d</span><spanclass="cm-null"></span><spanclass="cm-comment"># Test for key membership </span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt output_prompt">Out[77]:</div><divclass="box_flex1 output_subarea output_text"><pre>True</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 4px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h1>Exceptions</h1>
<p>Python handles errors by throwing <em>exceptions</em>. For instance, trying to read a non-existent
key in a dict:</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [78]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>d['does not exist']</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'does not exist'</span><spanclass="cm-null">]</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text"><pre><spanclass="ansired">---------------------------------------------------------------------------</span>
<spanclass="ansired">KeyError</span> Traceback (most recent call last)
<spanclass="ansigreen">/vagrant/<ipython-input-78-17d039c47522></span> in <spanclass="ansicyan"><module></span><spanclass="ansiblue">()</span>
<spanclass="ansigreen">----> 1</span><spanclass="ansired"></span>d<spanclass="ansiblue">[</span><spanclass="ansiblue">'does not exist'</span><spanclass="ansiblue">]</span><spanclass="ansiblue"></span>
<spanclass="ansired">KeyError</span>: 'does not exist'
</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>To handle exceptions gracefully, we must enclose them in a <code>try:</code><em>block</em>:</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [79]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 100px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print 'This statement never executes!'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">try</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'does not exist'</span><spanclass="cm-null">]</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'This statement never executes!'</span></pre><pre><spanclass="cm-keyword">except</span><spanclass="cm-null"></span><spanclass="cm-variable">KeyError</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'There was a key error!'</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>There was a key error!</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>We can also write code that will <em>always</em> run, whether an exception is raised or not:</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [80]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 118px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print 'There was a key error!'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">try</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'does not exist'</span><spanclass="cm-null">]</span></pre><pre><spanclass="cm-keyword">except</span><spanclass="cm-null"></span><spanclass="cm-variable">KeyError</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"> </span><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-string">'There was a key error!'</span></pre><pre><span class="cm-keyword">finally</span><span class="cm-null">:</span></pre><pre><span class="cm-null"> </span><span class="cm-keyword">print</span><span class="cm-null"> </span><span class="cm-string">'This always runs!'</span></pre></div></div></div></div></div></div></div></div></div><div style="display: -moz-box;" class="output vbox"><div class="hbox output_area"><div class="prompt"></div><div class="box_flex1 output_subarea output_text output_stream output_stdout"><pre>There was a key error!
This always runs!</pre></div></div></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [81]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 118px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print 'There was a key error!'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">try</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'key1'</span><spanclass="cm-null">]</span></pre><pre><spanclass="cm-keyword">except</span><spanclass="cm-null"></span><spanclass="cm-variable">KeyError</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'There was a key error!'</span></pre><pre><spanclass="cm-keyword">finally</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'This always runs!'</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>There was a key error!
This always runs!</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>If we want code that only runs when there is <em>not</em> an error, we can use the <code>else:</code> clause:</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [82]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 153px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span> print 'The try: block completed without error.'</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">try</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-variable">x</span><spanclass="cm-null"> = </span><spanclass="cm-variable">d</span><spanclass="cm-null">[</span><spanclass="cm-string">'key1'</span><spanclass="cm-null">]</span></pre><pre><spanclass="cm-keyword">except</span><spanclass="cm-null"></span><spanclass="cm-variable">KeyError</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'There was a key error!'</span></pre><pre><spanclass="cm-keyword">else</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'The try: block completed without error.'</span></pre><pre><spanclass="cm-keyword">finally</span><spanclass="cm-null">:</span></pre><pre><spanclass="cm-null"></span><spanclass="cm-keyword">print</span><spanclass="cm-null"></span><spanclass="cm-string">'This always runs!'</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text output_stream output_stdout"><pre>There was a key error!
This always runs!</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 1px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><p>To <em>cause</em> an exception, use the <code>raise</code> keyword:</p></div></div><divtabindex="2" class="cell border-box-sizing code_cell vbox"><divclass="input hbox"><divclass="prompt input_prompt">In [83]:</div><divclass="input_area box-flex1"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px; top: 0px; left: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-ipython"><divstyle="position: relative; height: 30px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre><span>raise KeyError('This is a key error')</span></pre></div><divstyle="position: relative; top: 0px;"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative;" draggable="true"><prestyle="top: 0px; left: 0px;" class="CodeMirror-cursor"> </pre><divstyle=""><pre><spanclass="cm-keyword">raise</span><spanclass="cm-null"></span><spanclass="cm-variable">KeyError</span><spanclass="cm-null">(</span><spanclass="cm-string">'This is a key error'</span><spanclass="cm-null">)</span></pre></div></div></div></div></div></div></div></div></div><divstyle="display: -moz-box;" class="output vbox"><divclass="hbox output_area"><divclass="prompt"></div><divclass="box_flex1 output_subarea output_text"><pre><spanclass="ansired">---------------------------------------------------------------------------</span>
<spanclass="ansired">KeyError</span> Traceback (most recent call last)
<spanclass="ansigreen">/vagrant/<ipython-input-83-04dfd7050815></span> in <spanclass="ansicyan"><module></span><spanclass="ansiblue">()</span>
<spanclass="ansigreen">----> 1</span><spanclass="ansired"></span><spanclass="ansigreen">raise</span> KeyError<spanclass="ansiblue">(</span><spanclass="ansiblue">'This is a key error'</span><spanclass="ansiblue">)</span><spanclass="ansiblue"></span>
<spanclass="ansired">KeyError</span>: 'This is a key error'
</pre></div></div></div></div><divtabindex="2" class="cell text_cell border-box-sizing"><divstyle="display: none;" class="text_cell_input"><divclass="CodeMirror"><divstyle="overflow: hidden; position: relative; width: 1px; height: 0px;"><textareastyle="position: absolute; width: 2px;" wrap="off" autocorrect="off" autocapitalize="off"></textarea></div><divclass="CodeMirror-scroll cm-s-default"><divstyle="position: relative; height: 8px;"><divstyle="position: absolute; height: 0; width: 0; overflow: hidden;"><pre>x</pre></div><divstyle="position: relative"><divstyle="display: none;" class="CodeMirror-gutter"><divclass="CodeMirror-gutter-text"></div></div><divclass="CodeMirror-lines"><divstyle="position: relative" draggable="true"><preclass="CodeMirror-cursor"> </pre><div></div></div></div></div></div></div></div></div><divtabindex="-1" class="text_cell_render rendered_html"><h3>Exercises</h3>
<ul>
<li>Write a collection of functions to manage a telephone directory. The directory should be
stored in a dict and passed as the first argument to each function. These functions should include
<code>add_number(directory, name, number)</code>, <code>remove_number(directory, name)</code>, and
<code>lookup_number(directory, name)</code>. </li>
<li>Update your function so that <code>remove_number</code> does not raise an exception when you remove a
non-existent entry.</li>
</ul></div></div><divstyle="height: 30%;" class="end_space"></div></body></html>