0% au considerat acest document util (0 voturi)
89 vizualizări

Python 2

Documentul prezintă tipuri de date fundamentale în Python, cum ar fi valori, variabile, tipuri de date (intregi, float, string) și funcții pentru manipularea acestora.

Încărcat de

Maria Cristina
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
89 vizualizări

Python 2

Documentul prezintă tipuri de date fundamentale în Python, cum ar fi valori, variabile, tipuri de date (intregi, float, string) și funcții pentru manipularea acestora.

Încărcat de

Maria Cristina
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca PDF, TXT sau citiți online pe Scribd
Sunteți pe pagina 1/ 22

Variabile si tipuri de date

1. Teorie

1.1 Valori

Cand vorbim de value ne referim lucru precum un numar sau o litera pe care un
program il poate manipula.
Ex. de value: 4 (rezultatul de la 2+ 2) sau "Hello, world!"
Aceste values sunt clasificate in clase sau tipuri de date: 4 este intreg, "Hello,
words!" este un string (deoarece contine un sir de caractere).
Un string este identificat de interpretor datorita ghilimelelor.

Tipul unei date

Pentru a afla tipul unei date, folosim functia __type__ care returneaza tipul valorii pe
care o primeste ca parametru

In [2]:

type('Hello, world!')

Out[2]:

str

In [3]:

type(10)

Out[3]:

int
String apartine clasei str iar integer clasei int. Numerele cu virgula apartin clasei
float (de la formatul zecimal -floating point).
La acest nivel, putem sa folosim ambii teremeni: clasa sau tip de date.

In [3]:

type(1.2)

Out[3]:

float

In [4]:

type("2.3")

Out[4]:

str

In [5]:

type("2")

Out[5]:

str

Sirurile in Python pot fi demarcate de apostrof ('), ghilimele (") sau ('''), (""")
Python nu tine cont daca sirul este demarcat de ghilimele, sau apostrof sau 3
ghilimele.

In [6]:

type('Acesta este un sir')

Out[6]:

str
In [7]:

type ("Si acesta este un sir")

Out[7]:

str

In [8]:

type('''Si acesta''')

Out[8]:

str

In [9]:

type("""Sau acesta""")

Out[9]:

str

In interiorul ghilimelelor se pot folosi apostrof _"New Year's Eve"_, iar in interiorul
unui sir demarcat de apostrufuri se pot folosi ghilimele

In [11]:

'Acesta este un sir'

Out[11]:

'Acesta este un sir'

In [12]:

"Si acestea este un sir"

Out[12]:

'Si acestea este un sir'


In [13]:

"""La fel si acesta"""

Out[13]:

'La fel si acesta'

In [14]:

40, 000

Out[14]:

(40, 0)

In [15]:

40000

Out[15]:

40000

Functia __int__ converteste un integer reprezentat ca string intr-un adevarat integer,


iar functia __str__ converteste un integer la un string.

In [3]:

Out[3]:

In [4]:

str(4)

Out[4]:

'4'

Expresia str(4) transforma in string numarul 4 (de tip intreg).


In [5]:

'5'

Out[5]:

'5'

In [6]:

int('5')

Out[6]:

Expresia _int('5')_ transforma in numar intreg string-ul '5'


Toate numerele intregi au un echivalent string, dar nu toate sirurile sunt si numere
intregi

In [7]:

str(1024)

Out[7]:

'1024'

In [8]:

int('wow')

---------------------------------------------------------
------------------
ValueError Traceback (most
recent call last)
<ipython-input-8-b3dd29f1c402> in <module>
----> 1 int('wow')

ValueError: invalid literal for int() with base 10: 'wow'


In [9]:

int(3.4)

Out[9]:

In [10]:

int('3.4')

---------------------------------------------------------
------------------
ValueError Traceback (most
recent call last)
<ipython-input-10-5e199bebc801> in <module>
----> 1 int('3.4')

ValueError: invalid literal for int() with base 10: '3.4'

In Python, nici 'wow', nici '3.4' nu reprezinta expresii valide pentru integer.

Operatorul "+" lucreaza diferit pentru numere intregi si pentru siruri. </font>

In [23]:

5 + 10

Out[23]:

15

In [24]:

'5' + '10'

Out[24]:

'510'
In [13]:

'abc' + 'xyz'

Out[13]:

'abcxyz'

Folosit cu siruri, operatorul + face concatenarea celor 2 siruri.


Punand impreuna cele 2 tipuri de date (int si str) nu este permis</font>

In [14]:

'5' + 10

---------------------------------------------------------
------------------
TypeError Traceback (most
recent call last)
<ipython-input-14-3462b9f136f4> in <module>
----> 1 '5' + 10

TypeError: can only concatenate str (not "int") to str

Dar putem sa folosim urmatoarea expresie:

In [22]:

5 + int('10')

Out[22]:

15

In [16]:

'5' + str(10)

Out[16]:

'510'

Functia __type__ poate sa returneze si tipuri mai complicate:


In [17]:

type(4+7)

Out[17]:

int

In [18]:

type('4'+'7')

Out[18]:

str

In [19]:

type (int('3') + int(4))

Out[19]:

int

In [21]:

type(int('3') + int(4))

Out[21]:

int

1.2 Variabile
__Varibila__ este un nume care se refera la o valoare. Prin operatia de atribuire ("="),
variabila primeste o valoare.

In [25]:

a='Hello, FIM!'
b=16
pi=3.14159
Pe prima linie, variabilaa a primit valoarea Hello, FIM!.
Pe cea de a 2a, variabila b a primit valoarea 16 si pe cea de-a 3 a linie, variabila pi a
primit valoarea 3.14159

Operatorul "=" este folosit pentru atribuire si nu pentru egal, care este "=="

Operatorul "=" atribuie unui nume (variabila), care se gaseste in partea stanga, o
valoare, care se gaseste in dreapta (intotdeauna). </font>

In [26]:

Out[26]:

'Hello, FIM!'

In [27]:

print(a)

Hello, FIM!

In [28]:

Out[28]:

16

In [29]:

print(b)

16

In [30]:

type(a)

Out[30]:

str
In [31]:

type(b)

Out[31]:

int

In [32]:

type(pi)

Out[32]:

float

In [33]:

5=x

File "<ipython-input-33-68a7d230d912>", line 1


5=x
^
SyntaxError: can't assign to literal

In [34]:

x = 10
print('x = ' + str(x))
x = 20
print('x = ' + str(x))
x = 30
print('x = ' + str(x))

x = 10
x = 20
x = 30

Folosim functia __str__ astfel incat x sa fie vazut ca un string. Astfel, operatorul + va
concatena 2 siruri. </font>

In [ ]:

print('x = ' + str(x))


__'x=' + x__ nu este corect. Am vazut ca operatorul + nu functioneaza cu 2 variabile
de tipuri diferite. </font>

In [35]:

x = 10
print('x =', x)
x = 20
print('x =', x)
x = 30
print('x =', x)

x = 10
x = 20
x = 30

Functia __print(' x = ', x)__ produce acelasi rezultat. </font>

In [ ]:

print('x =', x)

Functia print accepta 2 parametri: primul parametru 'x=' este un string iar cel de al
2lea este o variabila x.
Functia print permite mai multi parametri de intrare, separati prin virgula. </font>

In [36]:

x, y, z = 100, -45, 0
print('x=',x,' y=',y,' z=',z)

x= 100 y= -45 z= 0

In expresia de mai sus, avem 2 liste (tuple): _x, y, z_ si 100, -45, 0 separate de
virgula.
Primei variabile din prima lista ii este atribuita prima valoare din cea de a 2a lista
(x=100, y=-45, z=0) </font>
In [37]:

a = 10
print('First, variable a has value', a, 'and type', type(a))
a = 'ABC'
print('Now, variable a has value', a, 'and type', type(a))

First, variable a has value 10 and type <class 'int'>


Now, variable a has value ABC and type <class 'str'>

1.3 Identificatori

Desi in matematica se obisnuieste sa se dea nume simple variabilelor, ex. x, y, in


programare este indicat sa se foloseasca nume mai lungi si mai descriptive pentru
variabile, de ex. sum, height, total, etc.

Numele variabilei trebuie ales astfel incat sa descrie utilizarea variabilei si sa fie si
usor de citit.

Regului pentru numele unei variabile


1. Trebuie sa contina cel putin un caracter.
2. Primul caracter trebuie sa fie o litera (majuscula sau minuscula) sau underscore
(""):
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
3. Restul caracterelor (daca este cazul) pot fi litere, underscore sau cifre.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789
4. Niciun alt caracter (incluzand spatii) nu este permis in numele unei variabile
5. Un cuvant rezervat nu poate fi folosit ca nume de variabila.

Exemple de nume de variabile corecte si incorecte:


Corect: x, x2, total, port_22, FLAG.
Incorect: sub-total, first entry, 4all, #2, class </font>

In [ ]:

class=15

1.4 Tipul float


In [40]:

pi = 3.14159;
print("Pi =", pi)
print("sau", 3.14, "mai scurt")

Pi = 3.14159
sau 3.14 mai scurt

1.5 Tipul string

Caracterele care apar intr-un string sunt literele din alfabet (A-Z, a-z), cifre (0-9),
semne de punctuatie (., :, ,, etc.) si alte simboluri (#, &, %, etc.).
In afara de aceste caractere, se mai pot introduce anumite caractere numite _cod
de control_. Acestea controleaza modul in care textul este afisat pe ecran.
Exemple de cod de control: "\n" -newline, "\t"- tab

In [41]:

print('A\nB\nC')
print('D\tE\tF')
print('WX\bYZ')
print('1\a2\a3\a4\a5\a6')

A
B
C
D E F
WX​YZ
1​2​3​4​5​6

1.6 Functia Input

Functia print permite unui program sa afiseze informatii catre utilizator.


Pentru a obtine informati de la utilizator programele folosesc functia input.
Cea mai simpla utilizare a functiei input este: </font>
In [ ]:

x=input()

In [ ]:

print('Please enter some text:')


x = input()
print('Text entered:', x)
print('Type:', type(x))

Functia input produce doar siruri (strings).


Daca vrem sa introducem numere intregi, folosim functia int pentru a converti in
integer. </font>

In [ ]:

print('Please enter an integer value:')


x = input()
print('Please enter another integer value:')
y = input()
num1 = int(x)
num2 = int(y)
print(num1, '+', num2, '=', num1 + num2)

Putem scrie si functia input folosind si string ca argument:</font>

In [ ]:

x = input('Please enter some text: ')

Astfel, codul de mai sus poate fi scris mai concis, in felul urmator:

In [ ]:

x = input('Please enter an integer value: ')


y = input('Please enter another integer value: ')
num1 = int(x)
num2 = int(y)
print(num1, '+', num2, '=', num1 + num2)
Si chiar mai concis:

In [ ]:

num1 = int(input('Please enter an integer value: '))


num2 = int(input('Please enter another integer value: '))
print(num1, '+', num2, '=', num1 + num2)

1.7 Functia eval

Functia input produce un string din ceea ce este introdus de user.


Daca vrem ca inputul respectiv sa fie un numar, folosim functiile int sau float.
</font>

In [ ]:

x = float(input('Please enter a number'))

Functia eval evalueaza input-ul produs de functia input si transforma automat in


tipul de date corespunzator.
De exemplu: </font>

In [ ]:

x1 = eval(input('Entry x1? '))


print('x1 =', x1, ' type:', type(x1))

x2 = eval(input('Entry x2? '))


print('x2 =', x2, ' type:', type(x2))

x3 = eval(input('Entry x3? '))


print('x3 =', x3, ' type:', type(x3))

x4 = eval(input('Entry x4? '))


print('x4 =', x4, ' type:', type(x4))

x5 = eval(input('Entry x5? '))


print('x5 =', x5, ' type:', type(x5))
In [ ]:

Entry x1? 6
x1 = 6 type: <class 'int'>

Entry x2? 6.0


x2 = 6.0 type: <class 'float'>

Entry x3? x1
x3 = 6 type: <class 'int'>

Entry x4? 'x1'


x4 = x1 type: <class 'str'>

Entry x5? x6
Traceback (most recent call last):

File "<ipython-input-10-bb5de00b9a59>", line 1, in <module>


runfile('/Users/elenaovreiu/.spyder-py3/temp.py', wdir='/Users/ele
naovreiu/.spyder-py3')

De asemenea, putem introduce mai multe valori folosind input. Acestea vor fi
despartite prin virgula:

In [ ]:

num1, num2 = eval(input('Please enter number 1, number 2: '))


print(num1, '+', num2, '=', num1 + num2)

In [ ]:

Please enter number 1, number 2: 4,5


4 + 5 = 9

1.8 Functia print


Functia print afiseaza intotdeauna o linie de text si apoi muta cursorul pe linia
urmatoare astfel incat, orice afisare viitoare apare pe linia urmatoare.
Totusi, functia print accepta un argument aditional, care ii permite cursorului sa
ramana pe acceasi linie.
Acest lucru este realizat de 'end='</font>

In [ ]:

print('Please enter an integer value:', end='')

Un alt mod de a obtine accelasi lucru este:

In [ ]:

print(end='Please enter an integer value: ')

In [ ]:

print('A', end='')
print('B', end='')
print('C', end='')
print()
print('X')
print('Y')
print('Z')

In [ ]:

ABC
X
Y
Z
In [ ]:

w, x, y, z = 10, 15, 20, 25


print(w, x, y, z)
print(w, x, y, z, sep=',')
print(w, x, y, z, sep='')
print(w, x, y, z, sep=':')
print(w, x, y, z, sep='-----')

In [ ]:

10 15 20 25
10,15,20,25
10152025
10:15:20:25
10-----15-----20-----25

2. Probleme Rezolvate

2.1. Scrieti o functie care calculeaza si afiseaza suma a 2 numere intregi, introduse
de la tastatura.

In [ ]:

def main():
a= eval(input('Introduceti primul numar:'))
b=eval(input('Introduceti al doilea numar:'))
s=a+b
print('Suma numerelor este:',s)

main()

Output
In [ ]:

Introduceti primul numar:4

Introduceti al doilea numar:5


Suma numerelor este: 9

In [ ]:

def main():
a=eval(input('Introduceti primul numar:'))
b=eval(input('Introduceti al doilea numar:'))
print('Suma dintre',a, 'si', b, 'este', a+b)

main()

Output

In [ ]:

Rulati programul fara a folosi functia _eval_

In [ ]:

def main():
a= input('Introduceti primul numar:')
b=input('Introduceti al doilea numar:')
s=a+b
print('Suma numerelor este:',s)

main()

In [ ]:

In [7]: main()

Introduceti primul numar:4

Introduceti al doilea numar:5


Suma numerelor este: 45
Deoarece functia input introduce doar string-uri, primul numar, a este vazut ca un string, in
exemplul de mai sus, '4'. La fel si pentru cel de-al 2lea numar, care are valoarea '5'.
In acest caz, operatorul "+" face concatenarea celor 2 string-uri, de unde si rezultatul 45.
</font>

2.2. Scrieţi un program care calculează aria unui cerc de rază dată; valoarea razei se
va citi de la tastatură şi va fi un număr întreg.

In [ ]:

def main():
r= eval(input('Introduceti raza (numar intreg):'))
aria= math.pi*r*r
print('Aria cercului de raza',r, 'este', aria)

main()

In [ ]:

Introduceti raza (numar intreg):3


Aria cercului de raza 3 este 28.274333882308138

2.3. Scrieţi un program care transformă temperatura exprimată în grade Fahrenheit


în grade Celsius. Se va utiliza formula: C = (F–32)*5/9 , unde C – grade Celsius
(număr real), F – grade Fahrenheit (număr întreg).

In [ ]:

def main():
gradf=eval(input('Introduceti temperatura in grade Fahrenheit:'))
gradc = (gradf - 32) * 5/ 9;
print('Temperatura in grade Celsius este',gradc)

main()

Dacă se introduce de la tastatură, de exemplu, valoarea 100, programul va afişa:

In [ ]:

Introduceti temperatura in grade Fahrenheit:100


Temperatura in grade Celsius este 37.77777777777778
2.4. Scrieţi un program care transformă măsura unui unghi din grade (număr întreg)
în radiani (număr real). Se va utiliza relaţia de transformare cunoscută: rad = grad * π
/ 180.

In [ ]:

def main():
grad=eval(input('Introduceti unghiul in grade:'))
rad = grad * math.pi / 180;
print('Masura unghiului este de',rad, 'radiani')

main()

Dacă se introduce de la tastatură, de exemplu, valoarea 360, programul va afişa:

In [ ]:

Introduceti unghiul in grade:360


Masura unghiului este de 6.283185307179586 radiani

3. Probleme Propuse
3.1. Scrieţi un program care să vă afişeze numele pe ecran, ca şi seria şi grupa, pe
două rânduri succesive.

3.2. Se citeşte un întreg . Scrieţi un program care să afişeze: „Aţi introdus numărul
...”.

3.3. Scrieţi un program care citeşte doi întregi şi calculează produsul lor.

3.4. Scrieţi un program care calculează lungimea unui cerc de rază dată; valoarea
razei se va citi de la tastatură şi va fi un număr întreg.

3.5. Scrieţi un program care transformă temperatura exprimată în grade Celsius în


grade Fahrenheit.

3.6. Scrieţi un program care transformă măsura unui unghi din radiani în grade.
3.7.Scrieţi programe care calculează arii pentru pătrat, dreptunghi, triunghi.

3.7. Scrieţi programe care calculează volume pentru cub, paralelipiped, piramidă.

S-ar putea să vă placă și