Tipos de variables en python
Una variable es un sitio donde guardamos una determinada información. En función del tipo de información que guardemos (texto, números, booleanas, etc.), la variable será de uno u otro tipo. Por simplicidad sólo vamos a ver las variables de texto y numéricas, ya que son las que se usan en más del 80% de las ocasiones.
Cada variable tiene que tener un nombre con el que referirnos a ella. Python tiene en cuenta si escribimos en mayúsculas o minúsculas la variable (lo que se conoce como case sensitive). No es lo mismo una variable que se llame f1 que una que se llame F1.
Como es lógico y, para evitar confusiones, el nombre de la variable no puede coincidir con los nombres de los «comandos» de python (if, for, etc.). Tampoco podremos usar nombres de variables con tildes o con ñ.
¿Y por qué hay que decir lo que se mete en cada variables? Porque en función de lo que haya dentro de ella, se podrán hacer una u otras cosas, como por ejemplo sumar dos números.
En Python estas son las variables más comunes:
Números
En números hay dos tipos principales, los números enteros (llamados int) y los reales (llamados float). El separador decimal que tenemos que usar es el punto.
Aunque si no decimos el tipo de número que va a contener, Python intentará decidir por si mismo cuál es el más apropiado, esto en ocasiones produce errores. Mi recomendación mientras estés empezando a aprender, es la de que siempre especificar qué tipo de número es, ya que evitará futuras frustraciones.
>>> # Definimos dos variables llamadas numero1 y >>> # numero2, y asociaremos un número a cada una >>> numero1=int(2) >>> numero2=float(2.5) >>> print (numero1) 2 >>> print (numero2) 2.5
Para saber de qué tipo es una determinada variable, basta con preguntarle a Python type(variable).
Texto
Las variables que almacenan texto se denominan strings (str). Tienen que estar entre comillas sencillas(‘) o dobles («), o si el texto ocupa varias líneas, entre triples comillas dobles («»») .
>>> # Definimos dos variables llamadas texto y
>>> # texto2, y asociaremos un texto a cada una
>>> texto="Esto es un texto"
>>> texto2='Esto es otro texto'
>>> print (texto)
Esto es un texto
>>> print (texto2)
Esto es otro texto
>>> # Definimos una nueva variable texto3 que
>>> # incluye un texto multilinea.
>>> texto3="""Hola
... caracola"""
>>> print (texto3)
Hola
caracola
Al igual que sucedía con los números, Python supone que lo que introducimos es un texto al estar entre comillas, aunque siempre podemos forzarle a interpretarlo como texto usando el comando str.
>>> texto3=str(54)
>>> print(texto3)
54
Para unir dos textos, basta con usar el operador +.
>>> print("Hola"+" Caracola")
Hola Caracola
Print y variables
Como hemos visto, el comando print es de gran utilidad para que el programa pueda comunicarse con nosotros. Este comando muestra el texto que pongamos, o incluso el valor que hay dentro de una variable. En el caso de que juntemos texto y números, debemos tomar la precaución de convertir los números en texto, ya que si no, Python no sabe cómo se hace la suma de un texto y un número.
texto="Esto es un texto"
numero=15
# El siguiente comando devuelve un error
print(texto+" "+numero)
# Convirtiendo el número en texto, solucionamos el problema.
print(texto+" "+str(numero))
jokkin dice
me gustaría programar un juego de cartas en python.lo voy a intentar.Poco a poco.
alumno dice
lo has conseguido?¿
Laz dice
Yo quiero hacer un buscador de nombres
kevin dice
lo lograste?
Nicolas dice
Yo logré hacer el juego de cartas llamado 99 y el juego de estrategia astucia naval… Hace un par de meses que empecé a aprender
Elrabos dice
Pues yo estoy realizando una aplicación que se conecta remotamente a un RouterOS con software mikrotik y lo administro desde mi aplicación con GUI echa en python.
Javier dice
Buenas! Como hago para impedir que me ingrese un numero en una variable de texto?
Ya probé poniendo str al momento de ingreso de datos pero me acepta numeros igualmente.
jaime dice
Hola Javier,
python tiene muchas funciones para verificar el tipo de una variable. En tu caso puedes usar la función str.isalpha().
Jorge dice
Muy claro
Marcel Herrera dice
Deberias de pedir donaciones para volver esta página más grande
Anderson Says dice
Buenas tardes amigo como puedo realizar interfaces gráficas? Porque necesito conectar sensores laser para que pueda reflejarse diferentes valores en los gráficos por fa ayudame con esta consulta.
jaime dice
Hola Anderson,
python dispone de diferentes bibliotecas para realizar interfaces gráficas, aunque no son su fuerte. Te pongo algunas de las más populares:
– Tkinter: Es la que viene de serie
– PyQt
– PyGObject
Si sólo quieres dibujar gráficos, puedes usar directamente matplotlib (se integra muy bien con jupyter notebook), seaborn o incluso bokeh.
Marta dice
Hola!
Tengo que crear esto para la universidad y estoy algo perdida. Podría alguien ayudarme?
Estaria remunerado, gracias
Trabajo 2: Modelización paramétrica con Python
Se quiere fabricar una placa rectangular de acero que está sometida a un desplazamiento unitario en un extremo, estando empotrado en el opuesto, con lados B, L. Dicha placa contiene diferentes taladros y para ello se quiere identificar la posición óptima de los mismos. La localización de los taladros son:
1. En el centro de la placa, se tiene un taladro de radio B/5
2. En la línea x = 3B/4, se tiene una fila con 3 taladros de radio B/10 con una
separación de B/10 con respecto a los extremos.
Para este problema, se pide:
1. Generar un script de Python que permita la modelización de dicha placa.
2. Identificar las posiciones más críticas.
3. Analizar los resultados de tensiones normales y tangenciales.
.
Fecha de entrega: 15/06/2019
jaime dice
Hola Marta,
creo que el problema está más relacionado con la resistencia de materiales que con python en sí.
Marta dice
buenas, podría ayudarme en como crear el script python? Lo demás sabría hacerlo yo. Es solo que nose como crear los agujeros en la placa a partir de python
jaime dice
Hola Marta,
evidentemente python no hace agujeros, creo que falta información para poder resolver el problema.
Patricia dice
Quiero crear una plataforma para enseñar programacion en scrath y python para niños. Me puedes orientar
jaime dice
Hola Marta,
quizá lo más sencillo es que empieces con una instalación básica de WordPress.
Gabriel dice
Me gustaria obtener una lista de los tipos de variables que tiene python. Ej: str;int etc.
Donde la obtengo?
jaime dice
Hola Gabriel,
pues hay bastante tipos. Aunque en inglés, puedes encontrarla aquí.
Itsas dice
Hola, tengo un problema. Me gustaría saber si es posible insertar en un string la información guardada en una variable, es decir:
a=’amigos’
string=’ Hola (a)’
string
siendo la respuesta:
Hola amigos
jaime dice
Hola Itsas,
Claro que es posible. Lo explicamos en nuestro artículo sobre variables en la parte de texto.
Se hace con el operador +.
Sí la variable no es un texto (por ejemplo si es un número). Tienes que poner str(variable) para que no te de error.
Nadia dice
Hola..
necesito realizar dos operaciones en cadenas por asi decirlo
a+b=c
y que ese c me lo reconozca como float para poder sumarlo de nuevo
c+d=e
el tema es que no me lo reconoce me aparece este error
correrformula2=float(densidadroca.get())*float(correralgortimo1.get())
ValueError: could not convert string to float: ‘
correralgortimo=StringVar()
def correrformula():
correrformula=float(alturabanco.get())-float(taco.get())+float(pasadura.get())
print(«{:.2f}».format(correrformula))
return correralgortimo.set(correrformula)
correralgortimo1=StringVar()
def correrformula1():
correrformula1=float(alturabanco.get())*float(burden.get())*float(espaciamiento.get())
print(«{:.2f}».format(correrformula1))
return correralgortimo1.set(correrformula1)
botonEnvio=Button(raiz, text=»Calcular Parámetros 1″, command= lambda: [(correrformula()),(correrformula1())])
botonEnvio.config(padx=3, pady=3, bg=»white», font=(«Book Antiqua», 11), fg=»black»)
botonEnvio.pack(side=LEFT)
correralgortimo2=StringVar()
def correrformula2():
correrformula2=float(densidadroca.get())*float(correralgortimo1.get())
print(«{:.2f}».format(correrformula2))
return correralgortimo2.set(correrformula2)
botonEnvio=Button (raiz, text=»Calcular Parámetros 2″, command=correrformula2)
botonEnvio.config(padx=3, pady=3, bg=»white», font=(«Book Antiqua», 11), fg=»black»)
botonEnvio.pack(side=RIGHT)
#————–Parámetros Calculados
alttotalcolexplo=Entry (miFrame, textvariable=correralgortimo)
alttotalcolexplo.grid(row=1, column=8)
alttotalcolexploLabel=Label(miFrame, text=»Altura tot. Col. expl. (m):»)
alttotalcolexploLabel.grid(row=1, column=7, sticky=»e», padx=10, pady=5)
alttotalcolexploLabel.config(font=(«Book Antiqua», 10))
volpozoremovido=Entry(miFrame, textvariable=correralgortimo1)
volpozoremovido.grid(row=2, column=8)
volpozoremovidoLabel=Label(miFrame, text=»Vol/Pozo removido (m3):»)
volpozoremovidoLabel.grid(row=2, column=7, sticky=»e», padx=10, pady=5)
volpozoremovidoLabel.config(font=(«Book Antiqua», 10))
tonpozoremovido=Entry(miFrame, textvariable=correralgortimo2)
tonpozoremovido.grid(row=3, column=8)
tonpozoremovidoLabel=Label(miFrame, text=»Ton/Pozo removido (Ton):»)
tonpozoremovidoLabel.grid(row=3, column=7, sticky=»e», padx=10, pady=5)
tonpozoremovidoLabel.config(font=(«Book Antiqua», 10))
jaime dice
Hola Nadia,
el problema lo tienes porque al menos uno de los dos campos de tkinter (densidadroca o algoritmo1) te devuelve algo que no es posible convertir a float (aparentemente es un apóstrofe).
Revisa el valor devuelto y ten en cuenta que puede que tengas configurado float para que espere un punto (.) en vez de una coma (,).
Andrés dice
Hola, es que estoy tratando de pasar el nombre de un parámetro por un string, es decir
var1 = 2
var2 = 3
for cada_num in range(1,3):
print(funcion(‘var’ + str(cada_num))
Pero no sé si se pueda pasar de un string «var1» a la variable var 1
Cualquier recomendación es ayuda
Gracias!!
jaime dice
Hola Andrés,
puedes hacerlo así:
var1 = 2
var2 = 3
for cada_num in range(1,3):
print(globals()['var' + str(cada_num)])
Aunque NO es recomendable.
Sería mejor usar un diccionario:
variables={"var1": 2, "var2": 3}
for cada_num in range(1,3):
print(variables['var' + str(cada_num)])
Adel dice
Hola, una consulta alguien sabe como puedo agregar una palabra en el primer programa para que luego esa misma palabra se repita en el segundo programa? creo que debo usar una misma variable en varios for distintos, pero no entiendo como
#programa1
palabra_frase = input(«ingresa una frase o palabra: «)
letra= input(«ingresa una letra: «)
cantidad = 0
for i in palabra_frase:
if i == letra:
cantidad += 1
print(«la letra», letra, «aparece», cantidad, «veces»)
#programa2
palabra_frase = input(«Introduce una palabra: «)
for i in range(len(palabra_frase)-1, -1, -1):
print(palabra_frase[i])
jaime dice
Hola Adel,
no entiendo muy bien la pregunta, pero si tienes que usar una variable en más de un programa tienes que grabarla en algún sitio (archivo, base de datos, etc.) porque si no el segundo programa no podrá utilizarla.
Adel dice
Gracias, y como podría guardar esa palabra?
Me piden esto exactamente «escribir un programa que pida al usuario una frase/palabra y una letra, y muestre por pantalla el número de veces que aparece la letra en la frase y Para la frase/palabra solicitada en a), escriba un programa que muestre en pantalla una a una las letras de la frase/palabra ingresada comenzando por la última letra»
jaime dice
Como te comentaba, lo puedes guardar en un archivo, pero hay multitud de formatos: csv, txt, json, sqlite, pickle, etc.
Si estás empezando con python y no te han pedido un formato específico, quizá te estén pidiendo que amplíes el programa para que después de mostrar el número de veces que aparece la letra en la frase, muestres la palabra letra a letra.
Noel Tejeda dice
Excelente página de pana te felicito, me gustó mucho ese menú oscuro y el logo de python como lo colocaste. he aprendido detalles que en otros cursos no lo han dicho.
jaime dice
Me alegro de que te haya gustado Noel
ADRIAN dice
NO LE ENCUENTRO LA MANERA DE RESOLVERLO
En este reto te proponemos programar un código que solicite al usuario que introduzca un número, lo asigne a una variable llamada Dato y lo imprima por la consola. A continuación, deberás solicitar al usuario que introduzca una palabra, lo asigne a la misma variable Dato y lo imprima por la consola. De esta forma comprobarás que la misma variable Dato puede contener un número o un texto.
jaime dice
Hola Adrián,
creo que es bastante sencillo. ¿Dónde exactamente tienes el problema?
Federico dice
En mi caso, no estaría entendiendo la consigna. ¿Hay que escribir una función?
jaime dice
Hola Federico,
¿qué entiendes por consigna? ¿lo que introduce el usuario?
No es necesario escribir una función.
Federico dice
Hola Jaime, gracias por su respuesta. Claro, me confunde la parte de «solicite al usuario», pues yo había pensado en algo así:
Dato = int(8)
print(Dato)
Dato=»palabra»
print(Dato)
Pero, no sé si es correcto.
jaime dice
Hola Federico,
para solicitar datos al usuario se usa la función input
ej. Dato = input(«Introduce un dato: «)
Federico dice
Hola Jaime, gracias por su respuesta.
Entiendo que lo que pide la consigna solo es esto, entonces:
Dato=input(«Introduzca un número»)
print(Dato)
Dato=input(«Introduzca una palabra»)
print(Dato)
jaime dice
Hola Federico,
yo también entiendo que eso es lo que piden en el ejercicio. Al ser python un lenguaje de tipos dinámicos, no es necesario definir qué puede contener una variable con antelación, al contrario de como sucede en otros lenguajes.
Freilyn Eliezer dice
Hola, Me.gustaría saber como se declaran las variables en python
jaime dice
Hola Freilyn,
no es necesario declararlas de manera explícita. Con asignarles un valor es suficiente.
Scarleth dice
Hola, me gustaría saber como a una palabra se le puede asignar un valor total a raíz de una base de datos, donde cada letra tiene su correspondiente valor numérico.
jaime dice
Hola Scarleth,
creo que es un ejercicio y lo suyo es que intentes resolverlo pensándolo por tus propios medios.
Luque dice
Hola buenas tardes:
Me podrías ayudar con algo sencillo?
Necesito el código en python para que me cree 10 carpetas en windows que se llamen:
Tema 1
Tema 2
Tema 3
…
Tema 10
Muchas gracias de antemano.
Luque
jaime dice
Hola Luque,
puedes usar la función mkdir que está en la biblioteca os.