Documente Academic
Documente Profesional
Documente Cultură
'Hola Mundo'
3.8.3. Clases
A continuación, una lista de clases integradas Python para los tipos de cadenas de
caracteres:
3.8.3.1. basestring
Es la clase base de las clases str y unicode.
3.8.3.2. str
Son secuencias inmutables de cadenas de caracteres con soporte a caracteres ASCII.
'Hola Mundo'
'Hola Mundo'
3.8.3.3. unicode
Son secuencias inmutables de cadenas de caracteres con soporte a caracteres Unicode.
>>> u'Jekechitü'
u'Jekechit\xfc'
r/ R,el cual indica, que se trata de una cadena raw (del inglés, cruda). Las
cadenas raw se distinguen de las normales en que los caracteres escapados
mediante la barra invertida (\) no se sustituyen por sus contrapartidas. Esto es
especialmente útil, por ejemplo, para usar las expresiones regulares.
>>> type(raw)
<type 'str'>
u/ U, el cual indica, que se trata de una cadena que utiliza codificación unicode.
>>> type(saber_mas)
<type 'unicode'>
<type 'unicode'>
Secuencia
Significado
Escape
\newline Ignorado
\\ Backslash (\)
\' Comillas simple (')
\" Comillas doble (")
\a Bell ASCII (BEL)
\b Backspace ASCII (BS)
\f Formfeed ASCII (FF)
\n Linefeed ASCII (LF)
\N{name} Carácter llamado name en base de datos Unicode (Solo Unicode)
\r Carriage Return ASCII (CR)
\t Tabulación Horizontal ASCII (TAB)
\uxxxx Carácter con valor hex 16-bit xxxx (Solamente Unicode). Ver hex.
\Uxxxxxxxx
Carácter con valor hex 32-bit xxxxxxxx (Solamente Unicode).
Ver hex.
\v Tabulación Vertical ASCII (VT)
\ooo Carácter con valor octal ooo. Ver octal.
\xhh Carácter con valor hex hh. Ver hex.
También es posible encerrar una cadena entre triples comillas (simples o dobles). De
esta forma puede escribir el texto en varias líneas, y al imprimir la cadena, se
respetarán los saltos de línea que se introdujeron sin tener que recurrir a los carácteres
escapados y las comillas como los anteriores.
3.8.6. Operaciones
Las cadenas también admiten operadores aritméticos como los siguientes:
>>> a + b
'unodos'
>>> c = "tres"
>>> c * 3
'trestrestres'
3.8.7. Comentarios
Son cadenas de caracteres las cuales constituyen una ayuda esencial tanto para quien
está desarrollando el programa, como para otras personas que lean el código.
...
>>>
El carácter # puede estar al comienzo de línea (en cuyo caso toda la línea será
ignorada), o después de finalizar una instrucción válida de código.
...
... a, b = 0, 1
... print b,
...
1 1 2 3 5 8 13 21 34 55 89
Al igual que los comentarios de un sola linea, son cadenas de caracteres, en este caso
van entre triples comillas (simples o dobles), esto tiene el inconveniente que, aunque
no genera código ejecutable, el bloque delimitado no es ignorado por el intérprete
Python, que crea el correspondiente objeto de tipo cadena de caracteres.
>>> """comentarios en varias lineas"""
...
Comentar cada una de las líneas con el carácter #: en general todos los editores
de programación y entornos de desarrollo (IDEs) disponen de mecanismos que
permiten comentar y descomentar fácilmente un conjunto de líneas.
Utilizar triple comillas (simples o dobles) para generar una cadena multilínea: si
bien este método es aceptado.
... a, b = 0, 1
... print b,
... # se calcula la sucesión Fibonacci
... a, b = b, a + b
...
1 1 2 3 5 8 13 21 34 55 89
Los comentarios multilínea usado con mucha frecuencia como en las varias sintaxis
Python como comentarios de documentación a continuación se listan las sintaxis más
comunes:
Módulos.
Funciones.
Clases.
Métodos.
3.8.8. Docstrings
En Python todos los objetos cuentan con una variable especial llamada __doc__,
gracias a la cual puede describir para qué sirven los objetos y cómo se usan. Estas
variables reciben el nombre de docstrings, o cadenas de documentación.
Ten en cuenta, una buena documentación siempre dará respuesta a las dos preguntas:
3.8.8.1. Funciones
Python implementa un sistema muy sencillo para establecer el valor de
las docstrings en las funciones, únicamente tiene que crear un comentario en la
primera línea después de la declaración.
>>> hola("Plone")
Hola Plone !
>>> help(hola)
hola(arg)
El docstring de la función
>>>
El docstring de la función
...
...
... def metodo(self):
...
>>> o = Clase()
>>> help(o)
class Clase
| El docstring de la clase
| __init__(self)
| metodo(self)
>>> o.__doc__
>>> o.__init__.__doc__
>>> o.metodo.__doc__
'El docstring del método de clase'
def despedir():
def saludar():
>>> help(mi_modulo)
NAME
despedir()
saludar()
>>> help(mi_modulo.despedir)
despedir()
Opcionalmente , usted puede listar las variables y funciones del módulo con la
función dir(), de la siguiente manera:
>>> dir(mi_modulo)
['__builtins__',
'__cached__',
'__doc__',
'__file__',
'__loader__',
'__name__',
'__package__',
'__spec__',
'despedir',
'saludar']
Como puede apreciar, muchas de estas variables son especiales, puede comprobar sus
valores:
'mi_modulo'
3.8.9.1. Formateo %
El carácter modulo % es un operador integrado en Python. Ese es conocido como el
operador de interpolación. Usted necesitará proveer el % seguido por el tipo que
necesita ser formateado o convertido. El operador % entonces substituye la frase
‘%tipodato’ con cero o mas elementos del tipo de datos especificado:
También aquí se puede controlar el formato de salida. Por ejemplo, para obtener el
valor con 8 dígitos después de la coma:
>>> tipo_calculo = "raíz cuadrada de dos"
>>> print "N. factura: %d, Total a pagar: %f" % (345, 658.23)
>>> print "Tipo Octal: %o, Tipo Hexadecimal: %x" % (027, 0x17)
Esto es una forma más clara y elegante es referenciar objetos dentro de la misma
cadena, y usar este método para sustituirlos con los objetos que se le pasan como
argumentos.
Los objetos también pueden ser referenciados utilizando un identificador con una
clave y luego pasarla como argumento al método:
Formateo avanzado
Este método soporta muchas técnicas de formateo, aquí algunos ejemplos:
raíz cua
raíz cua
Opcionalmente se puede poner el signo de dos puntos después del número o nombre,
y explicitar el tipo del objeto:
Formateo de números enteros, rellenados con espacios, con las siguientes sentencias:
10
100
1000
Formateo de números enteros, rellenados con ceros, con las siguientes sentencias:
0010
0100
1000
Formateo de números flotantes, rellenados con espacios, con las siguientes sentencias:
153.210
Formateo de números flotantes, rellenados con ceros, con las siguientes sentencias:
003.142
153.210
Truco
Para más información consulte las funciones integradas para operaciones en cadenas de
caracteres.
3.8.11. Ejemplos
A continuación, se presentan algunos ejemplos de su uso:
linea 2
linea 3
linea 4
linea N"""
cadena5 = "Cadena" * 3
>>> help(len)
len(...)
>>> help(int)
class int(object)
>>> help(datetime)
NAME
FILE
(built-in)
CLASSES
__builtin__.object
date
datetime
>>> help(str)
Para salir de esa ayuda presione la tecla q.
>>> help(unicode)
Importante
Usted puede descargar el código usado en esta sección haciendo clic aquí.
Truco
Para ejecutar el código tipo_cadenas.py, abra una consola de comando, acceda al
directorio donde se encuentra el mismo, y ejecute el siguiente comando:
python tipo_cadenas.py
El paquete Tkinter está incluido en Python como un paquete estándar, por lo que
no es necesario instalar nada para usarlo.
El paquete Tkinter es un paquete muy poderoso. Si ya ha instalado Python, puede
usar IDLE, que es el IDE integrado que se envía con Python. Este IDE se ha
escrito utilizando Tkinter. ¡Suena grandioso!
Usaremos Python 3.6, por lo que si está utilizando Python 2.x, se recomienda
encarecidamente que cambie a Python 3.x a menos que sepa los cambios en el
lenguaje para que pueda ajustar el código y se ejecute sin errores.Aprende a
desarrollar aplicaciones de GUI utilizando el paquete Python Tkinter. En este
tutorial, aprenderás cómo crear interfaces gráficas escribiendo ejemplos de GUI
de Python
La última línea llama a la función mainloop. Esta función llama al ciclo sin fin de
la ventana, por lo que la ventana esperará cualquier interacción del usuario hasta
que la cerremos.
Si olvidas llamar a la función mainloop, no aparecerá nada al usuario.
Crear un widget label (etiqueta)
Para agregar una etiqueta a nuestro ejemplo anterior, crearemos una etiqueta
usando la clase label de la siguiente manera:
lbl = Label(window, text="Hello")
Luego estableceremos su posición en el formulario utilizando la función grid con
su ubicación, de esta manera:
lbl.grid(column=0, row=0)
Entonces el código completo se verá de esta manera:
Y este es el resultado:
Intentemos agregar más widgets como botones y ver cómo manejar el evento
de click de un botón.
1 def clicked():
2
3 lbl.configure(text="Button was clicked !!")
¡Buenísimo!
Puedes crear un cuadro de texto usando la clase Tkinter Entry de esta manera:
txt = Entry(window,width=10)
Luego, puedes agregar el widget a la ventana usando la función grid, como
siempre.
Entonces nuestra ventana será así:
1 def clicked():
2
3 res = "Welcome to " + txt.get()
4
5 lbl.configure(text= res)
Cada vez que ejecutamos el código, tenemos que hacer click en el widget de
entrada para establecer el foco para escribir el texto, ¿qué pasa si configuramos el
foco automáticamente?
Verifica el resultado:
1 chk_state = IntVar()
2
3 chk_state.set(0) #uncheck
4
5 chk_state.set(1) #check
¡Bastante simple!
report this ad
Establecer el contenido del scrolledtext
Para establecer el contenido del scrolledtext, puedes usar el método insert, de
esta manera:
txt.insert(INSERT,'You text goes here')
Borrar/limpiar el contenido de un scrolledtext
Para borrar el contenido de un widget scrolledtext, puedes usar el método delete,
de esta manera:
txt.delete(1.0,END)
¡Grandioso!
Crear un MessageBox
Para mostrar un cuadro de mensaje usando Tkinter, puedes usar la
librería messagebox, de esta manera:
¡Bastante simple!
1 var =IntVar()
2
3 var.set(36)
4
5 spin = Spinbox(window, from_=0, to=100, width=5, textvariable=var)
bar['value'] = 70
Puedes establecer este valor según el proceso que desees, como descargar un
archivo o completar una tarea.
Después de que escojas un archivoy hagas click en abrir, la variable file tendrá
la ruta del archivo.
También puedes elegir multiples archivos de la siguiente manera:
files = filedialog.askopenfilenames()
Especificar los tipos de archivo (filtro por la
extensión del archivo)
Puedes especificar los tipos de archivo usando el parámetro filetypes, que,
precisamente especifica la extensión en tuplas.
dir = filedialog.askdirectory()
Puedes especificar el directorio inicial del diálogo especificando el initialdir, de
esta manera:
¡Fácil!
Aquí agregamos otro elemento del menú llamado «Edit» con un separador de
menú.
Puedes notar una línea punteada al principio, bueno, si haces click en esa línea,
mostrará los elementos del menú en una pequeña ventana separada.
En este tutorial, vimos muchos ejemplos de Python GUI que utilizan la biblioteca
Tkinter y vimos lo fácil que es desarrollar interfaces gráficas para usarlo.
Este tutorial cubre los aspectos principales del desarrollo de la GUI de Python no
todos. No hay tutorial o un libro pueda cubrir todo.
Gracias.
l= "linea"
n= 2
w = "nueva"
f=w+l
print(f+" es test")
y la salida me da lo siguiente
nuevalinean es test
y está bien, sin embargo cuando agrego:
l= "linea"
n= 2
w = "nueva"
f=w+l
print(f)+repr(n)
entiendo que el comando repr( ) sirve para convertir números en cadena, pero no consigo que
mi salida sea correcta, la cual en teoría debería ser:
nuevalinea2
en vez de eso, recibo el siguiente error:
nuevalinea
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-48-2a5749fb6668> in <module>()
----> 1 print(f)+repr(n)
Mariano
21.4k1313 medallas de oro5757 medallas de plata9393 medallas de bronce
formulada el 22 mar. 17 a las 19:57
2
La función preconstruida repr hace lo que piensas pero con algunos matices que puedes ver en
la documentación, en teoría retorna una cadena que contiene la representación del objeto que se
le pasa, el código Python que representa ese objeto en forma de cadena y con el cual podemos
reconstruirlo, por ejemplo usando eval().
El error se debe a que en realidad concatenas la salida de la función print (que no retorna
nada) con el retorno de repr que es una cadena. Debería ser así:
print(f+repr(n))
Esta de todas formas, no es la manera de hacer lo que deseas aunque en este caso concreto
funcione. Las formas correctas son las que te han proporcionado ya en las respuesta y otras dos
que añado yo (todo para Python 3.x)
Casting a str:
l= "linea"
n= 2
w = "nueva"
print(w+l+str(n))
Método format de las cadenas:
l= "linea"
n= 2
w = "nueva"
print('{}{}{}'.format(w,l,n))
Print separando cada variable por comas y usando el parámetro sep:
l= "linea"
n= 2
w = "nueva"
print(w, l, n, sep='')
En Python >= 3.6 puedes usar los literales de cadena formateados:
l= "linea"
n= 2
w = "nueva"
print(f'{w}{l}{n}')
Métodos de unión y
división
6.5.1. Unir una cadena de forma iterativa
Método: join(iterable)
Retorna: la cadena unida con el iterable (la cadena es separada por cada uno de
los elementos del iterable).
Protocolo: http://
Dominio: eugeniabahit.com
Retorna: una lista con todos elementos encontrados al dividir la cadena por un
separador.
Retorna: una lista donde cada elemento es una fracción de la cadena divida en
líneas.
>>> texto = """Linea 1
Linea 2
Linea 3
Linea 4
"""
Objetivos de la lección
Esta lección es una rápida introducción a técnicas de manipulación
de cadenas de caracteres (o strings) en Python. Saber cómo manipular
cadenas de caracteres juega un papel fundamental en la mayoría de las
tareas de procesamiento de texto. Si quieres experimentar con las
siguientes lecciones puedes escribir y ejecutar pequeños programas tal
como lo hicimos en lecciones previas, o puedes abrir tu intérprete de
comandos de Python / Terminal para probarlos ahí.
Concatenar
Multiplicar
Añadir
mensaje3 = 'Hola'
mensaje3 += ' '
mensaje3 += 'Mundo'
print(mensaje3)
-> Hola Mundo
Extensión
Encontrar
Minúsculas
Reemplazar
Cortar
print(len(mensaje7))
quiere decir que se lleva la cadena de caracteres “mensaje7” a la
función len y entonces enviar el valor resultante de esa función a la
declaración print para ser impresa. Una función puede ser llamada sin
un argumento, pero de todas formas tienes que incluir un par de
paréntesis vacíos después del nombre de la función. Vimos un ejemplo
de ello también.
Secuencias de escape
print('\"')
-> "
print('El programa imprime \"Hola Mundo\"')
-> El programa imprime "Hola Mundo"
Otras dos secuencias de escape te permiten incluir marcas de tabulación
(t) y saltos de línea (n):
print('Hola\tHola\tHola\nMundo')
-> Hola Hola Hola
Mundo
Lecturas sugeridas
Lutz, Learning Python
o Ch. 7: Strings
o Ch. 8: Lists and Dictionaries
o Ch. 10: Introducing Python Statements
o Ch. 15: Function Basics
Sicronización de código
python-es-lecciones1.zip (zip)
Python - Problema con suma, .get y cuadro de texto para numeros
Volver
Nuevo Tema
<<>>
Vista:
Problema con suma, .get y cuadro de texto para numeros
Mateo (29/09/2017 00:11:39)1.790 visitas
1 respuesta
Problema con suma, .get y cuadro de texto para numeros
franco (16/11/2018 14:39:59)
de una suma en el.. al hacerlo me genera error con el .get() y si elimino el .get() en la definicion de la variable el
resultado no da.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
ventana = tk.Tk()
ventana.title("Geometria y Cargas")
ventana.geometry("280x200")
ventana.configure(background="light gray")
gray").place(x=65,y=100)
gray").place(x=65,y=120)
Var=tk.StringVar()
Total=tk.Entry(ventana,textvariable=Var,width= 6).place(x= 135,y= 10)
entrada1=tk.Entry(ventana,width= 10).place(x= 135,y= 100)
def suma():
suma=int(entrada1.get()) + int(entrada2.get())
return Var.set(suma)
btnAceptar=tk.Button(ventana,text="Sumar",width=8,
command=suma).place(x=180, y=150)
ventana.mainloop()
0
Responder
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import tkinter as tk
ventana = tk.Tk()
ventana.title("Geometria y Cargas")
ventana.geometry("280x200")
ventana.configure(background="light gray")
gray").place(x=65,y=100)
gray").place(x=65,y=120)
Var=tk.StringVar()
Total=tk.Entry(ventana,textvariable=Var,width= 6)
entrada1=tk.Entry(ventana,width= 10)
entrada2=tk.Entry(ventana,width= 10)
entrada2.place(x= 135,y= 120)
def suma():
uno = int(entrada1.get())
dos = int(entrada2.get())
return Var.set(suma)
btnAceptar=tk.Button(ventana,text="Sumar",width=8,
command=suma).place(x=180, y=150)
ventana.mainloop()
Si quieres conocer todos los posibles tipos de conversión usando el estilo printf,
puedes consultar la documentación oficial de Python aquí.
Se puede hacer uso de este método del mismo modo que se hacía con el método
tradicional, es decir, sustituyendo valores en función de la posición a través del
marcador {} :
Otro ejemplo:
Como puedes observar, el literal con el que se llama a join es lo que se utiliza
para separar los distintos elementos de la cadena.
Conclusiones