You are on page 1of 34

3.

Python Programazio Lengoaia

Python Programazio lengoaia

Edukia
Sarrera Aldagaiak, adierazpenak eta sententziak Sarrera eta irteera Funtzioak Kontrol egiturak Errekurtsibitatea

Python Programazio lengoaia

Instalazioa

Sarrera

www.python.org
Behera kargatu instalatzialea
Python 3.0 goragoko bertsioa Python 3.1.2 Windows x86 MSI Installer

Exekutatu instalatzailea Exekutatu Python (command line)


Modu interaktiboa

Exekutatu IDLE (Python GUI)


Modu interaktiboa Script modua

Python Programazio lengoaia


Sarrera

Python Programazio lengoaia

Lehenengo Programa

Sarrera

Python Programazio lengoaia

Aldagaiak, adierazpenak eta sententziak


Balioak eta Datu Motak Aldagaiak eta aldagai izenak Eragileak eta eragileen ordena Adierazpenak (espresioak) Sententziak Iruzkinak Ariketak

Aldagaiak, adierazpenak eta sententziak

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Balioak eta Datu Motak


Erabiltzen ditugun balio guztiei Datu Mota bat dagokie
Osoak (int): 1, 2, Errealak (float): 3.2, 6.7,

Karaktere kateak (string): Kaixo denoi! , Kaixo denoi!


>>> type('Kaixo denoi!') <class 'str'> >>> type(3) <class 'int'> >>> type(3.5) <class 'float'> >>> type('3.5') <class 'str'> >>> print('Kaixo denoi!') Kaixo denoi! >>> print(3) 3 >>> print(3.5) 3.5 >>> print('3.5') 3.5

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Aldagaiak
Aldagaietan balioak gorde ditzakegu
>>> a=3 >>> b=4.6 >>> mezua='kaixo denoi!'

>>> a='kaixo!' >>> type(a) <class 'str'> >>> a=3 >>> type(a) <class 'int'> >>> a=3.5 >>> type(3.5) <class 'float'>

>>> a='Kaixo denoi!' >>> print(a) Kaixo denoi! >>> a=3 >>> print(a) 3 >>> a=3.5 >>> print(a) 3.5

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Aldagai Izenak
a-Z(a-Z,0-9,_)*
>>> a=3 >>> b7=4.6 >>> mezu_luzea='kaixo denoi!' >>> is=46 SyntaxError: invalid syntax mezu_luzea=kaixo denoi! SyntaxError: invalid character in identifier

Gako-hitzak (keywords):
and as assert break class continue def del elif else except exec finally for from global if import in is lambda not or pass print raise return try while with yield nonlocal

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Eragileak
+ - * / // % **
>>> 33/5 6.6 >>> 33//5 6 >>> 33%5 3 >>> 'bat'+'bi' 'batbi' >>> 'bat'*'bi' TypeError: can't multiply sequence by non-int of type 'str' >>> 'bat'*3 'batbatbat' >>> 3*'bat' 'batbatbat'

Ebaluazio ordena: () ** * / // % + >>> 10 >>> 14 >>> 9 >>> 16 4+3*2 (4+3)*2 2**3+1 2**(3+1)

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Adierazpenak eta sententziak


Adierazpena (espresioa): aldagai, balio eta eragile konbinaketa Sententzia: exekutagarria den kode zatia
Modu interaktiboan: baliorik balego, erakutsi Script moduan: ez da ezer erakusten (print erabili behar da)

>>> a=3*'Aupa!' >>> print(a) Aupa!Aupa!Aupa! >>> type(a) <class 'str'>

>>> ===== RESTART ====== >>> Aupa!Aupa!Aupa! >>>

Python Programazio lengoaia


Aldagaiak, adierazpenak eta sententziak

Iruzkinak
Programak handitu ahala ULERTEZINAK Iruzkinak lagungarri dira
# zeinuaren atzetik datorren guztia

Ez dira exekutatuak

# Segunduak ordu = s // minutu = (s segundu = s

ordu, minutu eta segundutara 3600 % 3600) // 60 % 60

portzentaia = s / (24 * 3600) * 100

# Egun portzentaia

Python Programazio lengoaia

Sarrera - Irteera
print(adierazpena)
Adierazpenaren balioa erakutsi

Sarrera - Irteera

input(mezua)
Mezua erakutsi

Teklatutik irakurritako karaktere katea bueltatu


>>> a=input('idatzi zerbait:') idatzi zerbait:34.5 >>> a '34.5' >>> type(a) <class 'str'> >>> a = float(input('x: ')) x: 34.5 >>> a 34.5 >>> type(a) <class 'float'> >>> float('23.5') 23.5 >>> str(1/3) '0.333333333333

Python Programazio lengoaia

Lehenengo Programa...

Sarrera - Irteera

Python Programazio lengoaia

Funtzioak
Kalkulu batzuk egiten dituen izendaturiko sententzia segida

Funtzioak

Izena

Argumentua

>>> type(32) <class 'int'>

Bueltatzen duen balioa (EMAITZA) aldagai batean gorde


Pantailatik erakutsitako balioa???

>>> print(45) 45 >>> input('x=') x=34 '34' >>> str(45) '45' >>> int('45') 45 >>> float(45) 45.0

Python Programazio lengoaia

Funtzio Matematikoak

Funtzioak

Funtzio matematikoak modulu matean daude. Erabili aurretik, modulua inportatuko dugu
>>> import math >>> print(math) <module 'math' (built-in)> >>> help(math) >>> math.log(10) 2.302585092994046 >>> math.log10(10) 1.0 >>> math.sin(0) 0.0 >>> math.pi 3.141592653589793 >>> math.sin(math.pi) 1.2246467991473532e-16 Moduluaren inportazioa Moduluaren izen aduen aldagaia sortzen da Moduluari buruzko laguntza (definituak dauden funtzioak). Moduluaren funtzioak erabiltzeko: ModIzena.FunIzena(argumentuak) Modulu batean, funtzioez gain, aldagai bereziak (konstanteak) definituak egon litezke

Python Programazio lengoaia

Konposaketa
Adierazpen (espresio) bat, balio, aldagai, eragile eta funtzioez osotua egon liteke. Funtzioen argumentuak adierazpenen bitartez ematen dira
>>> import math >>> math.exp(math.sin(math.pi/3)) 2.3774426752361646

Funtzioak

Python Programazio lengoaia

Funtzioen definizioa
Funtzio berriak sor ditzakegu Behin funtzio bat definitua izan denean, erabili egin liteke
Funtzio baten definizioa dela adierazten du Funtzioaren sententziak indentatuak (4 hutsune) egon behar dira Funtzio honek ez du argumenturik

Funtzioak

def leloa(): print('Euskara da kanpora') print('eta goazen denok dantzara!')

>>> print(leloa) <function leloa at 0x00B936A8> >>> type(leloa) <class 'function'> >>> leloa() Euskara da kanpora eta goazen denok dantzara!

Python Programazio lengoaia

Argumentuak eta Parametroak


Argumentuak: Adierazpenak (funtzioaren erabilpena) Parametroak: Aldagaiak (funtzioaren definizioa) Funtzio bat deitzean (exekutatzean), argumentuetan erabilitako adierazpenen balioa parametroei esleituko zaie

Funtzioak

def erakutsi(hau): print('Ez dakit zer den ' + hau)


>>> erakutsi('lauki bat') Ez dakit zer den lauki bat >>> erakutsi('etxea') Ez dakit zer den etxea

Python Programazio lengoaia

Parametro eta Aldagaiak... lokalak dira


Funtzio batetako parametro eta aldagaiak soilik funtzioaren barnean existitzen dira (kanpoan ezezagunak dira)
def erakutsi(hau): mezua='Ez dakit zer den ' + hau print(mezua) >>> erakutsi('ezer') Ez dakit zer den ezer >>> print(hau) Traceback (most recent call last): File "<pyshell#10>", line 1, in <module> print(hau) NameError: name 'hau' is not defined >>> print(mezua) Traceback (most recent call last): File "<pyshell#11>", line 1, in <module> print(mezua) NameError: name 'mezua' is not defined

Funtzioak

Python Programazio lengoaia

Funtzio emaitzadunak... eta emaitzarik gabekoak


Emaitzadun funtzioak adierazpenetan erabil daitezke... emaitzarik gabekoak ez Ez du zentzu haundirik funtzio baten emaitzarekin ezer ez egiteak

Funtzioak

Emaitza betirako galtzen da

>>> import math >>> math.sqrt(5) 2.23606797749979 >>> x=math.sqrt(5) >>> print(x) 2.2360679775

Python Programazio lengoaia

... Zergatik erabili funtzioak?

Funtzioak

Programak irakurtzeko eta ulertzeko errazagoak bilakatzen dira. Programen kodea motzagoa izango da, behin eta berriro errepikatzen zen kodea funtzioen barnean jarri dugulako. Aldaketarik egin nahi bada, behin egingo dugu, funtzioaren barnean. Problema haundi bat azpiproblemetan zatitzean, errazagoa izango da azpiproblema bakoitza ongi ebaztea eta ondoren guztiak elkar biltzea. Ongi diseinatutako funtzioak, beste egoera skotan erabilgarriak izango dira. Behin sortu dugunean, edonon erabil dezakegu.

Python Programazio lengoaia

ARIKETAK
1.

Funtzioak

len deritzon funtzioak, karaktere kate baten luzera (karaktere kopurua) kalkulatzen du. Alegia, len('kaixo')-ren emaitza 5 da. Sortu karaktere kate bat pantailatik erakutsiko duen eskuinPrint funtzioa. Funtzio honek karaktere katea beti 40. zutabean amaituko du (testua eskuin justifikazioarekin idatziko balitz bezala. adibidez, ondokoa ikusiko genuke komando leihoan: >>> eskuinPrint('adibide bat') adibide bat >>> eskuinPrint('hau beste adibide bat da') hau beste adibide bat da

2. Ondoko funtzioak abestiaren leloa bi aldiz erakutsiko luke: def leloax2(): leloa() leloa() Leloa 1000 aldiz baino gehiagotan erakutsiko lukeen leloaxpilabat funtzio bat sortzeko gai izango al zara?

Python Programazio lengoaia

Kontrol egiturak
Adierazpen boolearrak Baldintza (IF) Errepikaketa (FOR) Errepikaketa II (WHILE) Ariketak

Kontrol Egiturak

Python Programazio lengoaia

Adierazpen boolearrak
True/False bueltatzen duten adierazpenak dira
Erlazio Eragileak >>> 5==5 True >>> 5==6 False >>> a=(5==5) >>> type(a) <class 'bool'> >>> type(False) <class 'bool'>

Kontrol Egiturak

x == y x != y x<y x>y x <= y x >= y


Erlazio Eragileak AdBool

KONTUZ!!!! = eleipena == berdintza

adierazpen boolearra

and AdBool AdBool or AdBool not AdBool

Python Programazio lengoaia

Adierazpen boolearrak
A True True False False A B True False True False B A and B True False False False A or B

Kontrol Egiturak

True True False False


A True False

True False True False


not A False True

True True True False

>>> a=1 >>> b=2 >>> c=3 >>> a<b and b<c True >>> a<b and b>c False >>> a<b or b>c True >>> a>b or b>c False >>> not(a<b) False >>> not(a>b) True >>> ((not(a>b)) or (c!=d)) and (a<c) True

Python Programazio lengoaia

Baldintza
Baldintza baten arabera, algoritmoaren exekuzioa ezberdina izango da

Kontrol Egiturak

if
if

<baldintza>: <sententziak>

if

<baldintza>: <sententziak> else: <sententziak>

<baldintza>: <sententziak> elif <baldintza>: <sententziak> elif <baldintza>: <sententziak> ...

if

<baldintza>: <sententziak> elif <baldintza>: <sententziak> elif <baldintza>: <sententziak> ... else: <sententziak>

Indentazioak definitzen du zer dagoen kontrol egituraren barnean

Python Programazio lengoaia

Baldintza

Kontrol Egiturak

if x>0 : print('x positiboa da')

if x%2==0 : print('x bikoitia da') else : print('x bakoitia da')


if x>y : print('x y baino haundiagoa da da') elif x<y : print('x y baino txikiagoa da da') else : print('x eta y berdinak dira')

Python Programazio lengoaia

Baldintza

Kontrol Egiturak

def maximoa2(a,b): if a>=b : return a else : return b Indentazio bikoitza

def maximoa3(a,b,c): if a>=b and a>=c: return a elif b>=c : return b else : return c

def AtzeraKontua(n): if n==0 : print('Airean!') else : print(n) AtzeraKontua(n-1)

Python Programazio lengoaia

FOR kontrol egitura


For kontrol egitura barneko sententziak, balio segida baten luzera aina aldiz errepikatuko dira. for aldagaia in balio_segida: <sententziak>
>>> for i in range(3) : print('kaixo!') kaixo! kaixo! kaixo! >>> for i in range(3) : print('kaixo!',i) kaixo! 0 kaixo! 1 kaixo! 2

Kontrol Egiturak

Aldagaiak segidako balioak jasoko ditu iterazio bakoitzean

Balio segidak sortzeko gai izan behar gara

3 elementutako segida bat sortu du i aldagaiak segidako balioak jasotzen ditu... beraz, segidako balioak 0 1 eta 2 dira

Python Programazio lengoaia

range() funtzioa
Zenbaki segida bat sortzen du: range([start,] stop[, step])

Kontrol Egiturak

Ez da balio honetara iritsiko

>>> for i in range(4) : print(i) 0 1 2 3 >>> for i in range(1,4) : print(i) 1 2 3 >>> for i in range(1,4,2) : print(i) 1 3

Jartzen ez badugu, 0-tik hasiko da.

Urratsa edo gehikuntza

def AtzeraKontua(n): if n==0 : print('Airean!') else : print(n) AtzeraKontua(n-1) def AtzeraKontua2(n): for i in range(n,0,-1) : print(i) print('Airean!')

Python Programazio lengoaia

WHILE kontrol egitura


Baldintza bat betetzen den bitartean kontrol egitura barneko sententziak errepikatuko dira while <baldintza>: <sententziak>

Kontrol Egiturak

def zkh(a,b): h=a%b while h!=0 : a=b b=h h=a%b return b

Python Programazio lengoaia

FOR vs WHILE
Exekuzio kopurua aurrez jakin daitekeenean, FOR. Beste kasuetan, WHILE.

Kontrol Egiturak

def AtzeraKontua2(n): for i in range(n,0,-1) : print(i) print('Airean!')

Exekuzio kopurua: n

def zkh(a,b): h=a%b while h!=0 : a=b b=h h=a%b return b

Exekuzio kopurua: ???

Python Programazio lengoaia

break sententzia
Bigizta baten exekuzioa amaitzen du

Kontrol Egiturak

>>> for i in range(1000) : if i != 4 : print(i) else : break 0 1 2 3

break sententzia exekutatzean, bigizta hautsi egiten da.

You might also like