12 - Variables enteras, flotantes y cadenas de caracteres

Hasta este momento hemos visto como definir variables enteras y flotantes. Realizar su carga por asignación y por teclado.

Para iniciarlas por asignación utilizamos el operador =

#definición de una variable entera
cantidad=20
#definición de una variable flotante
altura=1.92

Como vemos el intérprete de Python diferencia una variable flotante de una variable entera por la presencia del caracter punto.

Para realizar la carga por teclado utilizando la función input debemos llamar a la función int o float para convertir el dato devuelto por input:

cantidad=int(input("Ingresar la cantidad de personas:"))
altura=float(input("Ingresar la altura de la persona en metros ej:1.70:"))

A estos dos tipos de datos fundamentales (int y float) se suma un tipo de dato muy utilizado que son las cadenas de caracteres.

Una cadena de caracteres está compuesta por uno o más caracteres. También podemos iniciar una cadena de caracteres por asignación o ingresarla por teclado.

Inicialización de una cadena por asignación:

#definición e inicio de una cadena de caracteres
dia="lunes"

Igual resultado obtenemos si utilizamos la comilla simple:

#definición e inicio de una cadena de caracteres
dia='lunes'

Para la carga por teclado de una cadena de caracteres utilizamos la función input que retorna una cadena de caracteres:

nombre=input("ingrese su nombre:")

Problema 1:

Realizar la carga por teclado del nombre, edad y altura de dos personas. Mostrar por pantalla el nombre de la persona con mayor altura.

Programa: ejercicio58.py

Ver video

print("Datos de la primer persona")
nombre1=input("Ingrese nombre:")
edad1=int(input("Ingrese la edad:"))
altura1=float(input("Ingrese la altura Ej 1.75:"))
print("Datos de la segunda persona")
nombre2=input("Ingrese nombre:")
edad2=int(input("Ingrese la edad:"))
altura2=float(input("Ingrese la altura Ej 1.75:"))
print("La persona mas alta es:")
if altura1>altura2:
    print(nombre1)
else:
    print(nombre2)

Es importante notar que cuando cargamos un entero el dato devuelto por la función input se lo pasamos a la función int que tiene por objetivo convertirlo a entero:

edad1=int(input("Ingrese la edad:"))

Cuando cargamos un valor con decimal el dato devuelto por la función input se lo pasamos a la función float que tiene por objetivo convertirlo a float:

altura1=float(input("Ingrese la altura Ej 1.75:"))

Finalmente cuando cargamos una cadena de caracteres como es en este caso el nombre de una persona la función input retorna directamente una cadena de caracteres.

nombre1=input("Ingrese nombre:")

Problema 2:

Realizar la carga de dos nombres por teclado. Mostrar cual de los dos es mayor alfabéticamente o si son iguales.

Programa: ejercicio59.py

Ver video

nombre1=input("Ingrese el primer nombre:")
nombre2=input("Ingrese el segundo nombre:")
if nombre1==nombre2:
    print("Ingreso dos nombre iguales")
else:
    if nombre1>nombre2:
        print(nombre1)
        print("es mayor alfabeticamente")
    else:
        print(nombre2)
        print("es mayor alfabeticamente")

Cuando trabajamos con cadenas de caracteres al utilizar el operador > estamos verificando si una cadena es mayor alfabéticamente a otra (esto es distinto a cuando trabajamos con enteros o flotantes)

Por ejemplo 'luis' es mayor a 'carlos' porque la 'l' se encuentra más adelante en el abecedario que la 'c'.

Problema 3:

Realizar la carga de enteros por teclado. Preguntar después que ingresa el valor si desea cargar otro valor debiendo el operador ingresar la cadena 'si' o 'no' por teclado.
Mostrar la suma de los valores ingresados.

Programa: ejercicio60.py

Ver video

opcion="si"
suma=0
while opcion=="si":
    valor=int(input("Ingrese un valor:"))
    suma=suma+valor
    opcion=input("Desea cargar otro numero (si/no):")
print("La suma de valores ingresados es")
print(suma)

Para resolver este problema hemos inicializado una variable de tipo cadena de caracteres (también se las llama variables de tipo string) con el valor "si", esto hace que la condición del while se verifique verdadera la primera vez. Dentro del while luego de cargar el valor entero se pide la carga por teclado que confirme si desea cargar otro valor, en caso que cargue el string "si" el ciclo repetitivo while se vuelve a repetir.

El ciclo se corta cuando el operador carga un string distinto a "si".

Es importante notar que el string "si" es distinto al string "Si", es decir las mayúsculas no tienen el mismo valor alfabético que las minúsculas (después veremos que podemos convertir mayúsculas a minúsculas y viceversa)

Problema propuesto

  • Realizar la carga de dos nombres de personas distintos. Mostrar por pantalla luego ordenados en forma alfabética.

    Ver video

Solución
ejercicio61.py

nombre1=input("Ingrese el primer nombre:")
nombre2=input("Ingrese el segundo nombre:")
print("Listado alfabetico:")
if nombre1<nombre2:
    print(nombre1)
    print(nombre2)
else:
    print(nombre2)
    print(nombre1)