Examples¶
Math Expressions and Assignment¶
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¶
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
>>> 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'
>>> pos = s3.find('t') # trobar posició de la primera aparició
>>> pos
3
>>> pos = s3.find('x')
>>> pos
-1
>>> 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]
>>> 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']
>>> 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
# 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