sábado, 23 de febrero de 2013

Uso avanzado de print python 3 (I/II)

Como venimos aprendiendo en los últimos tutoriales de programación de scripting de Tiempo de Tux hemos hablado algo de python 3 y en esta ocasión aprenderemos a usar el comando con el que hacemos "Hola Mundo" de forma avanzada para crear script's para Unix(consola) mas útiles y usarlos para hacer algo de administración en el sistema:

Como sabemos la sintaxis de print en python 3 es:

print ("Hola")
Como mostraba en mi otro blog,y bien me decian es similar a la de lua 5.2,pero bueno ahora vamos a lo que venimos:

En python existen tipos de datos y estos los podemos manipular y convertir,los cuales los tres mas importantes a demas de los boleanos son:

string = "Cadena de texto encomillada"

integer = 33 # Numero entero

float = 3.14 # Numero de punto flotante

Y con print podemos hacer una conversion a la hora de usarlo,por ejemplo en este caso podemos convertir un entero a string

Porque un entero es así:

33 y una cadena seria asi "33"


Abran una consola y entren a la consola de python3


python3

Y escriban :


3 + 3

Y el resultado sera

6

Pero si lo sumamos como una cadena de texto :


"Hola " + "Mundo"


Y como podemos ver nos junta las dos cadenas(las concatena) solo por las dos comillas(pero estas no se veran en un script)

Aquí el ejemplo:

Podemos sumar dos numeros(enteros) pero convertilos a cadena :

Con el operador de conversión str()


str(3) + str(3)

Y el resultado que nos da es el mismo que se hicieramos:


"3" + "3"
Y esto para que sirve?

La concatenacion de cadenas de texto es algo que podemos usar mucho ya haciendo uso de scripting,ya que por ejemplo si queremos unir dos cadenas de texto desde dos variables podemos hacer esto:

Salimos de la consola de python(ctrl+d,o exit()) y abrimos un editor de texto(en mi caso joe) pueden usar nano,vi,vim

Y escribimos este script


#!/usr/bin/env python3

nombre = str(input("Como de llamas : "))
edad = str(input("Que edad tienes : "))

print ("Te llamas : " + nombre + " y tienes " + edad )



Ejecutamos



Y como vemos concatena todos los datos con un solo print en una sola linea, también implemente lo que acabamos de ver,convertir los dos valores a string,fuese string o entero y de esta manera lo concateno muy bien

Aqui el codigo bueno es este:


#!/usr/bin/env python3

nombre = str(input("Como de llamas : "))
edad = input("Que edad tienes : ")

print ("Te llamas : " + nombre + " y tienes " + str(edad) )


Ya que no le daremos valor a la edad hasta que necesitemos usarlo ya sea a cadena con str() o entero con int()

Solo que hay que tener en cuenta que,para concatenar cadenas esta es la sintaxis:

print ("Cadena" + "Otra Cadena")

Y números es :

print (numero, numero , otro_numero)

Aquí un ejemplo de un script donde tenemos que convertir un entero a sting y a entero

#!/usr/bin/env python3

nombre = str(input("Como de llamas : "))
edad = input("Que edad tienes : ")

print ("Te llamas : " + nombre + " y tienes " + str(edad))
print ("Tienes ", int(edad) * 365, "Dias")

# Tenemos que tener en cuenta que el resto del script usara el 
# tipo de dato que se le de al final
# Podemos verificarlo con type

print (type(edad))

Con la función type nos dira que tipo de dato es,puede ser int,tuple,str,list,etc

También cabe destacar que podemos usar esta sintaxis también en strings:


print (numero, string, otro_numero)

Ahora sabiendo como sumar(concatenar) nuestros strings, podemos pasar a algo mas avanzado que es el formateo de strings:

Si han usado alguna vez o usan mucho shell scripting con bash o perl sabran que podemos introducir una variable que contenga una string con el simbolo $, o en el caso de perl con el simbolo @ o %  pero esto como se puede hacer en python?

Por ejemplo en bash:


#!/bin/bash

var1="ola "
var2="Mundo!!!"

echo "H$var1 $var2"

Y el resultado es:

Y en perl es:

#!/usr/bin/env perl

my $var1 = "ola";

my $var2 = "Mundo!!!";

print "H$var1 $var2\n";

Y el resultado es:


Incluso en ruby:


#!/usr/bin/env ruby

var1 = "ola"
var2 = "Mundo"

puts "H#{var1} #{var2}"

Y bueno en otros lenguajes tambien,pero el hecho es que en python como hacemos eso ?

El problema en python es que no usa identificadores de datos,ya que si hacemos esto:


#!/usr/bin/env python3

var1 = "ola"
var2 = "Mundo"

print ("Hvar1 var2")

El resultado es:

:\ y ese no es el resultado que esperábamos,aunque sabiendo concatenar strings nos funciona asi:

#!/usr/bin/env python3

var1 = "ola"
var2 = "Mundo"


print ("H"+var1+" "+var2)




Pero otra forma es el formateo,esta es la sintaxis:

print ("Texto %s" %(variable))
Lo de rojo es lo importante,en la parte de %s estamos llamando nuestra variable que definimos en %() y estas se llamaran de izquierda a derecha,por ejemplo la primera %s es la primera variable dentro de %() y así sucesivamente:

 Por ejemplo


#!/usr/bin/env python3

var1 = "ola"
var2 = "Mundo"


print ("H%s %s!!!" %(var1,var2))

Y el resultado es:



También lo podemos hacer con datos de números con %d

Ejemplo:


#!/usr/bin/env python3

var1 = 1
var2 = 2

print ("La variable1 tiene un valor de %d y la variable2 tiene un valor de %d" %(var1,var2))
print ("Sumadas es un total de", var1 + var2)



Es es el formato de strings eso es todo por ahora,intentare mostrar lo mas importante de este tema en la parte 2 de este tutorial, así que eso es todo por ahora.


No hay comentarios.:

Publicar un comentario

Los comentarios serán revisados antes de ser publicados.