Anda di halaman 1dari 18

EscueladeIngenieraenConstruccin,TallerI,II2016

Tema3Elementosbsicosdellenguajede
programacin
Elementosbsicosdellenguajedeprogramacin
Expresionesysentencias
Variablesoidentificadores
Tiposdedatos
Operadores
Comentarios
Indentacin

QuesPython?
Lenguajedeprogramacindinmico,interpretadoyfcildeaprender
CreadoporGuidoVanRossumen1996
Genealoga:
Setl(NYU,J.Schwartzetal.19691980)
ABC(Amsterdam,Meertensetal.1980)
Python(VanRossumetall.1996)
Ampliamenteutilizadoencienciaeingeniera
Multituddebibliotecas
Cuentaconunacomunidadopensourcemuyactiva
Pythonesunlenguajedeprogramacinfcildeaprenderypotente.
Disponedeeficacesestructurasdedatosdealtonivelyunasolucindeprogramacinorientada
aobjetossimpleperoeficaz.
ElnombreesenhonoraunaseriellamadaMontyPythonFlyingCircusdelaBBCdeLondres.

AmbientedeprogramaindePython

SeutilizarnvariasherramientasparatrabajarconPython.SeutilizarlalineadecomandosdePythony
algunosotrosIDE'sparaescribiryejecutarelcdigo.

ProgramacinenPython
#Ejemploprogramaquecalculaelreadeuntriangulo
#ingresodedatos
altura=int(input('Ingreselaaltura:'))
base=int(input('Ingreselabase:'))
#clculo
area=base*altura/2
#semuestraelresultado
print("ELreadeltringuloes",area)

AcontinuacinsepresentaunaintroduccinalasintaxisdePython.

IntroduccinalasintaxisdePython
Convencionessintcticas
Setabula(indenta)unavezparaindicaralcomienzodelbloque
Seeliminaelindentadoparaindicarelfinaldelbloque

IdentificadoresenPython
Usadosparadarnombrealosdiferentesobjetosquecomponenunprograma:
variables
funciones
clases
mdulos
paquetes
Enelejemploanterior:altura,base,input

Sintaxisdelosidentificadores
Definicin:Unidentificadoresunasecuenciadecaracteresalfanumricos,elprimerodelosculesdebe
seralfabtico.

MaysculasyMinsculas
Pythonesunlenguajecasesensitivo:distinguemaysculasdeminsculas.
Asporejemplo,losidentificadorestaller1,TALLER1,Taller1ytAllEr1paraPythonsontodos
distintos.
Lenguajescaseinsensitivos:Pascal,Basic,Fortran
Lenguajescasesensitivos:C,Java,Perl,Python

SintaxisdePython
Palabrasreservadas

and,as,assert,break,class,continue,
else,except,finally,for,from,global,
is,lambda,nonlocal,not,or,pass,
while,with,yield,def,del,elif,
if,import,in,raise,return,try,

Algunasdelassentenciasmsutilizadas(*tarea)
import
from
class
try/except/finally
print
if/elif/else
for/else
while/else
raise
assert
with/as
del
pass
break
continue
def
yield
global

Expresionesysentencias

Expresionesaritmticas
Lasexpresionesmssimplessonlasvariablesylosliterales.Lasotrasexpresionesseconstruyenusando
losoperadores+*///%**:
Ejemplosdeexpresiones:
a(variablenumrica)
12
13.4
4+2
(a+3)/x
(a+8)/(b+2.0)*(c3.5b)

Operadoresaritmticos
1a=10
2b=3
3#realizarunasumade2numeros
4resultado=a+b
5
6#restar103=7
7resultado=ab
8
9#realizarunasuma
10resultado=a+b
11
12#multiplicacionde10*3=30
13resultado=a*b
14
15#divisionnaturalresultado=10/3queesaprox3.333
16resultado=a/b
17
18#divisionconfloor/piso,elresultadoseredondeahaciaabajo
19resultado=a//b#resultado=3,no3.3333
20
21#modulo/residuo,elresiduodeunadivision
22resultado=a%b#resultadoes1
23
24#exponencial,elevaalapotenciade
25resultado=a**3#10elevadoa3=1000

Ordendeprecedencia
Cuandohaymsdeunoperadorenunaexpresin,elordendeevaluacindependedelas
reglasdeprecedencia.Pythonsiguelasmismasreglasdeprecedenciaalasque
estamosacostumbradosparasusoperadoresmatemticos.ElacrnimoPEDMASestil
pararecordarelordendelasoperaciones:
LosParntesistienenlaprecedenciamsaltaypuedenusarseparaforzarla
evaluacindeunaexpresinenelordenqueusteddesee.Yaquelasexpresiones
enparntesisseevalanprimero,2*(31)es4,y(1+1)**(52)es8.Tambin
puedeusarparntesisparaqueunaexpresinquedemslegible,comoen
(minutos*100)/60,aunqueestonocambieelresultado.
LaExponenciacintienelasiguienteprecedenciamsalta,asque2**1+1es3y
no4,y3*1**3es3yno27.
LaMultiplicacinyDivisintienenlasmismaprecedencia,queesmsaltaquela
delaAicinylaSubstraccin,quetambintienenlamismaprecedencia.Asque
2*31da5enlugarde4,yes1,no6.
Losoperadoresconlamismaprecedenciaseevalandeizquierdaaderechaal
igualquelgebra.As,queenlaexpresin63+2,larestasehaceprimero,
produciendo3yluegosesuma2paraobtenerelnmero5.Silasoperacionesse
evaluarandederechaaizquierda,elresultadohabrasido6(3+2),quees1.

In[3]:
25/12.0*4**2
Out[3]:
33.333333333333336
Pythonposeelostiposdedatosnumricoshabituales,sobreloscualessepuedenejecutarlas
operacionesbsicas:

In[2]:
a=2+2
b=32
c=4*56
d=23/45.0
print(a)
print(b)
print(c)
print(d)
4
1
224
0.5111111111111111

Lasdivisionesporcerocomoesdeesperarpresentanerroralmomentodeejecutarlas:
In[9]:
3/0

ZeroDivisionErrorTraceback(mostrecentcalllas
t)
<ipythoninput92b706ee9dd8e>in<module>()
>13/0
ZeroDivisionError:integerdivisionormodulobyzero
*Eltratamientodeestoserroressevermsadelante.

In[4]:
4/2
Out[4]:
2.0
LadivisinentreenterosenPython3devuelveunnmeroreal,alcontrarioqueenPython2.
In[5]:
2/5
Out[5]:
0.4
Paraforzarladivisinentera,seusaeloperador//:

In[12]:
234//54.999
Out[12]:
4.0
Adems,Pythonincluyetambinnmeroscomplejos(j):
In[13]:
34/4j
Out[13]:
8.5j
In[6]:
54/3j
Out[6]:
18j
Tambienserealizaconversinautomticadeenteroslargos
In[]:
10**10**24
Paramostrarelvalorabsolutoseutiliza:
In[2]:
abs(34)
Out[2]:
34

Conversindetiposnumricos
Paraconvertirentretiposnumricospodemosusarlasfunciones:float(),long(),bool(),int(),complex()
Sienunaexpresinaparecealmenosunoperandoreal,todoslosotrosoperandosse
transformanareal.
Sisequiereevaluar4+5.3sehace4.0+5.3
Estatransformacinsellamacoercin:unvaloresforzadoacambiardetipoautomticamente.

In[7]:
4+5.3
Out[7]:
9.3
In[9]:
3+5/0.2
Out[9]:
28.0
Alconvertiraintsedescartalaparteentera.Sienrealidadserequiereredondear:
In[6]:
int(343434.4545)
Out[6]:
343434
In[12]:
int(20/45.76)
Out[12]:
0
In[8]:
int(34454545/4**(2+1))
Out[8]:
538352
Funcionesmaxymin:
In[9]:
a=3
b=4
c=6
d=8
max(a,b,c,d)
Out[9]:
8

In[10]:
a=3
b=4
c=6
d=8
min(a,b,c,d)

Out[10]:
3

Variables
Nombresdevariables
LosnombresdevariablesvlidosenPythondebeajustarsealassiguientestressimplesreglas:
Sonsecuenciasarbitrariamentelargasdeletrasydgitos.
Lasecuenciadebeempezarconunaletra.
Ademsdea..z,yA..Z,elguinbajo(_)esunaletra.
Serecomiendautilizarnombressignificativosparadarnombrealasvariablesquebrindenunaideadel
paraquseusalavariable.
Porconvencinnoserecomiendautilizarletrasmayusculasalahoradeasignnarnombresalasvariables.
Elcarctersubrayado(_)puedeaparecerenunnombre.Amenudoseusaennombresconmltiples
palabras,talescomoico_tecOestudiantes_escuela_de_construccion.
Hayalgunassituacionesenlasquelosnombresquecomienzanconunguintienenunsignificado
especial,porloqueunareglaseguraesempezartodoslosnombresconunaletraquenoseaunguin.

Declaracin
Adiferenciadeotroslenguajesdeprogramacin,porserPythonunlenguajedetipadodinmico,noes
necesariodeclararlasvariables.

Tiposdedatosbasicos:
intentero
floatreal
boollgico
stringtexto

Asignacinyoperadoresdecomparacin

LaasignacinenPythonfuncionaconeloperador=
In[12]:
a=2
b=4
c=2

Nota:EnPythonlaasignacinnoimprimeelresultadoporpantalla.Unaformadevisualizarla
variablequeacabamosdeasignares:

In[13]:
print(a)
2
Pythonpermiterealizarasignacinencadenadaejemplovariablesxey:
In[15]:
a=b=c
print(a)
2

Tambinsepuederealizar**_asignacinmltiple_**,utilizandolasvariables`x`e`y`para
intercambiarsusvalores:

In[16]:
a=2
b=4
a,b=b,a
print(a)
print(b)
4
2

Operadoresdecomparacin
Losoperadoresdecomparacinson==,!=,<,<=,>,>=.
Dadaslasvariablesx,y=1,2seprocedearealizaroperaionesdecomparacin:

In[18]:
#Seasignanlosvalores
x,y=1,2
#Serealizalacomparacinx=y
print(x==y)
False
In[19]:
#Secomparaxdiferentedey
x,y=1,2
print(x!=y)
True
In[17]:
#Secomparax<,<=,>,>=quey
x,y=1,2
print(x<y)
print(x<=y)
print(x>y)
print(x>=y)
True
True
False
False

Lafuncinprintseutlizaparaimprimirresultadosporpantalla.EnPython2seutilizasinparntesis
ysinposibilidaddepasarargumentosadicionales.

Silasentencianotienesentido,seobtieneunerror:Ej.(2*1j<0+1j>2)
In[18]:
2*1j<0+1j>2

TypeErrorTraceback(mostrecentcalllas
t)
<ipythoninput183761d46d522f>in<module>()
>12*1j<0+1j>2
TypeError:unorderabletypes:complex()<complex()

In[20]:
a=1j
b=2
print(type(a))
print(type(b))
<type'complex'>
<type'int'>

Stringsovariablesdetexto
Stringsocadenasdetexto:Holamundo!
Comillassimplesodobles:Holamundo!
Inmutables
In[1]:
#Ejemplodeasignacindecadenaaunavariable
cadena="Temadeelementosbsicosdepython"
#Seasignalavariableyluegosemuestraelcontenido
cadena
Out[1]:
'Temadeelementosbsicosdepython'

Secuenciasdeescape"\"
Existeuncarcterespecialqueindicafindelnea,esuncarcterdecontrolqueproduceuncambiode
lneaenlasalida:serepresentacomo\n
In[22]:
cadena="Holaestamos\nentaller1"
print(cadena)
Holaestamos
entaller1
In[52]:
"Cursode\"Taller1\""
"""Cursode"Taller1""""
Out[52]:
'Cursode"Taller1"'

Stringinmutable

In[24]:
nombre="Taller"
nombre[0]="P"

TypeErrorTraceback(mostrecentcalllas
t)
<ipythoninput24941f03265209>in<module>()
1nombre="Taller"
>2nombre[0]="P"
TypeError:'str'objectdoesnotsupportitemassignment
In[25]:
nombre="taller"
nombre="icotec"
nombre
Out[25]:
'icotec'

Concatenacin
Acontinuacinsepresetaunejemplodeconcatenacin
In[26]:
nombre="taller1"
nombre2="otrovalor"
nombre+nombre2
Out[26]:
'taller1otrovalor'

Concatenacindeliterales
Doscadenasliteralesconsecutivasseconcatenanautomticamenteslofuncionaconliterales
In[27]:
"IcoTEC""taller1"
Out[27]:
'IcoTECtaller1'

Repeticin
Acontinuacinsemuestraunejemploderepeticin

In[28]:
cadena="taller1"
cadena*6
Out[28]:
'taller1taller1taller1taller1taller1taller1'
In[4]:
cadena='''cadenas
queocupan
variaslneas'''#declaraunacadenadevariaslneas'
cadena
print(cadena)
cadenas
queocupan
variaslneas

Mtodosparaevaluarstringsovariablesdetexto
cadena.isalpha()
Devuelveverdadero(True)sitodosloscaracteresenlacadenasonalfabticos.
cadena.isalnum()
Devuelveverdadero(True)sitodosloscaracteresenlacadenasonalfanumricos.
cadena.isdecimal(),cadena.isdigit(),cadena.isnumeric()
Devuelveverdadero(True)sitodosloscaracteresenlacadenasonnmeros.
cadena.isspace()
Devuelveverdadero(True)sitodosloscaracteressonespaciosenblanco.
cadena.islower(),cadena.isupper()
Devuelveverdadero(True)sitodosloscaracteressonminsculasomaysculas,
respectivamente.
cadena.istitle()
Devuelveverdadero(True)sielprimercarcterdelacadenaesmaysculasyelresto
minsculasoenelcasodequehayapalabrasseparadasporespaciosenblancoque
cumplanlamismaregla.

Formatearsalida

SubcadenasoSubstrings
In[]:
#Ejemplodefuncin""in""
In[]:
#Ejemplodelafuncin"".find
In[]:
#Ejemplodelafuncinlen
In[]:
#Ejemplodelafuncin"".upper()
In[]:
#Ejemplodelafuncin"".lower()
In[]:
#Ejemplodelafuncin"".lstrip()
In[]:
#Ejemplodelafuncin"".rstrip()
In[]:
#Ejemplodelafuncin"".strip()

Ejerciciosprctica
Asignaraunavariablellamadacadenasunombrecompleto:cadena='Nombrecompleto'
1.Retornareltamaodelacadena
2.Devolverlosprimeroscincocaracteresdelacadena.
3.Retornarlossieteltimoscaracteres.
4.Retornardeloscincoprimeroscaracteres,losqueocupanposicionespares.
5.Retornardelosltimostrececaracteres,losdeposicionesimpares.
6.Retornarenmayscula,loscaracteresenposicionesmltiplodetres.
7.Retornardedosendos,delcaracterenlaposicin4aldela10.
8.Devolverresultadosiestelcaracteryo"a"enlacadena.

Comentarios(#)

In[23]:
1+2#Esteesuncomentario
Out[23]:
3

Indentacin
EnPythonlasunidadeslgicasseestructuranmediantebloques,unbloqueesunconjuntode
instruccionesqueseejecutansecuencialmente
Enestecasoenparticular,sonaquellasinstruccionesejecutadascuandolacondicines
verdadera.
Pythonutilizaelindentadoparareconocerlaslneasqueformanunbloquedeinstrucciones.

Entradasalidayseleccin
input,print
Entradaestandard
Laentradaestndarseinterpretacomounasecuenciadecaracteres.
Pordefectoestasociadaconelteclado/pantalla,perosepuederedirigir.
Lasinstruccionesdeentrada(lectura)consumencaracteresdelaentradaylotransmitenal
programa.
Generalmenteseleeunalneacompleta.
Unprogramapythonrecibedatosdemuydiversasfuentes(nosiemprelaentradaestndar).

EntradaEstndar(input)
Paraingresardatosdirectamentedelaentradaestndardisponemosdelasfuncionespredefinidas:
input(mensaje)Ingresaunalneadesdelaentradaylaevalacomounaexpresinmensaje
esopcional,siapareceesdesplegadoenlasalidasinfindelnea.
Generalmenteseutilizanenunaasignacinej:altura=input('Altura:')
In[14]:
altura=int(input("Altura:"))
Altura:5

SalidaEstndar(print)
Lainstruccinprintesutilizadaparadesplegardatosenlasalidaconsullamada,implcitamente:
Sevalanlasexpresiones
Setransformanacadena(funcinrepr)
Sedesplieganseparadasporespacios
Sinohayunacomaalfinalsedespliegaunfndelnea
In[2]:
print('%(lenguaje)sposee%(#)03dpalabrasreservadas.'%\
{'lenguaje':"Python","#":30})
Pythonposee030palabrasreservadas.

Anda mungkin juga menyukai