Professional Documents
Culture Documents
Operatori Matematici
** Exponent 2 ** 3 = 8
% Modulo/Rest 22 % 8 = 6
// Integer division/Floor 22 // 8 = 2
division
/ Impartire 22 / 8 = 2.75
* Inmultire 3 * 3 = 9
- Diferenta 5 - 2 = 3
+ Adunare 2 + 2 = 4
Exemple in shell-ul REPR:
>>> 2 + 3 * 6
20
>>> (2 + 3) * 6
30
>>> 2 ** 8
256
>>> 23 // 7
>>> 23 % 7
16.0
Tipuri de date
Tip de date Exemple
Floating-point numbers - Rationale -1.25, -1.0, --0.5, 0.0, 0.5, 1.0, 1.25
'AliceBob'
'AliceBob'
Replicarea stringurilor
>>> 'Alice' * 5
'AliceAliceAliceAliceAlice'
Manipularea stringurilor
\t Tab
\n Rand nou
\\ Backslash
Exemplu:
Hello there!
Stringuri Raw
Un string raw ignora complet toate caracterele speciale si printeaza orice backslash apare in
string.
Nota: Se foloseste indeosebi pentru lucrur cu cai in linux si pentru definirea expressilor regex
>>>
>>> Eve's cat has been arrested for catnapping, cat burglary, and
extortion.
>>>
>>> Sincerely,
>>> Bob''')
Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and
extortion.
Sincerely,
Bob
>>> spam[0]
'H'
>>> spam[4]
'o'
>>> spam[-1]
'!'
Slicing:
>>> spam[0:5]
'Hello'
>>> spam[:5]
'Hello'
>>> spam[6:]
'world!'
>>> spam[6:-1]
'world'
>>> spam[:-1]
'Hello world'
>>> spam[::-1]
'!dlrow olleH'
>>> fizz
'Hello'
True
True
False
True
False
>>> spam
'HELLO WORLD!'
>>> spam
'hello world!'
startswith() si endswith()
>>> 'Hello world!'.startswith('Hello')
True
True
>>> 'abc123'.startswith('abcdef')
False
>>> 'abc123'.endswith('12')
False
True
True
join() si split()
join():
'MyABCnameABCisABCSimon'
split():
>>> 'MyABCnameABCisABCSimon'.split('ABC')
>>> spam.strip()
'Hello World'
>>> spam.lstrip()
>>> spam.rstrip()
>>> spam.strip('ampS')
'BaconSpamEggs'
Formatarea stringurilor
Operatorul %
>>> name = 'Pete'
"Hello Pete"
>>> num = 5
>>> 'I have %x apples' % num
Nota: Pentru cod nou folosirea metodei str.format sau a f-strings (Python 3.6+) este cu mult
recomandata in pofida folosirii operatorului “%”.
The formatting operations described here exhibit a variety of quirks that lead to a number of
common errors (such as failing to display tuples and dictionaries correctly). Using the newer
formatted string literals or the str.format() interface helps avoid these errors. These alternatives
also provide more powerful, flexible and extensible approaches to formatting text.
'Hello Elizabeth!
>>> a = 5
>>> b = 10
Variabile
Puteti da orice nume unei variabile atata timp cat urmeaza urmatoarele reguli:
>>> spam
'Hello'
Comentarii
# Acesta este un comentariu
Cod + comentariu:
a = 1 # initializare/asignare
Functia print()
>>> print('Hello world!')
Hello world!
>>> a = 1
Hello world! 1
Functia Input()
Cod exemplu:
Al
Functia len()
Arata lungimea unu string (sau a unui iterabil - eg: liste, tupluri, etc.)
>>> len('hello')
Nota: Pentru a testa daca un string, lista, dictionar etc. este gol/goala se recomanda o evaluare a
valorii de adevar si nu folosirea functiei len().
>>> a = [1, 2, 3]
>>> if a:
>>> str(29)
'29'
I am 29 years old.
>>> str(-3.14)
'-3.14'
Float to Integer:
>>> int(7.7)
>>> int(7.7) + 1
Flow Control
Operatori de comparare
Operator Functionalitate
== egal cu
!= nu e egal cu
Operatiile cu acesti operatori returneaza True sau False in functie de valorile pe care le dam
membrilor operatiei.
Exemple pentru operatorii de comparatie:
>>> 42 == 42
True
>>> 40 == 42
False
True
False
True
>>> 42 == 42.0
True
>>> 42 == '42'
False
Evaluarea
Nu se recomanda folosirea operatorilor == sau != pentru evaluarea unei operații booleene.
Folositi operatorii is sau is not, sau, cel mai facil evaluarea implicita.
True
>>> if a is True:
>>> pass
>>> pass
>>> pass
Si acestea:
>>> if a is False:
>>> pass
>>> pass
>>> if not a:
>>> pass
Operatori Booleeni
Exista 3 operatori booleeni: and, or, and not.
Expresie/Operatie Rezultat
Expresie/Operatie Rezultat
Expresie/Operatie Rezultat
True
False
>>> (1 == 2) or (2 == 2)
True
Statement-ul if:
if name == 'Alice':
print('Hi, Alice.')
Statementul else:
name = 'Bob'
if name == 'Alice':
print('Hi, Alice.')
else:
print('Hello, stranger.')
Statementul elif:
name = 'Bob'
age = 5
if name == 'Alice':
print('Hi, Alice.')
name = 'Bob'
age = 30
if name == 'Alice':
print('Hi, Alice.')
Bucle while:
spam = 0
print('Hello, world.')
spam = spam + 1
Statement-ul break
Daca in executia unei bucle (simple sau imbricate – while cuprins intr-alt while) se intalneste
cuvantul cheie break se iese imediat din bucla in care s-a intalnit statement-ul break:
while True:
name = input()
break
print('Thank you!')
Statement-ul continue
Cand se intalneste cuvantul cheie continue intr-o bucla, se sare imediat la inceputul buclei.
Celelalte instructiuni din bucla nu mai sunt executate
while True:
print('Who are you?')
name = input()
if name != 'Joe':
continue
print('Access granted.')
Bucle for si functia range():
My name is
Functia range() poate fi folosita cu 3 argumente. Primele 2 sunt valorile de start si stop si a 3-a
este valoarea pasului. Pasul reprezinta valoarea cu care variabila este incrementata in fiecare
iteratie.
>>> print(i)
8
Se pot folosi si numere negative pentru a face ca bulca for sa mearga inapoi
>>> print(i)
Importarea modulelor
import getpass
Liste
>>> spam = ['cat', 'bat', 'rat', 'elephant']
>>> spam
>>> spam[0]
'cat'
>>> spam[1]
'bat'
>>> spam[2]
'rat'
>>> spam[3]
'elephant'
Indecsi Negativi
>>> spam = ['cat', 'bat', 'rat', 'elephant']
>>> spam[-1]
'elephant'
>>> spam[-3]
'bat'
>>> spam[0:4]
['bat', 'rat']
>>> spam[0:-1]
>>> spam[:2]
['cat', 'bat']
>>> spam[1:]
Daca folosim operatia de slicing pentru extragerea tuturor elementelor dintr-o lista se creeaza o
copie.
>>> spam.append('dog')
>>> spam
>>> spam2
>>> len(spam)
>>> spam
>>> spam
>>> spam
[1, 2, 3, 'A', 'B', 'C']
>>> print(supply)
pens
staplers
flame-throwers
binders
True
False
False
True
Assignarea multipla
Daca stim exact cate elemente sunt intr-o lista exista o scurtatura pentru a assigna valorile din
acea lista unor variabile. In loc sa facem ceva de genul urmator:
Acelasi truc se poate folosi si pentru a inversa valorile a 2 variabile intre ele:
>>> a, b = b, a
>>> print(a)
'Bob'
>>> print(b)
'Alice'
Exemple:
>>> spam = 'Hello'
>>> spam
'Hello world!'
>>> bacon *= 3
>>> bacon
>>> spam.index('Pooka')
>>> spam.append('moose')
>>> spam
>>> spam
>>> spam.remove('bat')
>>> spam
>>> spam.pop(1)
>>> spam
['cat', 'elephant']
Daca o valoare apare de mai multe ori in lista, doar prima ei aparitie va fi eliminate folosind
functia remove()
>>> spam.sort()
>>> spam
[-7, 1, 2, 3.14, 5]
>>> spam.sort()
>>> spam
Functia sort are si argumentul optional reverse (cu valoarea default=False), caruia putem sa ii
dam valoarea true pentru a avea o lista ordonata descrescator:
>>> spam.sort(reverse=True)
>>> spam
['elephants', 'dogs', 'cats', 'badgers', 'ants']
>>> eggs[0]
'hello'
>>> eggs[1:3]
(42, 0.5)
>>> len(eggs)
Principalul mod in care tuplurile si listele difera este ca tuplurile sunt imutabile.
('cat', 'dog', 5)
['cat', 'dog', 5]
>>> list('hello')
Seturi
Din documentatia oficiala Python 3:
A set is an unordered collection with no duplicate elements. Basic uses include membership
testing and eliminating duplicate entries. Set objects also support mathematical operations like
union, intersection, difference, and symmetric difference.
Cand se doreste crearea unui set gol nu folositi {} ci folositi functia set(). S = {} va returna un
dictionar gol.
>>> s = {}
>>> type(s)
<class 'dict'>
>>> s = {1, 2, 3, 2, 3, 4}
>>> s
{1, 2, 3, 4}
>>> s = {1, 2, 3}
>>> s[0]
>>>
>>> s = {1, 2, 3}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
Si cu update(), mai multe.
>>> s = {1, 2, 3}
>>> s
>>> s = {1, 2, 3}
>>> s.remove(3)
>>> s
{1, 2}
>>> s.remove(3)
KeyError: 3
>>> s = {1, 2, 3}
>>> s.discard(3)
>>> s
{1, 2}
>>> s.discard(3)
>>>
set union()
union() sau | o sa creeze un nou set cu toate elementele din cele 2 seturi.
>>> s1 = {1, 2, 3}
>>> s2 = {3, 4, 5}
{1, 2, 3, 4, 5}
set intersection()
intersection sau & o sa returneze un nou set care contine doar eementele commune celor 2
seturi.
>>> s1 = {1, 2, 3}
>>> s2 = {2, 3, 4}
{3}
set difference()
difference sau – o sa returneze doar elementele care sunt intr-un singur set.
>>> s1 = {1, 2, 3}
>>> s2 = {2, 3, 4}
{1}