Tipos de Datos y Comentarios en Python

Sitio: Facultad de Ingeniería U.Na.M.
Curso: Informática ET241/EM241/IC241/IN241/IM204
Libro: Tipos de Datos y Comentarios en Python
Imprimido por: Invitado
Día: miércoles, 3 de julio de 2024, 06:34

1. Contenidos

Este libro trata sobre los distintos tipos de datos, su sintaxis, inicialización y métodos disponibles.

2. Introducción

A diferencia de otros lenguajes de programación, Python no tiene la necesidad de declarar el tipo de una variable.

Esto se conoce como tipado dinámico y es una de las características que mencionamos oportunamente en la introducción al lenguaje Python.

Por eso, al declarar una variable vamos a escribir su nombre y antes de usarla sí tenemos que darle un valor.

Una variable se crea el primer momento en que se asigna un valor a la misma.

En esta imagen se puede ver que quiero imprimir el valor de la variable x , que no estaba declarada.

Figura 1

Pero si declaramos y le damos un valor, no habrá error:

  Figura 2

En el siguiente ejemplo de la Figura 3, vemos que se declara una variable (línea 8) , pero no se le da un valor y por lo tanto se interpreta como un error en la línea 8 : name 'a' is not defined , no llega a procesar el intérprete la línea 9, que sería donde se le da un valor a esa variable a. Si se comenta la línea 8, este script funcionaría sin problemas, porque en la línea 9 se declara y se le da una valor a la variable a.

Figura 3

Figura 4

Esto no sucede por ejemplo en Listas tema que veremos mas adelante.. pero es una variable muy distinta es un dato de otro tipo, tipo list puntualmente.

Mencionaremos los tipos de datos más importantes para nuestro curso.

Ejemplo:

En esta asignatura, comenzaremos por los más importantes:

  • str (Arreglo de Caracteres)
  • int  (Entero)
  • float ( Real)
  • bool ( Lógico)
Pregunta Signo Ilustración Ilustraciones Vectoriales, Clip Art Vectorizado  Libre De Derechos. Image 97096477.

¿Qué significa que Python tiene un tipado dinámico?
  1. Que podemos cambiar el tipo de una variable a cualquier tipo según lo que le vayamos asignando.
  2. Que el tipo de las variables se define solo al principio del código.
  3. Que solo podemos asignarle un tipo a las variables y este no puede ser cambiado.
  4. La 1 y la 2 son correctas.

3. Comentarios

Los comentarios NO son un tipo de dato, pero son muy útiles para el programador.

En los capítulos siguientes de este libro se utilizarán con frecuencia comentarios, es por eso que trata el tema en este momento.

Podemos incluir como comentario en un Script de Python la consigna de un ejercicio por ejemplo, entre otras cosas.

En definitiva:

1) Los comentarios pueden ser utilizados para explicar el código Python.
2) Los comentarios pueden ser usados ​​para hacer el código más legible.
3) Los comentarios pueden ser utilizados para evitar la ejecución de código cuando se prueba.

La creación de un comentario 1 SOLA LÍNEA:

 Los Comentarios en Python comienzan  con un #, el intérprete de Python ignorará el contenido de esa línea.

   Figura 1

Los comentarios pueden ser colocados al final de una línea, y Python ignorarán el resto de la línea:

  Figura 2

Veamos como se vería en el Spyder:

Figura 3.

Si una línea tira un error, podríamos hacer que no se ejecute simplemente comentándola.

Figura 4

Podemos ver que las líneas 5 y 6 tienen colores distintos... esto es por que están comentadas.

La creación de un comentario de VARIAS LÍNEAS:

Abriendo y cerrando ''' ( tres veces comillas simples) se puede hacer un comentario multilínea.

  Figura 5

En este caso, vemos cómo el Spyder  colorea de distinta manera los comentarios de una línea (#), en color gris, respecto de los multilínea (''') en color verde.

4. Strings

En Python, no existe un dato que contenga un solo caracter ( como si existe en C++), en Python todo lo que está entre comillas simples ( '  ' ) o comillas dobles ( "  ") son considerados Arreglos o Matrices de Caracteres o texto.

Cuando hacemos referencia a Caracteres o Texto estamos hablando de los caracteres de la tabla ASCII.

La asignación de un string o arreglo de caracteres a una variable se realiza escribiendo el nombre de la variable seguido por un signo igual y la cadena:

Por ejemplo:
a = "Hello"
print(a)


 ¿Qué sucede al ejecuta el siguiente código?:

a = "Hello"
print(a)
print(type(a))




La ventaja de poder elegir entre comillas simples o dobles la encontramos cuando necesitemos anidar unas comillas dentro de otras. Observar el siguiente ejemplo:

 >>> print('Una de mis series favoritas era "La casa de la pradera".')

Una de mis series favoritas era "La casa de la pradera".

Esto lo hemos podido conseguir utilizando el par interior de comillas de tipo diferente a la que abre y cierra el string, de modo que Python no puede confundirse a la hora de delimitar el fin de la cadena.

Pero, ¿como haríamos si necesitáramos imprimir las propias comillas simples o dobles, con libertad, dentro de un string?

La solución pasa por utilizar “caracteres de escape”. Referenciamos las comillas simples y dobles precediéndolas de un backslash (\), de modo que Python ignore su significado habitual delimitando strings. El caracter \ se conoce con el nombre de secuencia de escape.

Para escribir una comilla simple, emplearíamos \’ y, para una doble, \”.

Por ejemplo:

>>> print('Una de mis canciones favoritas de Beatles es "Maxwell\'s silver hammer".')

Ver la salida del código y debatir con el compañero qué se logra poniendo la \ :


Existe un problema al escribir strings largos, y es que deben estar en la misma línea de código, pues Python interpretaría una pulsación de Enter como una nueva línea de código.

Si por cuestiones de comodidad, necesitamos “partir” nuestro código, continuando en una nueva línea física, pero que forme parte de la misma línea lógica, podemos hacerlo terminando la línea física con el carácter de escape \ y pulsando Enter a continuación.

Puede ver ésto en el siguiente ejemplo:

 Escribir el siguiente código:

Figura 1

ver  que al final de la línea 1 y 2  está el caracter \ . La salida sería:

Figura 2

Vemos que se refiere a "partir" el string en la edición pero NO en la salida al ejecutarse la línea.

Si eliminamos  la \ vemos en Spyder que la línea 13 se marca con otro color..

Figura 3

Probar la salida del código y debatir con el compañero qué se logra poniendo la \ :

Conclusión : el caracter \ se toma como un caracter de escape

Veamos opciones para asignar a una variable una cadena o string de varias líneas, hay dos alternativas.

Se propone al alumno tipear lo siguiente en Python.

Alternativa 1: podemos  utilizar tres comillas dobles:

Escribir el siguiente código:
Figura 4




Alternativa 2: También se podría lograr reemplazando las comillas dobles por simples.


 Escribir el siguiente código:

Figura 5



Vamos a seguir con el tema string o cadenas de caracteres, vamos a ver como se almacenan
Se pide al alumno tipear lo siguiente:


Figura 6

y observar cuál es la salida, interpretando cada línea.

Esto, representado gráficamente sería:

Figura 7

Conclusiones:

  1. Una Cadena está formada por elementos.
  2. Cada elemento tiene una posición que se conoce con el nombre de índice.
  3. El índice comienza en cero, cero es la primer posición.
  4. Si la cadena tiene N elementos el último índice será N-1
  5. Para acceder a cada elemento debo escribir el nombre de la cadena y entre [ ] el número del índice.

   Ver la salida del siguiente código y debatir con el compañero :

print(nombre[-1])   # ¿Qué caracter se obtiene?

Supongamos que deseo corregir la cadena o string nombre, ya que un nombre propio se escribe la primera con mayúsculas: Daniel.

El elemento a corregir sería nombre[0].

   Debatir que sucede si se escribe el siguiente código:

nombre[0]="D"

Escribir el siguiente código:

Figura 8

¿Qué hace la parte de código: nombre[1:6]?

¿Se puede alterar UN elemento de una cadena o string?
¿Se pueden alterar TODOS los elementos de una cadena o string?
¿Qué salida produce la última línea: print(type(nombre))?

Vamos comentar algunos de los métodos de las cadenas, haciendo referencia a la página de documentación de python:

Se deja al alumno la tarea para que realice los ejercicios de la siguiente página:  Ejercicios de cadenas.
En estos links se pueden ver ejemplos de algunos métodos :

4.1. String - Métodos frecuentes

Primero comentemos las diferencias entre funciones y métodos. Son muy parecidos.

Estos temas se verán mas adelante, pero para poder utilizarlos y entender en principio que son y como se pueden utilizar, vamos a hacer una introducción.

Función:

Es una porción de código que ejecuta una tarea específica, puede recibir argumentos, con los cuales trabaja y puede o no regresar valores.

Un caso especial de función se conoce como procedimiento, es una función que no regresa nada.

Una función realiza una acción sobre algún/algunos elementos.

Analogía:

  • Bananas, Leche => Datos de entrada, Argumentos.
  • Banana= Argumento 1
  • Leche= Argumento 2.
  • Licuadora= Función.
  • Licuado= Dato de Salida o Retorno

Figura 1

Método:

Un método es una función, pero de un Objeto.

Un objeto es una  variable de una Clase que se y conoce con el nombre de instancia.

Una  Clase provee una forma de empaquetar datos y funcionalidad juntos. Al crear una nueva clase, se crea un nuevo tipo de objeto.

Analogías para entender Objetos:

A partir de una clase automóvil, se pueden crear varios objetos: automóvil deportivo, automóvil de cuidad, automóvil camioneta

A partir de una clase perro se pueden crear varios objetos: Caniche, Labrador, Pastor Alemán.

Las Clases Perro y Automóvil , pueden tener un método correr, frenar.

La clase automóvil puede tener un método estacionar, la clase Perro no.

La clase automóvil NO puede tener un método Jugar.

Figura 2

Un método se aplica sobre un objeto. Veremos métodos que se aplican sobre el objeto string.

Un método se aplica indicando el nombre del string, luego va un punto (.) y el nombre del método y entre paréntesis los argumentos que requiera el método.

Veamos en el Contexto de String a que se refiere métodos, por mas que podamos dudar las explicaciones anteriores, vamos a ver que el uso nos permite hacer grandes tratamientos de los string.

Figura 3

Figura 4

Vemos que sin entender profundamente que es un método, si podemos usar los beneficios de los mismos.

Hay muchos métodos para los string. Veremos algunos de ellos y vamos a realizar algunos ejercicios para fijar el concepto de aplicación de métodos a strings.

4.2. Métodos de String de "c" a "f"

En esta sección el alumno deberá probar, ejecutar el código en el Spyder e interpretar la salida del código.

Se aconseja luego de probar el código propuesto,  modificarlo y tratar de anticipar la salida al ejecutar el script .

Luego ejecutar el código modificado para poder concluir si la salida es la que anticipaba.

Es una sección para trabajar con métodos de Python, pensar y analizar, no solo hacer copy / paste y run o play.

capitalize(): Convierte el primer caracter del string a mayúsculas.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "hola bienvenido a Python."  # convierte la h de hola a Hola
x = txt.capitalize()
print (x)


casefold(): Convierte el string a minúsculas.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "HOLA BIENVENDO A Python."
x = txt.casefold()
print (x)


center():  Regresa el string centrado entre los espacios pasados como argumentos.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "Este es un Titulo."
x = txt.center(50) # título centrado entre 50 espacios.
print (x)


count() : regresa el número de veces que aparece el argumento pasado.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "este es un Titulo." # txt es el nombre de un string
x = txt.count("es") # nombre del string punto método count, argumento "es"
print (x)

endswith(): regresa un valor lógico True o False, si el valor pasado como argumento está al final del string.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "este es un Titulo." #
x = txt.endswith(".") # ¿termina txt con punto?
print (x)


expandtabs() : establece en tamaño de los tabuladores.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "Este\t es\t un \t ejemplo." # \t es el tabulador
x = txt.expandtabs(5) # tabula con 5 espacios
print (x)


find(): busca la ocurrencia del argumento pasado y regresa la posición.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "Este es un ejemplo de string."
x = txt.find("es") # busca "es" es txt.
print (x) # imprime 5, es la posición donde comienza la e de es.

4.3. Método format

Este método fue mostrado en "Python primer contacto". Como es un método de uso frecuente. vamos a tratar mas a fondo el mismo.

Definición y Uso:

El método format() da formato al valor especificado/s e inserta dentro del  marcador de posición {} de la cadena, el valor  al que hacen referencia.

El marcador de posición se define mediante llaves: {}. Los marcadores de posición pueden ser identificados mediante índices nombrados {Nombre_de_mes}, {Nombre_de_dia}, índices numerados {0}, {1}, o incluso los marcadores de posición vacíos {}.

El método format() devuelve la cadena con formato.

Veamos varios ejemplos:

 Figura 1

Podemos ver el uso de los tres casos para format en la Figura 1.

En la línea 7 , se utiliza un indice con nombres ( nombre , edad) , en la línea 8 un índice numerado (0,1) y en la 9, el marcador está vacío, en esta caso se realiza la inserción por el orden en que aparecen dentro de la línea.  Esto quiere decir la primer aparición de {}: es {}  en la línea 9, se le asigna "Juan" , las segunda aparición de {}, se le asigna 36.

Dentro de los marcadores se pueden agregar elementos que permiten  dar formato al resultado. Esto no se verá en esta asignatura, pero a modo de ejemplo:

Figura 2

Figura 3

Podemos ver en la línea 8 se ingresa un entero, luego en la 9, el string utiliza el marcador de posición {0:b} para convertir el marcador {0} en binario y finalmente eso se pasa print en la línea 10, aplicando el método format a txt con el argumento x que será reemplazado por {0}, pero insisto : Esto último no se verá en esta asignatura.

4.4. Métodos de String con "i"

En esta sección el alumno deberá probar, ejecutar el código en el Spyder e interpretar la salida del código.

Se aconseja luego de probar el código propuesto,  modificarlo y tratar de anticipar la salida al ejecutar el script .

Luego ejecutar el código modificado para poder concluir si la salida es la que anticipaba.

Es una sección para trabajar con métodos de Python, pensar y analizar, no solo hacer copy / paste y run o play.

index()    Searches the string for a specified value and returns the position of where it was found

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt = "Este_es_un_texto_de_prueba." # este es un string
print(txt.index('es'))
print(txt.index('tex'))

Observación:

La mayoría de los métodos que comienzan con is.... y no tiene argumento, retornar un True o False.

isalnum()    Returns True if all characters in the string are alphanumeric

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '123456789' #este es otro string
print(txt1.isalnum()) #ver que el método no tiene argumento
print(txt2.isalnum()) #ver que el método no tiene argumento


isalpha()    Returns True if all characters in the string are in the alphabet

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '123456789' #este es otro string
print(txt1.isalpha()) #ver que el método no tiene argumento
print(txt2.isalpha()) #ver que el método no tiene argumento


isdecimal()    Returns True if all characters in the string are decimals

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '12.34' #este es otro string
txt3 = '1234'
print(txt1.isdecimal()) #ver que el método no tiene argumento
print(txt2.isdecimal()) #ver que el método no tiene argumento
print(txt3.isdecimal()) #ver que el método no tiene argumento


isdigit()    Returns True if all characters in the string are digits

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '12.34' #este es otro string
txt3 = '1234'
print(txt1.isdigit()) #ver que el método no tiene argumento
print(txt2.isdigit()) #ver que el método no tiene argumento
print(txt3.isdigit()) #ver que el método no tiene argumento


isidentifier()    El método isidentifier () devuelve True si la cadena es un identificador válido, de lo contrario es False.

Una cadena se considera un identificador válido si solo contiene letras alfanuméricas (a-z) y (0-9), o guiones bajos (_). Un identificador válido no puede comenzar con un número o contener espacios.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

a = "MyFolder"
b = "Demo002"
c = "2bring"
d = "my demo"
print(a.isidentifier())
print(b.isidentifier())
print(c.isidentifier())
print(d.isidentifier())


islower()    Returns True if all characters in the string are lower case

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '1abcd' #este es otro string
txt3 = 'abc de' #este es otro string
txt4=   'abcdef' #este es otro string
print(txt1.islower()) #ver que el método no tiene argumento
print(txt2.islower()) #ver que el método no tiene argumento
print(txt3.islower()) #ver que el método no tiene argumento
print(txt4.islower()) #ver que el método no tiene argumento


isnumeric()    Returns True if all characters in the string are numeric

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_prueba_123' #este es un string
txt2 = '123' #este es otro string
txt3 = '123.44' #este es otro string
txt4=   'abcdef' #este es otro string
print(txt1.isnumeric()) #ver que el método no tiene argumento
print(txt2.isnumeric()) #ver que el método no tiene argumento
print(txt3.isnumeric()) #ver que el método no tiene argumento
print(txt4.isnumeric()) #ver que el método no tiene argumento


isprintable()    Returns True if all characters in the string are printable

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_\t_prueba_123' #este es un string
txt2 = '123' #este es otro string
print(txt1.isprintable()) #ver que el método no tiene argumento
print(txt2.isprintable()) #ver que el método no tiene argumento


isspace()    Returns True if all characters in the string are whitespaces

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_\t_prueba_123' #este es un string
txt2 = 'Este es un texto de\t prueba 123' #este es otro string

print(txt1.isspace()) #ver que el método no tiene argumento
print(txt2.isspace()) #ver que el método no tiene argumento


istitle()     El método title () devuelve True si el string tiene formato de encabezado o un título.


Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_\t_prueba_123' #este es un string
txt2 = 'Abcde Efghi' #este es otro string
txt3 = '123.44' #este es otro string
txt4=   'Abcde' #este es otro string
print(txt1.istitle()) #ver que el método no tiene argumento
print(txt2.istitle()) #ver que el método no tiene argumento
print(txt3.istitle()) #ver que el método no tiene argumento
print(txt4.istitle()) #ver que el método no tiene argumento
txt='hOLA cAROLA DAME la hora'
txt.istitle() # el texto aqui saldía False.
txt5='Hola Carola Dame La Hora'
txt5.istitle() # el texto aqui saldía True


isupper()    Returns True if all characters in the string are upper case

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto_de_\t_prueba_123' #este es un string
txt2 = 'ABCDE EFGHI' #este es otro string
txt3 = '123.44' #este es otro string
txt4=   'Abcde' #este es otro string
print(txt1.isupper()) #ver que el método no tiene argumento
print(txt2.isupper()) #ver que el método no tiene argumento
print(txt3.isupper()) #ver que el método no tiene argumento
print(txt4.isupper()) #ver que el método no tiene argumento

4.5. Métodos de String de "j" a "r"

Tarea para el Alumno. Escribir  y analizar la salida del Script.

En esta sección el alumno deberá probar, ejecutar el código en el Spyder e interpretar la salida del código.

Se aconseja luego de probar el código propuesto,  modificarlo y tratar de anticipar la salida al ejecutar el script .

Luego ejecutar el código modificado para poder concluir si la salida es la que anticipaba.

Es una sección para trabajar con métodos de Python, pensar y analizar, no solo hacer copy / paste y run o play.

join()    Joins the elements of an iterable to the end of the string

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este_es_un_texto de Prueba ' #este es un string
texto=' '.join(txt1) #el método TIENE argumento
print(texto)
otrotexto='*'.join(txt1)  #el método TIENE argumento
print(otrotexto)



ljust()    El método ljust () dejará alinear la cadena, utilizando un carácter especificado (el espacio es el predeterminado) como el carácter de relleno.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Texto de Prueba ' #este es un string
texto=txt1.ljust(20,'*') #el método TIENE argumento
print(texto)
otrotexto=txt1.ljust(20,'_')  #el método TIENE argumento
print(otrotexto)


lower()    Converts a string into lower case

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Texto de Prueba ' #este es un string
txt2 = 'TEXTO DE PRUEBA ' #este es un string
texto=txt1.lower() #el método NO TIENE argumento
print(texto)
otrotexto=txt1.lower()  #el método NO TIENE argumento
print(otrotexto)


lstrip()    El método lstrip () elimina los caracteres iniciales (el espacio es el carácter inicial predeterminado para eliminar)

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'pppppeeeee.... Texto de Prueba ' #este es un string
txt2 = 'xxxxxxxyyyuuuuuu___ TEXTO DE PRUEBA ' #este es un string
texto=txt1.lstrip('ep.') #el método NO TIENE argumento
print(texto)
otrotexto=txt2.lstrip('yxu')  #el método NO TIENE argumento
print(otrotexto)


replace()    Returns a string where a specified value is replaced with a specified value

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Me gusta la manzana' #este es un string
texto=txt1.replace('manzana' ,'frutilla') #el método  TIENE 2  argumentos
print(texto)
otrotexto=txt1.replace('Manzana' ,'frutilla')  #el método TIENE 2 argumentos
print(otrotexto)
otrotextomas=txt1.replace('Xanzana' ,'frutilla')  #el método TIENE 2 argumentos
print(otrotextomas)

¿Que pasa cuando el argumento inicial no se encuentra en txt1?


rfind()    Searches the string for a specified value and returns the last position of where it was found

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Me gusta la manzana' #este es un string
txt2 = '123_456_33x' # este es otro string
texto=txt1.rfind('manzana')  #el método TIENE 1 argumento
print(texto)
otrotexto=txt2.rfind('3')  #el método TIENE 1 argumento
print(otrotexto)
textomal=txt1.rfind('Manzana')  #el método TIENE 1 argumento
print(textomal)


rindex()    Searches the string for a specified value and returns the last position of where it was found ( es lo mismo que rfind)

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Me gusta la manzana' #este es un string
txt2 = '123_456_33x' # este es otro string
texto=txt1.rindex('manzana')  #el método TIENE 1 argumento
print(texto)
otrotexto=txt2.rindex('3')  #el método TIENE 1 argumento
print(otrotexto)
#textomal=txt1.rindex('Manzana')  #esta línea tiene erro. Cual es?
#print(textomal) #descomentar las dos ultimas líneas y ver el error.

Otro ejemplo:

txt = "Adios muchachos"
print(len(txt))
x = txt.rindex('o')
print(x)
x = txt.rfind('o')
print(x)


rjust()    Returns a right justified version of the string

Se puede usar para posicinar el texto en la pantalla.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este es un Título' #este es un string
texto=txt1.rjust(20)  #el método TIENE 1 argumento
print(texto)
texto=txt1.rjust(50)  #el método TIENE 1 argumento
print(texto)
texto=txt1.rjust(5)  #el método TIENE 1 argumento
print(texto)


rpartition()  

El método rpartition () busca la última aparición de una cadena especificada y divide la cadena en una varias partes formando una tupla y veremos mas adelante. Tupla es un tipo de dato, como un arreglo o vector.

Crea tres elementos.

El primer elemento contiene la parte anterior a la cadena especificada.

El segundo elemento contiene la cadena especificada.

El tercer elemento contiene la parte después de la cadena.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este es un Título es una prueba' #este es un string
print(type(txt1))
texto=txt1.partition('Título')  #el método TIENE 1 argumento
print(texto)
print(type(texto))
print(texto[0])
print(texto[1])
print(texto[2])


rsplit()    Splits the string at the specified separator, and returns a list

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Enero Febrero Marzo Abril Mayo Junio' #este es un string
print(type(txt1))
texto=txt1.rsplit(' ')  #el método TIENE 1 argumento, es un espacio
print(texto)
print(type(texto))
print(texto[0])
print(texto[1])
txt2 = 'Enero,Febrero,Marzo,Abril,Mayo,Junio' #este es otro string
otrotexto=txt2.rsplit(',')  #el método TIENE 1 argumento, es la coma ,
print(otrotexto)
print(type(otrotexto))
print(otrotexto[3])
print(otrotexto[4])



rstrip()    Returns a right trim version of the string

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = '      Mayo        ' #este es un string, ver que hay muchos espacios despues de Mayo
print(type(txt1))
mes=txt1.rstrip()  #el método NO TIENE argumento
print(mes)
print('Espero que para',mes,' haya pasado la pandemia')

txt2 = '__________Mayo__________' #este es un string, ver que hay muchos espacios despues de Mayo
print(type(txt2))
otromes=txt2.rstrip('_')  #el método TIENE 1 argumento, guión bajo
print(otromes)
print('Espero que para',otromes,' haya pasado la pandemia')


4.6. Métodos de String de "s" a "z"

Tarea para el Alumno. Escribir  y analizar la salida del Script.

En esta sección el alumno deberá probar, ejecutar el código en el Spyder e interpretar la salida del código.

Se aconseja luego de probar el código propuesto,  modificarlo y tratar de anticipar la salida al ejecutar el script .

Luego ejecutar el código modificado para poder concluir si la salida es la que anticipaba.

Es una sección para trabajar con métodos de Python, pensar y analizar, no solo hacer copy / paste y run o play.

split()    Splits the string at the specified separator, and returns a list

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este es un string en python' #este es un string
print(type(txt1))
txt2=txt1.split() #el método NO TIENE argumento
print(txt2)
print(type(txt2))
print(txt2[0])
print(txt2[1])
print(txt2[2])
print(txt2[3])


splitlines()    Splits the string at line breaks and returns a list

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = 'Este es un string en python\n en esta otra línea continua el string ' #este es un string
print(type(txt1))
txt2=txt1.splitlines() #el método NO TIENE argumento
print(txt2)
print(type(txt2))
print(txt2[0])
print(txt2[1])


startswith()    Returns true if the string starts with the specified value

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = input('Ingrese un string: ') #Almaceno un string en txt1
texto=input('Ingrese el texto a buscar al inicio: ') # ingreso un texto para buscar al INICIO
print('El string :{}\nEl string comienza con {}?. Respuesta {}'.format(txt1,texto,txt1.startswith(texto)))
#ver que format tiene 3 argumentos!!1


strip()    Returns a trimmed version of the string

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = '           Esto es un string     ' #Almaceno un string en txt1, hay varios espacios
#adelante y luego del texto
print('Ahora muesto ',txt1,' con los espacios ')
texto=txt1.strip() # aplico el método a strip , sin Argumento.
print('Ahora muesto ',texto,' sin los espacios ')


swapcase()    El método swapcase () devuelve una cadena donde todas las letras mayúsculas son minúsculas y viceversa.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = ' Este es el texto 1'
txt2 = ' ESTE ES EL TEXTO 2'
txt3 = ' eSTE eS eL tEXTO 3'
print('El string txt1 es: {}'.format(txt1))
print('Ahora muestro txt1 con el método swapcase :{}'.format(txt1.swapcase()))
print('El string txt2 es: {}'.format(txt2))
print('Ahora muestro txt2 con el método swapcase :{}'.format(txt2.swapcase()))
print('El string txt3 es: {}'.format(txt3))
print('Ahora muestro txt3 con el método swapcase :{}'.format(txt3.swapcase()))




title()    Converts the first character of each word to upper case

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = ' Este es el texto 1'
txt2 = ' este es el texto 2'
txt3 = ' eSTE eS eL tEXTO 3'
print('El string txt1 es: {}'.format(txt1))
print('Ahora muestro txt1 con el método swapcase :{}'.format(txt1.title()))
print('El string txt2 es: {}'.format(txt2))
print('Ahora muestro txt2 con el método swapcase :{}'.format(txt2.title()))
print('El string txt3 es: {}'.format(txt3))
print('Ahora muestro txt3 con el método swapcase :{}'.format(txt3.title()))



upper()    Converts a string into upper case

Tarea para el Alumno. Escribir  y analizar la salida del Script.

txt1 = ' Este es el texto 1'
txt2 = ' este es el texto 2'
txt3 = ' eSTE eS eL tEXTO 3'
print('El string txt1 es: {}'.format(txt1))
print('Ahora muestro txt1 con el método swapcase :{}'.format(txt1.upper()))
print('El string txt2 es: {}'.format(txt2))
print('Ahora muestro txt2 con el método swapcase :{}'.format(txt2.upper()))
print('El string txt3 es: {}'.format(txt3))
print('Ahora muestro txt3 con el método swapcase :{}'.format(txt3.upper()))


zfill()  El método zfill () agrega ceros (0) al comienzo de la cadena, hasta que alcanza la longitud especificada.

Si el valor del parámetro len es menor que la longitud de la cadena, no se realiza ningún relleno.

Tarea para el Alumno. Escribir  y analizar la salida del Script.

x=(input('Ingrese un par de digitos:'))
print(x)
y=x.zfill(10)
print(y)
z=(input('Ingrese un texto:'))
print(z)
t=z.zfill(20)
print(t)

4.7. Métodos de string.

String es un tipo de dato, como lo son  enteros, booleanos y otros que vermos mas adelante( lista, diccionarios, tuplas)

En este link que dejo hay muchos métodos que pueden ser de utilidad para consulta en línea.

http://pyspanishdoc.sourceforge.net/lib/string-methods.html


4.8. ASCII Decimal.

ASCII a Decimal

Podemos obtener el valor ASCII de un caracter.

Para ello se puede usar la función ord().

Es una función incorporada en Python 3, para convertir la cadena que representa un carácter.

En la tabla ASCII tenemos :


veamos como mostrar los valores decimales de las letras a hasta la z.

la salida de este scritp sería:


Decimal a ASCII

Para el proceso inverso se puede usar la función chr.

Si  ord("a") = 97 => chr(ord("a")+2) será igual a c...


4.9. Preguntas

¿Cuál de las siguientes instrucciones es válida para una variable frase de tipo cadena de texto?

  1. frase.capitalize()
  2. str.capitalize(frase)
  3. capitalize(frase)
  4. La 1 y la 2
Si tenemos un string en una línea de Python muy larga y queremos separar en varias líneas ¿ que caracter debemos usar?

  1. ; (punto  y coma)
  2. / ( barra)
  3. \ (contrabarra)
  4. Enter
 ¿El código que figura a continuación es correcto? Notar que : \ 'p tiene un espacio entre la \ y 'p.

texto='Esto es un ejemplo de un string muy largo en Python'\ 'por eso'
        'vamos a usar la contrabarra para separar'
print (texto)

  1. El error es por el espacio: \ 'por eso'  luego de la contrabarra.
  2. El error es por que hay algo luego de la contrabarra.
  3. El error es por que se debería usar la / barra para separa string en dos líneas.
  4. No hay errores.


¿Cómo podemos obtener la longitud de la cadena str?
  1. length(str)
  2. len(str)
  3. long(str)
  4. size(str)

¿Cómo podemos extraer la palabra “casa” de la siguiente cadena: “Tengo una casa roja” guardada en la variable frase?. Ayuda, pensar en frase[x:y]
  1. frase[frase.find('casa'):]
  2. frase[frase.find('casa'):len('casa')]
  3. frase[frase.find('casa'):frase.find('casa')+len('casa')]
  4. frase[frase.find('casa'):+len('casa')]
¿Para qué utilizamos el método find() en Python?
  1. Devuelve un entero representando la posición de la cadena dada..
  2. Devuelve un float representando la posición de la cadena dada.
  3. Busca un elemento en una cadena y lo devuelve.
  4. La 1 y la 2 son correctas dependiendo de un parámetro.

5. Enteros o "int"

Las variables del tipo numéricas se crean cuando se asigna un valor.

Figura 1

La salida de este script sería:

Figura 2

Como el tipado es dinámico en Python, no hay mucho mas que decir.

6. Real o "float"

Float, o "número de coma flotante" es un número, positivo o negativo, que contiene uno o más decimales.

Figura 1

La salida de este script sería:

Figura 2

Tampoco en este caso hay mucho para agregar ya que el tipado es dinámico como se vé en la salida.

7. Lógico o "bool"

Las computadoras trabajan con el Sistema Numérico Binario.

Esto quiere decir que solo pueden  tener dos valores posibles. Estas variables son conocidas como : VARIABLES BOOLEANAS.

Las VARIABLES BOOLEANAS son binarias sólo admiten dos valores: verdadero (true) o falso (false).

Notar que es coherente, por que SOLO se puede tener un valor o Verdadero o Falso.

Los lenguajes de programación toman:

  • DISTINTO DE CERO equivalente a TRUE.
    • Con esto estamos diciendo que si evalúo en una expresión al número 1 ó 2 ; 10,  será tomado como True. Esto tendrá mas sentido cuando lo veamos dentro del contexto de la expresión if de Python.

  • CERO o None es equivalente a FALSO.
     

Vemos algunos ejemplos de lo que se puede almacenar en variables booleanas.

Está ordenada de mayor a menor esta secuencia de números 1,2,3,4,5,6,7  => Verdadero.

Existe el número  8 en la secuencia  1,2,3,4,5,6,7 =>  Falso.

Existe el número  5  en la secuencia  1,2,3,4,5,6,7 => Verdadero.

Es  3< 5  => Verdadero.

Es  7< 5  => Falso.

Veamos ahora algo en el interprete de Python, si escribimos el siguiente script:

Figura 1

La salida del script de la figura 2 sería:

Figura 2

Podemos ver que el tipo de clase es bool o Booleano.

Veamos un ejemplo mas.

Figura 3

la Salida que resulta de la ejecución del Script de la figura 4 sería:

Figura 4

Podemos ver que en la línea 15 se muestra la suma de dos variables booleanas a una del tipo entera, y el resultado ( 6) es un número entero, no booleano ( class 'int'), esto se conoce con el nombre de casting, y se verá mas adelante. Casting es la conversión de un tipo de datos en otro.


Observación: Esto tendrá mas sentido cuando lo veamos dentro del contexto de la expresiones como while, if..etc de Python mas adelante.