0% found this document useful (0 votes)
7 views

Tutorial 11 20

Uploaded by

k4mile.erdogan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Tutorial 11 20

Uploaded by

k4mile.erdogan
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 10

CHAPTER

TWO

USING THE PYTHON INTERPRETER

2.1 Invoking the Interpreter

The Python interpreter is usually installed as /usr/local/bin/python3.12 on those machines where it is avail-
able; putting /usr/local/bin in your Unix shell’s search path makes it possible to start it by typing the command:

python3.12

to the shell.1 Since the choice of the directory where the interpreter lives is an installation option, other places are possible;
check with your local Python guru or system administrator. (E.g., /usr/local/python is a popular alternative
location.)
On Windows machines where you have installed Python from the Microsoft Store, the python3.12 command will be
available. If you have the py.exe launcher installed, you can use the py command. See setting-envvars for other ways to
launch Python.
Typing an end-of-file character (Control-D on Unix, Control-Z on Windows) at the primary prompt causes the
interpreter to exit with a zero exit status. If that doesn’t work, you can exit the interpreter by typing the following command:
quit().
The interpreter’s line-editing features include interactive editing, history substitution and code completion on systems that
support the GNU Readline library. Perhaps the quickest check to see whether command line editing is supported is typing
Control-P to the first Python prompt you get. If it beeps, you have command line editing; see Appendix Interactive
Input Editing and History Substitution for an introduction to the keys. If nothing appears to happen, or if ^P is echoed,
command line editing isn’t available; you’ll only be able to use backspace to remove characters from the current line.
The interpreter operates somewhat like the Unix shell: when called with standard input connected to a tty device, it reads
and executes commands interactively; when called with a file name argument or with a file as standard input, it reads and
executes a script from that file.
A second way of starting the interpreter is python -c command [arg] ..., which executes the statement(s) in
command, analogous to the shell’s -c option. Since Python statements often contain spaces or other characters that are
special to the shell, it is usually advised to quote command in its entirety.
Some Python modules are also useful as scripts. These can be invoked using python -m module [arg] ...,
which executes the source file for module as if you had spelled out its full name on the command line.
When a script file is used, it is sometimes useful to be able to run the script and enter interactive mode afterwards. This
can be done by passing -i before the script.
All command line options are described in using-on-general.
1 On Unix, the Python 3.x interpreter is by default not installed with the executable named python, so that it does not conflict with a simultaneously

installed Python 2.x executable.

5
Python Tutorial, Release 3.12.2

2.1.1 Argument Passing

When known to the interpreter, the script name and additional arguments thereafter are turned into a list of strings and
assigned to the argv variable in the sys module. You can access this list by executing import sys. The length of the
list is at least one; when no script and no arguments are given, sys.argv[0] is an empty string. When the script name
is given as '-' (meaning standard input), sys.argv[0] is set to '-'. When -c command is used, sys.argv[0]
is set to '-c'. When -m module is used, sys.argv[0] is set to the full name of the located module. Options found
after -c command or -m module are not consumed by the Python interpreter’s option processing but left in sys.argv
for the command or module to handle.

2.1.2 Interactive Mode

When commands are read from a tty, the interpreter is said to be in interactive mode. In this mode it prompts for the
next command with the primary prompt, usually three greater-than signs (>>>); for continuation lines it prompts with the
secondary prompt, by default three dots (...). The interpreter prints a welcome message stating its version number and
a copyright notice before printing the first prompt:

$ python3.12
Python 3.12 (default, April 4 2022, 09:25:04)
[GCC 10.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

Continuation lines are needed when entering a multi-line construct. As an example, take a look at this if statement:

>>> the_world_is_flat = True


>>> if the_world_is_flat:
... print("Be careful not to fall off!")
...
Be careful not to fall off!

For more on interactive mode, see Interactive Mode.

2.2 The Interpreter and Its Environment

2.2.1 Source Code Encoding

By default, Python source files are treated as encoded in UTF-8. In that encoding, characters of most languages in
the world can be used simultaneously in string literals, identifiers and comments — although the standard library only
uses ASCII characters for identifiers, a convention that any portable code should follow. To display all these characters
properly, your editor must recognize that the file is UTF-8, and it must use a font that supports all the characters in the
file.
To declare an encoding other than the default one, a special comment line should be added as the first line of the file. The
syntax is as follows:

# -*- coding: encoding -*-

where encoding is one of the valid codecs supported by Python.


For example, to declare that Windows-1252 encoding is to be used, the first line of your source code file should be:

6 Chapter 2. Using the Python Interpreter


Python Tutorial, Release 3.12.2

# -*- coding: cp1252 -*-

One exception to the first line rule is when the source code starts with a UNIX “shebang” line. In this case, the encoding
declaration should be added as the second line of the file. For example:

#!/usr/bin/env python3
# -*- coding: cp1252 -*-

2.2. The Interpreter and Its Environment 7


Python Tutorial, Release 3.12.2

8 Chapter 2. Using the Python Interpreter


CHAPTER

THREE

AN INFORMAL INTRODUCTION TO PYTHON

In the following examples, input and output are distinguished by the presence or absence of prompts (»> and …): to repeat
the example, you must type everything after the prompt, when the prompt appears; lines that do not begin with a prompt
are output from the interpreter. Note that a secondary prompt on a line by itself in an example means you must type a
blank line; this is used to end a multi-line command.
Many of the examples in this manual, even those entered at the interactive prompt, include comments. Comments in
Python start with the hash character, #, and extend to the end of the physical line. A comment may appear at the start
of a line or following whitespace or code, but not within a string literal. A hash character within a string literal is just a
hash character. Since comments are to clarify code and are not interpreted by Python, they may be omitted when typing
in examples.
Some examples:

# this is the first comment


spam = 1 # and this is the second comment
# ... and now a third!
text = "# This is not a comment because it's inside quotes."

3.1 Using Python as a Calculator

Let’s try some simple Python commands. Start the interpreter and wait for the primary prompt, >>>. (It shouldn’t take
long.)

3.1.1 Numbers

The interpreter acts as a simple calculator: you can type an expression at it and it will write the value. Expression syntax
is straightforward: the operators +, -, * and / can be used to perform arithmetic; parentheses (()) can be used for
grouping. For example:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # division always returns a floating point number
1.6

The integer numbers (e.g. 2, 4, 20) have type int, the ones with a fractional part (e.g. 5.0, 1.6) have type float.
We will see more about numeric types later in the tutorial.

9
Python Tutorial, Release 3.12.2

Division (/) always returns a float. To do floor division and get an integer result you can use the // operator; to calculate
the remainder you can use %:

>>> 17 / 3 # classic division returns a float


5.666666666666667
>>>
>>> 17 // 3 # floor division discards the fractional part
5
>>> 17 % 3 # the % operator returns the remainder of the division
2
>>> 5 * 3 + 2 # floored quotient * divisor + remainder
17

With Python, it is possible to use the ** operator to calculate powers1 :

>>> 5 ** 2 # 5 squared
25
>>> 2 ** 7 # 2 to the power of 7
128

The equal sign (=) is used to assign a value to a variable. Afterwards, no result is displayed before the next interactive
prompt:

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

If a variable is not “defined” (assigned a value), trying to use it will give you an error:

>>> n # try to access an undefined variable


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

There is full support for floating point; operators with mixed type operands convert the integer operand to floating point:

>>> 4 * 3.75 - 1
14.0

In interactive mode, the last printed expression is assigned to the variable _. This means that when you are using Python
as a desk calculator, it is somewhat easier to continue calculations, for example:

>>> tax = 12.5 / 100


>>> price = 100.50
>>> price * tax
12.5625
>>> price + _
113.0625
>>> round(_, 2)
113.06

This variable should be treated as read-only by the user. Don’t explicitly assign a value to it — you would create an
independent local variable with the same name masking the built-in variable with its magic behavior.
1 Since ** has higher precedence than -, -3**2 will be interpreted as -(3**2) and thus result in -9. To avoid this and get 9, you can use

(-3)**2.

10 Chapter 3. An Informal Introduction to Python


Python Tutorial, Release 3.12.2

In addition to int and float, Python supports other types of numbers, such as Decimal and Fraction. Python
also has built-in support for complex numbers, and uses the j or J suffix to indicate the imaginary part (e.g. 3+5j).

3.1.2 Text

Python can manipulate text (represented by type str, so-called “strings”) as well as numbers. This includes characters
“!”, words “rabbit”, names “Paris”, sentences “Got your back.”, etc. “Yay! :)”. They can be enclosed in
single quotes ('...') or double quotes ("...") with the same result2 .

>>> 'spam eggs' # single quotes


'spam eggs'
>>> "Paris rabbit got your back :)! Yay!" # double quotes
'Paris rabbit got your back :)! Yay!'
>>> '1975' # digits and numerals enclosed in quotes are also strings
'1975'

To quote a quote, we need to “escape” it, by preceding it with \. Alternatively, we can use the other type of quotation
marks:

>>> 'doesn\'t' # use \' to escape the single quote...


"doesn't"
>>> "doesn't" # ...or use double quotes instead
"doesn't"
>>> '"Yes," they said.'
'"Yes," they said.'
>>> "\"Yes,\" they said."
'"Yes," they said.'
>>> '"Isn\'t," they said.'
'"Isn\'t," they said.'

In the Python shell, the string definition and output string can look different. The print() function produces a more
readable output, by omitting the enclosing quotes and by printing escaped and special characters:

>>> s = 'First line.\nSecond line.' # \n means newline


>>> s # without print(), special characters are included in the string
'First line.\nSecond line.'
>>> print(s) # with print(), special characters are interpreted, so \n produces new␣
,→line

First line.
Second line.

If you don’t want characters prefaced by \ to be interpreted as special characters, you can use raw strings by adding an r
before the first quote:

>>> print('C:\some\name') # here \n means newline!


C:\some
ame
>>> print(r'C:\some\name') # note the r before the quote
C:\some\name

There is one subtle aspect to raw strings: a raw string may not end in an odd number of \ characters; see the FAQ entry
for more information and workarounds.
2 Unlike other languages, special characters such as \n have the same meaning with both single ('...') and double ("...") quotes. The only

difference between the two is that within single quotes you don’t need to escape " (but you have to escape \') and vice versa.

3.1. Using Python as a Calculator 11


Python Tutorial, Release 3.12.2

String literals can span multiple lines. One way is using triple-quotes: """...""" or '''...'''. End of lines are
automatically included in the string, but it’s possible to prevent this by adding a \ at the end of the line. The following
example:

print("""\
Usage: thingy [OPTIONS]
-h Display this usage message
-H hostname Hostname to connect to
""")

produces the following output (note that the initial newline is not included):

Usage: thingy [OPTIONS]


-h Display this usage message
-H hostname Hostname to connect to

Strings can be concatenated (glued together) with the + operator, and repeated with *:

>>> # 3 times 'un', followed by 'ium'


>>> 3 * 'un' + 'ium'
'unununium'

Two or more string literals (i.e. the ones enclosed between quotes) next to each other are automatically concatenated.

>>> 'Py' 'thon'


'Python'

This feature is particularly useful when you want to break long strings:

>>> text = ('Put several strings within parentheses '


... 'to have them joined together.')
>>> text
'Put several strings within parentheses to have them joined together.'

This only works with two literals though, not with variables or expressions:

>>> prefix = 'Py'


>>> prefix 'thon' # can't concatenate a variable and a string literal
File "<stdin>", line 1
prefix 'thon'
^^^^^^
SyntaxError: invalid syntax
>>> ('un' * 3) 'ium'
File "<stdin>", line 1
('un' * 3) 'ium'
^^^^^
SyntaxError: invalid syntax

If you want to concatenate variables or a variable and a literal, use +:

>>> prefix + 'thon'


'Python'

Strings can be indexed (subscripted), with the first character having index 0. There is no separate character type; a
character is simply a string of size one:

12 Chapter 3. An Informal Introduction to Python


Python Tutorial, Release 3.12.2

>>> word = 'Python'


>>> word[0] # character in position 0
'P'
>>> word[5] # character in position 5
'n'

Indices may also be negative numbers, to start counting from the right:
>>> word[-1] # last character
'n'
>>> word[-2] # second-last character
'o'
>>> word[-6]
'P'

Note that since -0 is the same as 0, negative indices start from -1.
In addition to indexing, slicing is also supported. While indexing is used to obtain individual characters, slicing allows you
to obtain a substring:
>>> word[0:2] # characters from position 0 (included) to 2 (excluded)
'Py'
>>> word[2:5] # characters from position 2 (included) to 5 (excluded)
'tho'

Slice indices have useful defaults; an omitted first index defaults to zero, an omitted second index defaults to the size of
the string being sliced.
>>> word[:2] # character from the beginning to position 2 (excluded)
'Py'
>>> word[4:] # characters from position 4 (included) to the end
'on'
>>> word[-2:] # characters from the second-last (included) to the end
'on'

Note how the start is always included, and the end always excluded. This makes sure that s[:i] + s[i:] is always
equal to s:
>>> word[:2] + word[2:]
'Python'
>>> word[:4] + word[4:]
'Python'

One way to remember how slices work is to think of the indices as pointing between characters, with the left edge of the
first character numbered 0. Then the right edge of the last character of a string of n characters has index n, for example:
+---+---+---+---+---+---+
| P | y | t | h | o | n |
+---+---+---+---+---+---+
0 1 2 3 4 5 6
-6 -5 -4 -3 -2 -1

The first row of numbers gives the position of the indices 0…6 in the string; the second row gives the corresponding
negative indices. The slice from i to j consists of all characters between the edges labeled i and j, respectively.
For non-negative indices, the length of a slice is the difference of the indices, if both are within bounds. For example, the
length of word[1:3] is 2.
Attempting to use an index that is too large will result in an error:

3.1. Using Python as a Calculator 13


Python Tutorial, Release 3.12.2

>>> word[42] # the word only has 6 characters


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range

However, out of range slice indexes are handled gracefully when used for slicing:

>>> word[4:42]
'on'
>>> word[42:]
''

Python strings cannot be changed — they are immutable. Therefore, assigning to an indexed position in the string results
in an error:

>>> word[0] = 'J'


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment
>>> word[2:] = 'py'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'str' object does not support item assignment

If you need a different string, you should create a new one:

>>> 'J' + word[1:]


'Jython'
>>> word[:2] + 'py'
'Pypy'

The built-in function len() returns the length of a string:

>>> s = 'supercalifragilisticexpialidocious'
>>> len(s)
34

See also:
textseq
Strings are examples of sequence types, and support the common operations supported by such types.
string-methods
Strings support a large number of methods for basic transformations and searching.
f-strings
String literals that have embedded expressions.
formatstrings
Information about string formatting with str.format().
old-string-formatting
The old formatting operations invoked when strings are the left operand of the % operator are described in more
detail here.

14 Chapter 3. An Informal Introduction to Python

You might also like