Examples

Math Expressions and Assignment

Values of class int:
3, 55, -2, 0
Values of class float:
5.3, 572.23521, -0.352, 7e-3
Arithmetic Operadors:
>>> 3.5 + 4
7.5
>>> 3 - 4.22
-1.22
>>> 3 * 4  # product
12
>>> 7/2  # division
3.5
>>> 7//2  # quotient of the integer division
3
>>> 7%2  # remainder of the integer division
1
>>> 7**2  # power or exponent
49
Calling built-in functions (pre-defined functions):
>>> abs(3) # absolute value
3
>>> abs(-3)
3
>>> round(3.52359, 4)  # rounding
3.5236
>>> round(3.05, 1)
3.0
>>> round(3.15, 1)
3.1
>>> round(3.25, 1)
3.2
>>> round(3.35, 1)
3.4
>>> round(3.45, 1)
3.5
>>> round(3.55, 1)
3.5
>>> round(3.65, 1)
3.6
>>> round(3.75, 1)
3.8
>>> round(3.85, 1)
3.9
>>> round(3.95, 1)
4.0
>>> max(5, -3, 1)
5
>>> min(5, abs(-3), 1)
1
>>> int('4') # converting to int
4
>>> int(3.52)
3
>>> float('3.66') # converting to float
3.66
>>> float(4)
4.0
>>> type(3) # type or class of an object
<class 'int'>
>>> type(3.0)
<class 'float'>
>>> type('3.0')
<class 'str'>
Standard output:
>>> print(10)
10
>>> x = 3
>>> print('Results', end=": "); print(x-10, x, x+10, sep="\t")
Results: -7     3   13
Importing a module (or library):
>>> import math
Calling a function from a module:
# What is the length of the hipotenuse for a triangle whose cathetus are 3.0 and 4.0 ?

>>> math.sqrt(3.0**2 + 4.0**2)
5.0

# What is the radius of the cirle whose area is 2.0 ?

>>> math.sqrt(2.0/math.pi)
0.7978845608028654
>>> math.pi*math.sqrt(2.0/math.pi)**2
2.0
Assignment:
>>> edat = 35
>>> edat
35
>>> edat = edat + 1
>>> edat
36
>>> edat += 1
>>> edat
37
>>> area = 2.0
>>> math.pi*math.sqrt(area/math.pi)**2
2.0
Multiple Single Assignment:
x = y = z = 0
Multiple Assignment:
c1, c2 = math.sqrt(c1**2 + c2**2)

Functions

Function definition:
def hipotenuse(c1, c2):
    lh = (c1**2 + c2**2)**0.5
    return lh

def quo_rem(n, d):
    return n//d, n%d
Function call:
>>> c1, c2 = 3.0, 4.0
>>> hipotenuse(c1, c2)
5.0

>>> q1, r1 = quo_rem(34, 3)   # 34 == 3*quotient + remainder
(11, 1)
Doctests:
>>> import doctest
>>> doctest.testfile("exemple_test.txt", verbose=True)

From linux terminal that would be:

$ python3 -m doctest joc-de-proves.txt -f

Conditionals

Boolean values:
True, False
Relational Operadors:
>>> 30 > 5   # greater than
True
>>> 3 >= 3   # greater than or equal to
True
>>> 3 < 5    # less than
True
>>> 3 <= 3   # less than or equal to
True
>>> 3 == 5   # equal to
False
>>> 3 != 5   # different than
True
Logic operators:
>>> x = 5
>>> y = 10
>>> x > y or y == 10   # disjunction
True
>>> x > y and y == 10   # conjunction
False
>>> not(x > y)   # negation
True
Simple conditional:
if db < 55:
    soroll = 'normal'
else:
    soroll = 'tall'
Simple conditional without else:
if age > 65:
    discount = 5
Multi-Conditional:
if x >= 9.0:
    grade = 'A'
elif 6.0 <= x < 9.0:
    grade = 'B'
elif 5.0 <= x < 6.0:
    grade = 'C'
else:
    grade = 'D'

Strings

Values of the class str:
'', 'hola', "hola", 'AeIoU', "hola i adeu"
Built-in string funcions:
>>> len('longitud') # longitud
8
>>> str(352) # conversió a str
'352'
>>> str(3.52)
'3.52'
>>> print("el resultat és")
el resultat és
Operacions d’strings.
>>> 'hola' + 'que tal' # concatenació
'holaque tal'
>>> s = 'fonaments'
>>> s[2]    # indexació
'n'
>>> s[-1]
's'
>>> s[3:7]   # talls o llesques(slices)
'amen'
>>> 'a' in s  # pertinença
True
>>> 'amen' in s
True
>>> 'ae' in s
False
Mètodes d’strings: count().
>>> numn = s.count('n')  # comptar aparicions d'elements
>>> numn
2
Mètodes d’strings: replace().
>>> s2 = s.replace('n','x') # substituir aparicions d'un str per un altre
>>> s2
'foxamexts'
>>> s3 = s.replace('n','')
>>> s3
'foamets'
>>> s3 = s.replace('aments','tdelgat')
>>> s3
'fontdelgat'
Mètodes d’strings: find().
>>> pos = s3.find('t') # trobar posició de la primera aparició
>>> pos
3
>>> pos = s3.find('x')
>>> pos
-1
Mètodes d’strings: upper(), lower().
>>> s4 = 'hola'
>>> s5 = s4.upper()  # conversió a majúscules
>>> s5
'HOLA'
>>> s6 = s5.lower()  # conversió a minúscules
>>> s6
'hola'
>>> s5.isupper()   # comprovació si és majúscula
True
>>> s5[0].isupper()
True
>>> s6[0].islower()  # comprovació si és minúscula
True

>>> s7 = '123,un,dos,tres'
>>> s7[0].isdigit()  # comprovació si és dígit
True
>>> s7[5].isalpha()  # comprovació si és alfabètic
True

>>> ' \t\n'.isspace()
True

Lists

Funcions predefinides.
>>> max([5,3,1,22,7,0]) # màxim
22
>>> min([5,3,1,22,7,0]) # mínim
0
>>> sum([5,3,1,22,7,0]) # suma d'elements
38
>>> len([5,3,1,22,7,0]) # longitud
6
>>> list('hola')  # conversió a list
['h', 'o', 'l', 'a']
Operacions bàsiques: concatenació, consulta i modificació d’un element, pertinença, llesques.
>>> [1,2] + [3,5,63] # concatenació
[1, 2, 3, 5, 63]
>>> ll = [30,20,10,40,50]
>>> ll[2]    # indexació
10
>>> ll[-1]
50
>>> ll[3] = 100  # mutabilitat
>>> ll
[30, 20, 10, 100, 50]
>>> ll2 = [[2,4,6],[10,30,50],['quatre','cinc']]
>>> ll2[1][2]   # indexació de llistes imbricades
50
>>> ll2[2][0][0]
'q'
>>> ll3 = [100, 20, 10, 40, 30, 50]
>>> 10 in ll3  # pertinença
True
>>> 70 in ll3
False
>>> ll3[1:4]   # talls o llesques(slices)
[20, 10, 40]
>>> ll3nova = ll3[:]  # còpia de llistes sense efecte àlies
>>> ll3nova
[100, 20, 10, 40, 30, 50]
Mètodes.
>>> ll4 = [0, 3, 3, 6]
>>> num3 = ll4.count(3)  # comptar aparicions d'elements
>>> num3
2
>>> posició = ll4.index(3)  # trobar posició de la primera aparició
>>> posició
1
Mètodes modificadors.
>>> ll4 = [0, 3, 3, 6]
>>> ll4.append(10)  # afegir elements al final
>>> ll4
[0, 3, 3, 6, 10]
>>> ll5 = [4, 52, 32, 12, 0]
>>> ll5.sort()    # ordenar elements amb ordre ascendent
>>> ll5
[0, 4, 12, 32, 52]
>>> ll5.sort(reverse=True)  # ordenar elements amb order descendent
>>> ll5
[52, 32, 12, 4, 0]
>>> ll6 = [1, 2, 3, 4]
>>> ll6.reverse()   # capgirar una llista
>>> ll6
[4, 3, 2, 1]
Mètode d’strings que retorna una llista: split().
>>> s4 = 'qui roba un ou, roba un bou'
>>> ll = s4.split()  # str a list separant per blancs
>>> ll
['qui', 'roba', 'un', 'ou,', 'roba', 'un', 'bou']
>>> s5 = '35:523:True:baix'
>>> ll2 = s5.split(':')  # str a list amb separador
>>> ll2
['35', '523', 'True', 'baix']
Mètode d’strings que rep una llista: join().
>>> ll3 = ['qui','roba','un','ou']
>>> s6 = ''.join(ll3)  # list a str sense separador
>>> s6
'quirobaunou'
>>> s7 = '-'.join(ll3)  # list a str amb separador
>>> s7
'qui-roba-un-ou'
Recorregut dels elements d’una llista.
>>> ll = [1,5,10]
>>> for element in ll:
...     print(element)
1
5
10
Recorregut dels elements d’un string.
>>> s = 'hola'
>>> for caracter in s:
...     print(caracter)
h
o
l
a
La classe range.
# convertim el resultat de range a llista només per visualitzar-ho
>>> list(range(5))
[0, 1, 2, 3, 4]
>>> list(range(2,5))
[2, 3, 4]
>>> list(range(2,12,2))
[2, 4, 6, 8, 10]
Recorregut dels índexs d’una llista.
>>> s = 'hola'
>>> for i in range(len(s)):
...     print(s[i])
h
o
l
a

>>> ll = [1,5,10]
>>> for i in range(len(ll)):
...     print(ll[i])
1
5
10

Tuples

Construcció, consulta d’un element, concatenació.
>>> tup = ('anna', 10)
>>> tup[0]   # indexació
'anna'
>>> tup + (35,)   # concatenació i representació de tuples d'un sol element
('anna', 10, 35)

Dictionnaries

Construcció, consulta del valor d’una clau, modificació del valor d’una clau, pertinença d’una clau.
>>> d = {'A':10, 'B':35, 'C':23}
>>> d2 = {'353':[10,30,35], '532':[32]}
>>> d['C']   # accés a través de la clau
23
>>> d2['532'].append(50)
>>> d2
{'353':[10,30,35], '532':[32,50]}
>>> d['B'] = d['B'] + 1   # mutabilitat
>>> d['B']
36
>>> 'A' in d   # operador in per comprovar si hi ha una clau
True
>>> 10 in d
False
Còpia de diccionaris.
>>> d3 = {'353':[10,30,35], '532':[32]}
>>> d3nou = d3.copy()  # cópia de diccionaris sense efecte àlies
>>> d3nou
{'353':[10,30,35], '532':[32]}
Recorregut de les claus d’un diccionari.
>>> dicc = {'A':10,'E':53,'I':5}
>>> for clau in dicc:
...     print(clau,dicc[clau])
A 10
E 53
I 5

Files

Sentència with, funció open, recorregut línia a línia, escriure en un fitxer.
with open('dades.txt','r') as f:  # obrir fitxer per lectura
    for linia in f:  # iterar per cada línia del fitxer
        ....

# obrir més d'un fitxer alhora, un per lectura i un altre per escriptura
with open('dades.txt','r') as f, open('resultat.txt','w') as g:
    for linia in f:
        ....
        g.write('string') # escriure a un fitxer

While

Sentència while.
>>> i = 1
>>> while i<=4:
...    print(i)
...    i = i + 1
1
2
3
4