ff-multiconverter, multimedia, audio, video, linux, ubuntu ubuntu kylin, china, releases, linux terminal, ubuntu, linux, comandos, shell conky, gadgets, ubuntu, linux SpeedTest-Cli, velocidad, red, consola, terminal tag foto 6 pinta, grafica, linux, ubuntu djl, juegos, yum, synaptic, paquetes ubuntu, releases, canonical psensor, ubuntu, linux, sistema, monitor
Mostrando las entradas con la etiqueta Programación. Mostrar todas las entradas

Guia Python: funciones, estructuras y formatos (2a parte).




python logoPython es un lenguaje de script desarrollado por Guido van Rossum.
Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet).
Porciones de tuplas.
python porciones de tuplas
El lenguaje Python nos permite rescatar una "porción" de una tupla, es decir un trozo de la misma.
Si tenemos la siguiente tupla:
tupla1=(1,7,20,40,51,3)
tupla2=tupla1[0:4]
print tupla2
El resultado es una tupla con cuatro valores:
(1,7,20,40)
Es decir indicamos como subíndice un rango de valores, en este caso desde la posición 0 hasta la posición 4 sin incluirla.
Podemos no indicar alguno de los dos rangos:
tupla1=(1,7,20,40,51,3)
tupla2=tupla1[3:]
print tupla2
El resultado es una tupla con tres valores, desde la posición 3 hasta el final de la tupla:
(40, 51, 3)
En caso de no indicar el primer rango:
tupla1=(1,7,20,40,51,3)
tupla2=tupla1[:2]
print tupla2
El resultado es una tupla con dos valores, desde el principio de la tupla hasta la posición 2 sin incluirla:
(1, 7)
Estructura de datos tipo cadena de caracteres (string).
python Estructura de datos tipo cadena de caracteres (string)
Una cadena de caracteres permite almacenar un conjunto de caracteres. Su funcionamiento es similar a una tupla.
Para inicializar un string utilizamos el operador de asignación.
nombre='Juan Pablo'
Podemos utilizar las comillas simples o dobles para su inicialización:
mail='jose@gmail.com'
o
mail="jose@gmail.com"
Para conocer el largo de un string podemos utilizar la función len:
print len(mail)
Para acceder a un caracter particular del string lo hacemos indicando un subíndice entre corchetes:
print mail[0]  #Imprimimos el primer caracter
El lenguaje Python nos permite rescatar una "porción" de un string con la misma sintaxis que trabajamos las tuplas:
nombre='Jose Maria'
print nombre[1:4]  #ose
print nombre[:4] #Jose
print nombre[5:] #Maria
Los string son inmutables, es decir que no podemos modificar su contenido luego de ser inicializados:
titulo='Administracion'
titulo[0]='X' # Esto produce un error
Esto no significa que no podemos utilizar la variable para que referencie a otro string:
nombre='Jose'
print nombre
nombre='Ana'
print nombre
Para concatenar string Python permite utilizar el operador +.
Si tenemos tres string y queremos almacenar sus contenidos en un cuarto string podemos codificarlo de la siguiente manera:
cadena1='uno'
cadena2='dos'
cadena3='tres'
total=cadena1+cadena2+cadena3
print total #unodostres
También Python define el operador * para los string. El resultado de multiplicar un string por un entero es otro string que repite el string original tantas veces como indica el número.
#si queremos un string con 80 caracteres de subrayado, la forma más sencilla es utilizar la siguiente expresión:
separador='_'*80
print separador
Los operadores relacionales definidos para los string son:
> Mayor
>= Mayor o igual
< Menor
<= Menor o igual
== Igual
!= Distinto
Si queremos saber si un string es mayor alfabéticamente que otro utilizamos el operador >
nombre1='CARLOS'
nombre2='ANABEL'
if nombre1>nombre2:
    print nombre1+' es mayor alfabéticamente que '+nombre2
si queremos saber si dos variables tienes en mismo contenido:
nombre1='CARLOS'
nombre2='CARLOS'
if nombre1==nombre2:
   print 'Las dos variables tienen el mismo contenido:'+nombre1
Estructura de datos tipo lista.
python Estructura de datos tipo lista
Una lista es una colección de datos no necesariamente del mismo tipo que se los accede por medio de subíndices. La diferencia fundamental de una lista con una tupla es que podemos modificar la estructura luego de haberla creado.
Hay varias formas de crear una lista, la primera y más sencilla es enumerar sus elementos entre corchetes y separados por coma:
lista1=['juan','ana','luis']
Para acceder a sus elementos lo hacemos indicando un subíndice subíndice:
print lista1[0]
Como decíamos la diferencia con una tupla (son inmutables) es que podemos modificar la lista luego de creada:
lista1=[10,15,20]
print lista1
print '<br>'
lista1[0]=700 # modificamos el valor almacenado en la primer componente de la lista.
print lista1
De forma similar a las tuplas y string la función len nos informa de la cantidad de elementos que contiene la lista:
lista1=[10,15,20]
print len(lista1) # imprime un 3
Es muy común emplear la estructura for in para recorrer y rescatar cada elemento de la lista, la variable elemento almacena en cada ciclo del for un elemento de la lista1, comenzando por el primer valor:
lista1=['juan',23,1.92]
for elemento in lista1:
    print elemento
    print '<br>'
Si queremos saber si un valor se encuentra en una lista existe un operador llamado in:
lista1=[12,45,1,2,5,4,3,55]
if 1 in lista1:
    print 'El valor 1 está contenido en la lista '
else:
    print 'El valor 1 no está contenido en la lista '
print lista1
Python define los operadores + y * para listas, el primero genera otra lista con la suma de elementos de la primer y segunda lista. El operador * genera una lista que repite tantas veces los elementos de la lista como indica el valor entero seguido al operador *.
lista1=[2,4,6,8]
lista2=[10,12,14,16]
listatotal=lista1+lista2
print listatotal
Luego empleando el operador *:
lista1=['juan','carlos']
producto=lista1*3
print producto
El resultado de este algoritmo es:
['juan', 'carlos', 'juan', 'carlos', 'juan', 'carlos']
También con listas podemos utilizar el concepto de porciones que nos brinda el lenguaje Python:
lista=[2,4,6,8,10]
print lista[2,4]   #[6, 8]
print lista[:3]    #[2, 4, 6]
print lista[3:]    #[8, 10]
Como vimos podemos modificar el contenido de elementos de la lista asignándole otro valor:
lista=[2,4,6]
lista[1]=10
print lista  #[2, 10, 6]
Podemos borrar elementos de la lista utilizando la función del:
lista=[2,4,6]
del(lista[1])
print lista  #[2, 6]
Además podemos utilizar porciones para borrar un conjunto de elementos de la lista:
lista=[2,4,6]
del(lista[1:])
print lista  #[2]
También podemos añadir elementos a una lista:
lista=[5,10,11,12]
lista[1:1]=[6,7,8,9]
print lista #[5,6,7,8,9,10,11,12]
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia Python: funciones, estructuras y formatos (1a parte).



python logoPython es un lenguaje de script desarrollado por Guido van Rossum.
Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet).
Funciones.
python funciones
La estructura fundamental de programación de los lenguajes estructurados son las funciones. Una función es un conjunto de instrucciones que se la invoca mediante un nombre y que luego de ejecutado el algoritmo puede retornar un valor.
Un programa estructurado no es más que un conjunto de funciones que en conjunto resuelven un problema complejo.
Veamos la sintaxis en Python para definir y llamar a una función:
def presentacion():
    print 'Primer mensaje.<br>'
    print 'Segundo mensaje.<br>'

def fin():
    print 'Ultimo mensaje.'

presentacion()
fin()
Para definir una función utilizamos la palabra clave 'def' seguida por el nombre de la función, luego si no tiene parámetros como este caso debe ir paréntesis abiertos y cerrados y dos puntos. Seguidamente las instrucciones de la función se indentan a derecha.
def presentacion():
    print 'Primer mensaje.<br>'
    print 'Segundo mensaje.<br>'
Una función se ejecuta cuando se la llama por su nombre:
presentacion()
Es importante notar que primero debemos declarar la función y luego llamarla.
Una función puede tener parámetros de entrada, por ejemplo si queremos una función que reciba dos enteros y luego nos imprima el mayor, el algoritmo es el siguiente:
def imprimirmayor(valor1,valor2):
    if valor1>valor2:
        print valor1
    else:
        print valor2

imprimirmayor(4,5)
print '<br>'
x1=20
x2=30
imprimirmayor(x1,x2)
Los parámetros de la función se indican en la cabecera de la función separados por comas.
Cuando llamamos a la función estamos obligados a enviarle datos a los dos parámetros.
Podemos enviarle directamente los valores:
imprimirmayor(4,5)
O podemos enviarle variables previamente inicializadas:
x1=20
x2=30
imprimirmayor(x1,x2)
Como podemos notar con este ejemplo una función puede ser llamada más de una vez (en este caso la llamamos dos veces)
Funciones con retorno de dato.
python Funciones con retorno de dato.
Hay muchas situaciones donde queremos que la función luego de ejecutarse retorne un valor y se almacene en una variable desde donde la llamamos.
Por ejemplo si necesitamos una función que reciba tres enteros y nos retorne el mayor la sintaxis será la siguiente:
def retornarmayor(x1,x2,x3):
    if x1<x2 and x1<x3:
        return x1
    elif x2<x3:
        return x2
    else:
        return x3

may=retornarmayor(4,5,3)
print may
Como podemos observar la instrucción return indica el valor devuelto por la función.
El valor retornado se almacena en una variable:
may=retornarmayor(4,5,3)
Podemos inclusive mostrar directamente el valor retornado por la función:
print retornarmayor(40,5,3)
O utilizarlo en una condición:
if retornarmayor(40,5,3)<20:
    print 'El valor devuelto es mayor a 20'
Estructura de datos tipo tupla.
python Estructura de datos tipo tupla.
Hasta ahora hemos empleado variables que permiten almacenar un único valor. En Python existen varias estructuras de datos que permiten almacenar un conjunto de datos.
La primera que presentaremos es la tupla:
Una tupla es una colección de datos no necesariamente del mismo tipo que se los accede por medio de subíndices.
Definición de una tupla:
tupla1=('juan',18,1.92)
Hemos definido una tupla de tres elementos. El primer elemento es de tipo cadena de caracteres, el segundo un entero y finalmente un valor flotante.
Cada elemento de una tupla se los separa por una coma.
Para acceder a los elementos lo hacemos por medio del nombre de la tupla y un subíndice numérico:
print tupla1[0]
Los elementos de la tupla comienzan a numerarse a partir de cero y utilizamos los corchetes para hacer referencia al subíndice.
Si queremos en algún momento saber la cantidad de elementos de una tupla debemos llamar la función len:
print len(tupla1) #imprime un 3
con dicha función podemos disponer una estructura repetitiva para imprimir todas las componentes de la tupla con el siguiente algoritmo:
tupla1=('juan',18,1.92)
indice=0
while indice<len(tupla1):
    print tupla1[indice]
    indice=indice+1
Veremos en el próximo concepto que hay una estructura repetitiva que nos facilita recorrer los elementos de una tupla.
Una vez definida la tupla no se pueden modificar los valores almacenados.
La función print puede recibir como parámetro una tupla y se encarga de mostrarla en forma completa:
print tupla1
De todos modos cuando tenemos que acceder a algún elemento de la tupla debemos hacerlo mediante un subíndice entre corchetes.
La característica fundamental de una tupla es que una vez creada no podemos modificar sus elementos, ni tampoco agregar o eliminar.
Estructura repetitiva for in para recorrer una tupla.
python Estructura repetitiva for in para recorrer una tupla.
Para recorrer una tupla es muy común utilizar la estructura repetitiva for.
Veamos con un ejemplo la sintaxis de esta estructura repetitiva:
tupla1=('juan',23,1.92)
for elemento in tupla1:
    print elemento
    print '<br>'
Como podemos ver la instrucción for requiere una variable (en este ejemplo llamada elemento), luego la palabra clave in y por último la tupla. El bloque del for se ejecuta tantas veces como elementos tenga la tupla, y en cada vuelta del for la variable elemento almacena un valor de la tupla1.
Esta estructura repetitiva se adapta mucho mejor que el while para recorrer este tipo de estructuras de datos.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia Python: operadores y estructuras (2a parte).



python logoPython es un lenguaje de script desarrollado por Guido van Rossum.
Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet)
Operadores lógicos.
python operadores logicos
En Python contamos con los siguientes operadores lógicos:
and   (y)

or    (o)

not   (no)
Los operadores lógicos nos permiten agrupar condiciones simples en una estructura condicional, esto nos facilita la implementación de algoritmos más compactos y comprensibles.
Cuando unimos dos condiciones simples con el operador lógico 'and' ambas condiciones deben verificarse como verdaderas para que la condición compuesta se verifique verdadera. Por ejempo si tenemos que mostrar un mensaje si la edad de una persona está comprendida entre 12 y 18 años podemos plantearla con una única estructura condicional:
if edad>=12 and edad<=18:
print 'Edad comprendida entre 12 y 18'
Estamos diciendo si la variable 'edad' tiene un valor mayor o igual a 12 y además la variable edad tiene un valor menor o igual a 18 luego ejecutar la rama del verdadero.
La condición anterior nos evita tener que implementar dos estructuras condicionales:
if edad>=12:
    if edad<=18:
        print 'Edad comprendida entre 12 y 18'
El operador lógico 'or' hace que con que alguna de las condiciones sea verdadera luego ejecute el bloque del verdadero.
if x1<5 or x2<5:
Se ejecuta la rama del verdadero si al menos una de las dos variables es menor a 5.
El operador not invierte el valor de una condición:
if not x1>x2:
Si x1 no es mayor a x2 luego ejecuta la rama del verdadero de la estructura condicional.
Podemos plantear condiciones con más de dos condiciones simples:
if x1<0 or x2<0 or x3<0:
Si x1 o x2 o x3 tienen un valor inferior a cero luego se ejecuta la rama del verdadero del if.
Estructura condicional if-elif.
python Estructura condicional if-elif.
Esta estructura condicional es una forma más elegante de disponer estructuras condicionales anidadas.
Veamos como lo hacemos con estructuras condicionales anidadas y luego utilizando la sintaxis if/elif:
(problema: generar un número aleatorio entre 1 y 1000, luego imprimir la cantidad de dígitos del número generado)
import random

x=random.randint(1,1000)
print x
print '<br>'
if x<10:
    print 'Tiene 1 dígito'
else:
    if x<100:
        print 'Tiene 2 dígitos'
    else:
        if x<1000:
            print 'Tiene 3 dígitos'
        else:
            print 'Tiene 4 dígitos'
Luego con la estructura condicional if/elif:
import random

x=random.randint(1,1000)
print x
print '<br>'
if x<10:
    print 'Tiene 1 dígito'
elif x<100:
    print 'Tiene 2 dígitos'
elif x<1000:
    print 'Tiene 3 dígitos'
else:
    print 'Tiene 4 dígitos'
Estructura repetitiva while.
Las estructuras repetitivas nos permiten ejecutar un bloque de instrucciones varias veces, dependiendo de una condición.
La estructura while repite el bloque de instrucciones mientras la condición se verifique verdadera.
Si queremos mostrar los números del 1 al 100 con estructuras secuenciales el proceso es largo y engorroso, utilizando una estructura repetitiva el algoritmo es muy compacto:
print 'Números del 1 al 100:'
x=1
while x<=100:
    print x
    print '-'
    x=x+1
print 'Fin'
Es importante recordar y remarcar que las instrucciones que se ejecutan en la estructura repetitiva while son todas las que se encuentran indentadas a derecha (cuatro espacios más a la derecha de la instrucción while)
La variable x se inicializa previo a la estructura while con el valor 1. La primera vez que se ejecuta la condición del while se verifica verdadera, ya que 1 es menor o igual a 100.
Dentro de la estructura repetitiva mostramos el contenido de la variable x, luego imprimimos un guión y finalmente incrementamos la variable x con el valor actual más uno.
La impresión de la cadena 'Fin' se ejecuta una vez finalizada la estructura repetitiva while.
python banner
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia Python: operadores y estructuras (1a parte).


python logoPython es un lenguaje de script desarrollado por Guido van Rossum.
Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet)
Operadores matemáticos.
Python nos suministra los siguientes operadores matemáticos para trabajar con números enteros y flotantes:
+ suma
- resta
* multiplicación
/ división de flotantes
// división de enteros
% resto de una división
** exponenciación
Hay que tener en cuenta que si dividimos dos enteros con el símbolo / el resultado es un entero. Debe ser alguno de los dos números flotantes para que el resultado sea float.
Estructura condicional if.
Igual que otros lenguajes cuando tenemos que tomar una decisión en nuestro programa debemos utilizar la estructura if.
Algo muy importante en el lenguaje Python que no lo tienen otros lenguajes es que la indentación es obligatoria e indica las intrucciones contenidas en un if.
Analicemos el siguiente ejemplo:
nombre='juan'
edad=15
if edad<18:
    print nombre
    print ' es menor de edad.<br>'
print 'Fin del programa'
La estructura if contiene una condición, si dicha condición se verifica verdadera luego se ejecutan todas las instrucciones que se encuentran indentadas (es decir corridas a derecha) Es muy común utilizar una indentación de 4 espacios.
En nuestro ejemplo la instrucción:
print 'Fin del programa'
se encuentra fuera de la estructura if.
Si la condición se verifica verdadera luego se ejecutan las intrucciones:
print nombre
    print ' es menor de edad.<br>'
Es obligatorio luego de la condición del if disponer los dos puntos
if edad<18:
También similar a otros lenguajes la estructura condicional if tiene una segunda parte que es el else, dicha sección se ejecuta si la condición se verifica falsa.
nombre='juan'
edad=15
print nombre
if edad<18:
    print ' es menor de edad.<br>'
else:
    print ' es mayor de edad.<br>'
print 'Fin del programa'
Nuevamente tener en cuenta que las instrucciones que se indiquen por el else deben estar corridas a derecha (indentadas).
La palabra clave else requiere también los dos puntos
else:
Problema resuelto
Generar un número aleatorio comprendido entre 1 y 20. Luego mostrar si el valor generado tiene uno o dos dígitos.
Para generar un valor aleatorio hay una librería que debemos importar (veremos más adelante el concepto de módulos)
import random
Luego podemos llamar la función randint de dicho módulo, esta función requiere dos valores enteros y nos devuelve otro valor entero comprendido entre ellos (lo selecciona de forma aleatoria, es decir al azar)
x=random.randint(1,20)
Operadores relacionales.
En Python contamos con los siguientes operadores relacionales:
== Igualdad

!= Desigualdad

< menor

<= menor o igual

> mayor

>=mayor o igual
Cuando disponemos una condición en una estructura condicional debemos utilizar alguno de estos seis operadores relacionales.
Toda condición debe tener un operando o valor, luego un operador relacional y finalmente otro operando o valor.
Todas estas condiciones son válidas:
if edad==18:

if edad<=18:

if edad!=50:

if edad>=18:

if valor1<valor2:

if valor1>valor2:
Python_add5_syntax.svg
Estructura condicional if anidada.
En ocaciones cuando hay más de dos caminos posibles es necesario implementar estructuras condicionales anidadas, es decir por la rama del verdadero o falso (else:) disponemos otras estructuras condicionales.
Debemos tener cuidado con la indentación del código para evitar errores.
Veamos un ejemplo que requiere utilizar estructuras condicionales anidadas. Generaremos tres números aleatorios y luego imprimiremos el mayor de los tres:
import random

x1=random.randint(1,100)
x2=random.randint(1,100)
x3=random.randint(1,100)
print x1
print '-'
print x2
print '-'
print x3
print '<br>'
print 'El mayor es:'
if x1>x2:
    if x1>x3:
        print x1
    else:
        print x3
else:
    if x2>x3:
        print x2
    else:
        print x3
Como podemos observar por el bloque del verdadero del primer if tenemos otra estructura condicional (debemos indentar cada estructura condicional):
if x1>x2:
    if x1>x3:
        print x1
    else:
        print x3
python logo multiple
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia Python: introducción y definición de variables y comentarios.

python logoPython es un lenguaje de script desarrollado por Guido van Rossum.
Podemos codificar empleando programación lineal, estructurada y orientada a objetos (tengamos en cuenta que esta última es la que se ha impuesto en la actualidad)
Se cuenta con intérpretes de Python en múltiples plataformas: Windows, Linux, Mac etc. Se pueden desarrollar aplicaciones de escritorio como aplicaciones web. Empresas como Google, Yahoo, Nasa etc. utilizan este lenguaje para sus desarrollos (actualmente el creador de Python Guido van Rossum trabaja para Google.)
Se puede ejecutar instrucciones de Python desde la línea de comando o creando archivos con extensión *.py. Cuando uno comienza a aprender este lenguaje la línea de comandos nos provee una retroalimentación del resultado en forma inmediata.
El objetivo de este tutorial es presentar en forma progresiva los conceptos fundamentales de este lenguaje y poder analizar los problemas resueltos y codificar los problemas propuestos en este mismo sitio, sin tener que instalar en un principio el Python en su equipo (o luego de instalado poder avanzar con el tutorial en cualquier máquina conectada a internet)
Que podemos hacer con Python una vez que aprendamos su sintaxis y filosofía de programación?
  • Aplicaciones que se ejecutan en un servidor web (equivalentes a lo que se puede hacer con PHP, ASP.Net, JSP, Ruby) Más adelante cuando este más avanzado con el lenguaje Python le será muy útil solicitar una cuenta en Google App Engine y crear un sitio empleando como lenguaje de servidor el Python. También existen otras empresas de hosting que proveen como lenguaje de servidor el Python. Y cuando necesitemos ser más productivos en el desarrollo de sitios no podrá faltar el framework Django
  • Aplicaciones de escritorio con interfaces visuales accediendo a componentes escritos en .Net (Microsoft), Qt, GTK, MFC, Swing (Java) etc.
  • Programas no visuales que tengan como objetivo sistematizar procesos de administración del equipo (backup periódicos, borrado de archivos recursivos, búsquedad de archivos o contenidos de los mismos etc.)
  • Aplicaciones para celulare.
python logo multiple
Definición de variables.
Una variable almacena un valor de cierto tipo. En Python podemos definir variables de tipo:
Numérica (entera)
Numérica (flotante)
Numérica (complejo)
Cadena de caracteres
Booleano
Para definir una variable en Python solo debemos asignarle el valor, en dicho momento se define el tipo de variable según el valor asignado (Python es un lenguaje sensible a mayúsculas y minúsculas, por lo que debemos respetar esta característica):
Variable entera:
edad=21
Variable flotante:
altura=1.92
Variable compleja:
valor=5+3j
Cadena de caracteres (puede estar encerrada entre simples o dobles comillas):
nombre="Mario"
Booleano:
encontrado=False
python-twisted-akonadi-qt-kde-gtk-logo-vshaped
Definición de comentarios.
En Python utilizamos el caracter # para indicar al intérprete que dicha línea es un comentario y no la debe procesar como una instrucción de Python.
Es muy común utilizar comentarios para informar el objetivo del programa, su desarrollador, la lógica de los algorítmos empleados etc.
Veamos un progrma que utiliza comentarios:
# Definición de tres variables enteras y una de tipo string
edad1=10
edad2=4
edad3=21
nombre="pedro"
Podemos en la misma línea de código agregar comentarios:
edad3=23  #mayor de edad
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: validación de la página a través de un enlace, hojas de estilo y propiedades.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Validación de la página a través de un enlace.
La W3C nos permite disponer un ícono como enlace a su validador de páginas HTML:
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Strict" height="31" width="88"></a>
</p>

Confeccionemos una página y probemos el enlace al validador:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
<p>
<a href="http://validator.w3.org/check?uri=referer"><img
src="http://www.w3.org/Icons/valid-html401"
alt="Valid HTML 4.01 Strict" height="31" width="88"></a>
</p>
</body>
</html>

Solamente agregamos el párrafo que contiene el hipervínculo al sitio que realiza la validación. Gran cantidad de sitios tienen este ícono o alguno similar para indicar que sus páginas cumplen con el HTML Transitional o estrícto.

Conceptos básicos de hojas de estilo.

Creo que este curso de HTML debe finalizar con los conceptos básicos de CSS (Cascade Style Sheet) es decir Hojas de Estilo.

En las primeras versiones de HTML se comenzaron a introducir elementos con la finalidad de mejorar la "presentación" del "contenido" de la página. Así aparecieron elementos para definir las fuentes, tamaños, colores, alineamiento de textos y bloques etc.

Luego se creo otra tecnología que separa el "contenido" de la "presentación", esta es la de Hojas de Estilo. Con esto quedó perfectamente definido el objetivo de HTML (disponemos contenido) y CSS (definimos la presentación de ese contenido).

Durante todos los conceptos anteriores me contuve para emplear algún elemento HTML de presentación que mejorara la página por lo que ahora introduciré conceptos mínimos para aplicar CSS en forma básica.

Veamos la sintaxis para aplicar color de frente y fondo a un elemento HTML mediante CSS:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h1 style="color:#0000ff">Noticias del día.</h1>
<p style="color:#888888;background-color:#ffffdd">
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
Aquí la descripción de la noticia. 
</p>
</body>
</html>

La propiedad que debemos inicializar se llama style y la tienen todos los elementos HTML. En este primer ejemplo inicializamos las propiedades color (define el color del texto) y background-color (define el color de fondo del texto).

Cada vez que inicializamos una propiedad debemos separarla de la siguiente por punto y coma.

Para definir un color lo debemos hacer indicando la candidad de rojo,verde y azul (color:#0000ff). Los dos primeros números indican la cantidad de rojo (en este caso cero), luego la cantidad de verde (en este caso 0) y por último la cantidad de azul (en este caso ff). Como podemos observar el valor lo debemos indicar en formato hexadecimal.

Hasta ahora siempre que disponíamos un título aparecía de color negro. El negro es el estilo por defecto que tiene definido todos los elementos de títulos, si queremos variar dicho valor debemos hacerlo mediante CSS.

Las hojas de estilo si son sensibles a mayúsculas y minúsculas, por lo que color no es lo mismo que definir COLOR.

Las propiedades que definimos dentro de style deben ir separadas por punto y coma.

Propiedades relacionadas al texto en CSS.
 
Vimos en la introducción de CSS la propiedad color.

Tenemos otras propiedades relacionadas al texto que paso a enunciarlas:
  • text-align Esta propiedad define el alineamiento del texto y puede tomar alguno de estos cuatro valores: left, right, center,justify

    text-align:center;

    El texto aparecerá centrado. Si queremos justificar a derecha, emplearemos el valor right y si queremos a la izquierda, el valor será left.
  • text-decoration Esta propiedad nos permite entre otras cosas que aparezca subrayado el texto, tachado o una línea en la parte superior, los valores posibles de esta propiedad son: none, underline, overline, line-through
  • letter-spacing Esta propiedad permiten indicar el espacio que debe haber entre los caracteres.
  • word-spacing La propiedad word-spacing permiten indicar el espacio que debe haber entre las palabras.
  • text-indent La propiedad indenta la primera linea de un texto. A partir de la segunda línea, el texto aparece sin indentación. Podemos indicar un valor negativo con lo que la indentación es hacia la izquierda.
  • text-transform la propiedad puede inicializarse con alguno de los siguientes valores: none - capitalize - lowercase - uppercase.

    Cada uno de estos valores transforman el texto como sigue:

    capitalize: Dispone en mayúsculas el primer caracter de cada palabra.

    lowercase: Convierte a minúsculas todas las letras del texto.

    uppercase: Convierte a mayúsculas todas las letras del texto.

    none: No provoca cambios en el texto.
Confeccionaremos el siguiente problema:

Confeccionar una página que contenga un título de nivel 2 (h2) centrado y luego bloques donde muestre un nombre de una persona subrayado y un párrafo con un color de fondo y de las letras. Indentar la primer linea de cada párrafo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="color:#0000ff;text-align:center">Comentarios</h1>
<h3 style="text-decoration:underline">Luis Barrionuevo</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3 style="text-decoration:underline">Ana Rodriguez</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</body>
</html>

El título general aparece centrado y de color azul:

<h2 style="color:#0000ff;text-align:center">Comentarios</h1>

El título donde se define el nombre:

<h3 style="text-decoration:underline">Luis Barrionuevo</h3>

aparece subrayado.

Por último los párrafos:

<p style="color:#888888;background-color:#ffffdd;text-indent:20px">

aparecen de color gris oscuro la letra sobre fondo amarillo claro y la primer línea tiene una indentación de 20 píxeles.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: propiedades relacionadas al texto y a las fuentes en CSS.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Propiedades relacionadas al texto en CSS.
Vimos en la introducción de CSS la propiedad color.
Tenemos otras propiedades relacionadas al texto que paso a enunciarlas:
  • text-align Esta propiedad define el alineamiento del texto y puede tomar alguno de estos cuatro valores: left, right, center,justify
    text-align:center;

    El texto aparecerá centrado. Si queremos justificar a derecha, emplearemos el valor right y si queremos a la izquierda, el valor será left.
  • text-decoration Esta propiedad nos permite entre otras cosas que aparezca subrayado el texto, tachado o una línea en la parte superior, los valores posibles de esta propiedad son: none, underline, overline, line-through
  • letter-spacing Esta propiedad permiten indicar el espacio que debe haber entre los caracteres.
  • word-spacing La propiedad word-spacing permiten indicar el espacio que debe haber entre las palabras.
  • text-indent La propiedad indenta la primera linea de un texto. A partir de la segunda línea, el texto aparece sin indentación. Podemos indicar un valor negativo con lo que la indentación es hacia la izquierda.
  • text-transform la propiedad puede inicializarse con alguno de los siguientes valores: none - capitalize - lowercase - uppercase.

    Cada uno de estos valores transforman el texto como sigue:

    capitalize: Dispone en mayúsculas el primer caracter de cada palabra.

    lowercase: Convierte a minúsculas todas las letras del texto.

    uppercase: Convierte a mayúsculas todas las letras del texto.

    none: No provoca cambios en el texto.
Confeccionaremos el siguiente problema:

Confeccionar una página que contenga un título de nivel 2 (h2) centrado y luego bloques donde muestre un nombre de una persona subrayado y un párrafo con un color de fondo y de las letras. Indentar la primer linea de cada párrafo.

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="color:#0000ff;text-align:center">Comentarios</h1>
<h3 style="text-decoration:underline">Luis Barrionuevo</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3 style="text-decoration:underline">Ana Rodriguez</h3>
<p style="color:#888888;background-color:#ffffdd;text-indent:20px">
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</body>
</html>

El título general aparece centrado y de color azul:

<h2 style="color:#0000ff;text-align:center">Comentarios</h1>

El título donde se define el nombre:

<h3 style="text-decoration:underline">Luis Barrionuevo</h3>

aparece subrayado.

Por último los párrafos:

<p style="color:#888888;background-color:#ffffdd;text-indent:20px">

aparecen de color gris oscuro la letra sobre fondo amarillo claro y la primer línea tiene una indentación de 20 píxeles.

Elementos HTML <div> y <span>

ejé estos dos elementos HTML para luego de haber presentado los conceptos de CSS. Estas marcas se utilizan en conjunción con las hojas de estilo. Sin estas tiene poco sentido el empleo de estos elementos HTML.

Estos elementos "div" y "span" nos permiten agrupar un conjunto de elementos y aplicar reglas de estilo.

La diferencia entre estos dos elementos es que cuando utilizamos el elemento div produce un salto de línea previo y uno al final, es decir es una marca de bloque como lo son h1,h2,p etc. En cambio el elemento span no produce un salto de línea porque se trata de un elemento en línea como lo son a,em,strong,input etc.

Veamos un ejemplo creando una división (div) y la aplicación de algunas reglas de estilo, como así un elemento span.

Listar una serie de nombres y un bloque de comentarios para cada nombre. Indentar la primer linea de cada párrafo. Hacer que algunas palabras del párrafo aparezcan resaltadas en otro color. Disponer todos los comentarios con un color gris de fondo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<div style="background-color:#eeeeee">
<h3>Luis Barrionuevo</h3>
<p style="color:#888888;text-indent:20px">
Aquí <span style="background-color:#eeee00">comentarios.</span> 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
<h3>Ana Rodriguez</h3>
<p style="color:#888888;text-indent:20px">
<span style="background-color:#eeee00">Aquí comentarios.</span> 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
Aquí comentarios. 
</p>
</div>
</body>
</html>

Veamos como definimos los elementos span:

<span style="background-color:#eeee00">comentarios.</span>

Como podemos ver luego en el resultado de la página el texto "comentarios" aparece con un color amarillo de fondo. El resto del párrafo continúa inmediatamente a la derecha, es decir el elemento span no produce salto de línea. Para ver la diferencia con el elemento div pruebe de remplazar la palabra span por div y vea los resultados (recuerde cambiar tanto la marca de apertura como la de cerrado del span) Como verá el texto aparece en un bloque independiente.

El div agrupa todos los títulos y párrafos y define la propiedad background-color que es heredado por todos los elementos contendidos por el div:

<div style="background-color:#eeeeee">
<h3>Luis Barrionuevo</h3>
<p style="color:#888888;text-indent:20px">
Aquí <span style="background-color:#eeee00">comentarios.</span> 
Aquí comentarios. 
.
.
.
.
Aquí comentarios. 
Aquí comentarios. 
</p>
</div>

Propiedades relacionadas a las fuentes en CSS.

Las propiedades relacionadas a las fuentes más importantes en CSS son:

  • font-family Define la fuente que se aplicará al elemento HTML. La fuentes más comunes presentes en los navegadores son: Arial, Arial Black, Courier New, Georgia, Impact, Tahoma, Times New Roman, Verdana
  • font-size Define el tamaño de la fuente. Entre otras medias podemos indicarla en píxeles.
  • font-style Podemos indicar alguno de los siguientes valores: normal, italic, oblique
  • font-weight Entre otros podemos indicar los siguientes valores: normal, bold, bolder,lighter
Para probar algunas de estas propiedades confeccionaremos una página que contenga un título de nivel 2 con fuente Arial, un párrafo con fuente de tipo Times New Roman de 14 píxeles en negrita y una serie de párrafos agrupados en un div con tamaño de fuente de 12 píxeles de tipo Verdana:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>título página</title>
</head>
<body>
<h2 style="font-family:Arial">Título principal</h2>
<p style="font-family:Times New Roman;font-size:14px;font-weight:bolder">
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
Párrafo en negrita. 
</p>
<div style="font-family:Verdana;font-size:12px">
<p>
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
Primer párrafo. 
</p>
<p>
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
Segundo párrafo.
</p>
</div>
</body>
</html> 

Para el título se debe definer una fuente Arial

<h2 style="font-family:Arial">Título principal</h2>

Para el primer párrofo seguido al título se debe definir una fuente de tipo Times New Roman de 14 píxeles en negrita

<p style="font-family:Times New Roman;font-size:14px;font-weight:bolder">

Para el resto de los párrafos agruparlos en un div con tamaño de fuente de 12 píxeles de tipo Verdana

<div style="font-family:Verdana;font-size:12px">

Solo se a visto los conceptos iniciales de CSS con el objetivo de no tentarse a utilizar los elementos HTML antiguos para asignación de fuentes y colores. Para un estudio ordenado y sitemático puede desarrollar el curso CSS Ya y ver por si mismo las ventajas enormes que presentan las hojas de estilo.

Elementos y propiedades de HTML que no se deben usar.
 
Nombraremos los elementos y propiedades de HTML que no se deben usar, ya que sus objetivos actualmente se resuelven utilizando CSS (Hojas de estilo), de todos modos se las encontrará en muchas páginas antiguas y otras no tanto:
Elementos
  • u Muestra un texto subrayado.
  • s Muestra un texto tachado.
  • strike Muestra un texto tachado.
  • center Muestra un texto centrado.
  • menu Crea una lista
  • dir Define una lista multicolumna
  • layer (solo Netscape) Agrupa un bloque de elementos HTML (utilizar div)
  • blink Resalta un texto
  • marquee Muestra un texto desplazandose de izquierda a derecha o viceversa. Tiene muchas propiedades para definir fuente, color, velocidad de avance etc.
  • font Permite definir mediante una serie de propiedades el tipo de fuente, tamaño y color
  • b Muestra el texto en negrita.
  • i Muestra el texto en itálica.
  • big Muestra el texto con fuente grande.
  • small Muestra el texto con fuente pequeña.
  • hr Muestra una línea horizontal.
  • basefont Establece el tamaño base de fuente.
  • isindex Crea un control de entrada de una línea.
Propiedades.
  • text Fija el color de texto para la página si se aplica al elemento body.
  • bgcolor Fija el color del fondo de texto si se aplica al elemento body.
  • background Fija una imagen de fondo a la página. Propiedad del elemento body.
  • link Fija el color de los enlaces no visitados. Se aplica al body.
  • alink Fija el color del enlace activo. Se aplica al body.
  • vlink Fija el color de los enlaces ya visitados. Se aplica al body.
  • align Se lo utiliza para alinear texto a izquierda, derecha, centro etc.
No daremos ejemplo del empleo de estos elementos y propiedades para evitar cualquier posibilidad de internalizar su funcionamiento y empleo.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: declaración DOCTYPE, HTML transitional y estricto.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Declaración DOCTYPE.
Hasta ahora no hemos hablado de un concepto de vital importancia que es la utilización de elementos HTML estándares. De todos modos no hemos introducido elementos HTML propietarios o desaprobados (ej. font, center etc.)

La organización que define los estándares para la web es W3C.
Utilizar en lo posible las directivas de este comite de estándares nos traerá como ventanja que nuestras páginas en un futuro sigan viendose correctamente en las nuevas versiones de navegadores.

Ahora introduciremos una nueva sección de nuestra página que es la declaración del tipo de documento (DTD Document Type Declaration), esta sección se ubica en la primera línea del archivo HTML, es decir antes de la marca html.

Declaración transitoria:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

Declaración estrícta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Veamos la sintaxis para definir la sección del DOCTYPE, la primera diferencia con cualquier otro elemento HTML es que el caracter siguiente del < es el signo de admiración (!), luego debe ir la palabra DOCTYPE indicando que se trata de un archivo HTML. Más adelante debemos indicar la versión de HTML y si se trata de HTML transitorio o estricto:

Si es HTML transitorio disponemos:

"-//W3C//DTD HTML 4.01 Transitional//EN"

Si es HTML estrícto

"-//W3C//DTD HTML 4.01//EN"

Es decir que cuando es HTML estricto no disponemos la palabra Transitional

Por último se define la dirección de internet donde se encuentra un archivo que enuncia los elemento y propiedades permitidos en el HTML 4.01, discriminando entre HTML estricto y transitorio.

Porqué utilizar HTML transitional, si lo más correcto sería utilizar HTML estricto?

Puede ser que tengamos muchas páginas desarrolladas en el pasado y nos lleve un tiempo hacerlas compatible con el HTML estricto.

Para ver si una página cumple el estandar específico podemos acceder a un programa validador que se encuentra en validator.w3.org

Pruebe de copiar la siguiente página y verifique si se valida correctamente en la dirección indicada en la línea anterior (copie al textarea de esta página este documento HTML y presione el botón check):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Enlaces a periódicos</title>
</head>
<body>
<ol>
<li>Argentina
<ul>
<li><a href="http://www.lanacion.com.ar">La Nación</a></li>
<li><a href="http://www.clarin.com.ar">Clarín</a></li>
<li><a href="http://www.pagina12.com.ar">Página 12</a></li>
</ul>
</li>
<li>España
<ul>
<li><a href="http://www.elpais.es">El País Digital</a></li>
<li><a href="http://www.abc.es">ABC</a></li>
<li><a href="http://www.elmundo.es">El Mundo</a></li>
</ul>
</li>
<li>México
<ul>
<li><a href="http://www.jornada.unam.mx">La Jornada</a></li>
<li><a href="http://www.el-universal.com.mx">El Universal</a></li>
</ul>
</li>
</ol>
</body>
</html>

Pruebe de borrar el elemento title, tanto su contenido como las marcas de comienzo y final. Valide nuevamente.

Pruebe de borrar la marca <ol> y valide.

Declaración DOCTYPE. HTML Transitional.

Cuando indicamos que una página utiliza HTML Transitional podemos hacer uso de algunos elementos HTML de presentacion (fuentes, alineamiento, colores), además la ubicación y anidamiento de elementos es más elástico.

Veamos si nuestra primer página que desarrollamos pasa la validación HTML Transitional (Agregandole la sección del DOCTYPE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Como veras después que lo valides dará un error indicando que faltan datos en la marca head. Como mínimo deberemos agregar el elemento title.

Luego la página queda:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora prácticamente valida correctamente, solo le falta un meta con la descripción de codificación:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora si está totalmente correcta.

Declaración DOCTYPE. HTML Estricto.
 
En el DTD Estricto de HTML 4.01 se excluye los elementos y atributos de presentación que el W3C espera que dejen de utilizarse a medida que se extienda por parte de todos los navegadores el soporte de las hojas de estilo.

Los webmaster deben usar el DTD Estricto siempre que sea posible, pero pueden usar el DTD Transicional si es necesario el soporte de elementos y atributos de presentación.

Prácticamente todas las páginas que hemos desarrollado debemos hacerle algunos retoques para que cumplan con la validación de HTML estrícta.

Veremos varias de las páginas desarrolladas y los cambios que debemos hacer para que pasen la validación:

Problema 1:Confeccionar una página que muestre los nombres de 5 lenguajes de programación separados por un guión:

<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Página de prueba del DTD</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el texto de la página dentro de un párrafo (no puede un texto depender directamente del body):

    <p>PHP - Java - JavaScript - C - C++</p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Problema 2:Confeccionar una página principal que tenga un hipervínculo a otra página secundaria.

<html>
<head>
</head>
<body>
<h1>Página principal.</h1>
<a href="pagina2.html">Noticias</a>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<h1>Página principal.</h1>
<p><a href="pagina2.html">Noticias</a></p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el hipervínculo de la página dentro de un párrafo (no puede un hipervínculo depender directamente del body):

    <p><a href="pagina2.html">Noticias</a></p>
Problema 3:Confeccionar un formulario que solicite el ingreso del nombre de un usuario y su clave. Mostrar asteriscos donde se ingresa la clave. Disponer dos botones, uno para el envío de datos al servidor y otro para borrar el contenido de todos los controles (editores de texto) que contiene el formulario.

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</form>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<p>
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</p>
</form>
</body>
</html>

  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos todos el contenido del form dentro de un párrafo. No se puede disponer texto o controles de formulario que dependan directamente del elemento form.:

    <p> Ingrese su nombre: <input type="text" name="nombre" size="20"
Declaración DOCTYPE. para Frames.

Cuando empleamos frames debemos utilizar una declaración distinta para el elemento DOCTYPE.

Luego la sección del DOCTYPE para una página que implementa frames debe ser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

Es decir se incorpora la palabra Frameset donde disponíamos la palabra Transitional o estaba vacía si validamos HTML estrícto.

Confeccionar una ventana que contenga dos frames verticales. Dispondremos dos hipervínculos en el frame de la izquierda que al ser presionados actualicen el archivo a mostrar por el frame de la derecha.

pagina1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

pagina2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Es importante notar que hemos definido la página HTML Transitional, esto se debe a que la propiedad target del elemento "a" no está permitida. Es decir si utilizamos frames deberemos trabajar con HTML Transitional.

pagina3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>

pagina4.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:

Guia HTML: declaración DOCTYPE.

html-questionsEn una reciente limpieza a mi disco duro he encontrado esta guia que tenia guardada por ahi y creo que esta muy buena para empezar y conocer las nociones basicas del HTML.

Declaración DOCTYPE.

Hasta ahora no hemos hablado de un concepto de vital importancia que es la utilización de elementos HTML estándares. De todos modos no hemos introducido elementos HTML propietarios o desaprobados (ej. font, center etc.)

La organización que define los estándares para la web es W3C.
Utilizar en lo posible las directivas de este comite de estándares nos traerá como ventanja que nuestras páginas en un futuro sigan viendose correctamente en las nuevas versiones de navegadores.

Ahora introduciremos una nueva sección de nuestra página que es la declaración del tipo de documento (DTD Document Type Declaration), esta sección se ubica en la primera línea del archivo HTML, es decir antes de la marca html.
Según el rigor de HTML  utilizado podemos declararla como:
Declaración transitoria:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 

Declaración estrícta:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">

Veamos la sintaxis para definir la sección del DOCTYPE, la primera diferencia con cualquier otro elemento HTML es que el caracter siguiente del < es el signo de admiración (!), luego debe ir la palabra DOCTYPE indicando que se trata de un archivo HTML. Más adelante debemos indicar la versión de HTML y si se trata de HTML transitorio o estricto:

Si es HTML transitorio disponemos:

"-//W3C//DTD HTML 4.01 Transitional//EN"

Si es HTML estrícto

"-//W3C//DTD HTML 4.01//EN"

Es decir que cuando es HTML estricto no disponemos la palabra Transitional

Por último se define la dirección de internet donde se encuentra un archivo que enuncia los elemento y propiedades permitidos en el HTML 4.01, discriminando entre HTML estricto y transitorio.

Porqué utilizar HTML transitional, si lo más correcto sería utilizar HTML estricto?

Puede ser que tengamos muchas páginas desarrolladas en el pasado y nos lleve un tiempo hacerlas compatible con el HTML estricto.

Para ver si una página cumple el estandar específico podemos acceder a un programa validador que se encuentra en validator.w3.org

Pruebe de copiar la siguiente página y verifique si se valida correctamente en la dirección indicada en la línea anterior (copie al textarea de esta página este documento HTML y presione el botón check):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Enlaces a periódicos</title>
</head>
<body>
<ol>
<li>Argentina
<ul>
<li><a href="http://www.lanacion.com.ar">La Nación</a></li>
<li><a href="http://www.clarin.com.ar">Clarín</a></li>
<li><a href="http://www.pagina12.com.ar">Página 12</a></li>
</ul>
</li>
<li>España
<ul>
<li><a href="http://www.elpais.es">El País Digital</a></li>
<li><a href="http://www.abc.es">ABC</a></li>
<li><a href="http://www.elmundo.es">El Mundo</a></li>
</ul>
</li>
<li>México
<ul>
<li><a href="http://www.jornada.unam.mx">La Jornada</a></li>
<li><a href="http://www.el-universal.com.mx">El Universal</a></li>
</ul>
</li>
</ol>
</body>
</html>

Pruebe de borrar el elemento title, tanto su contenido como las marcas de comienzo y final. Valide nuevamente.

Pruebe de borrar la marca <ol> y valide.

Declaración DOCTYPE. HTML Transitional.

Cuando indicamos que una página utiliza HTML Transitional podemos hacer uso de algunos elementos HTML de presentacion (fuentes, alineamiento, colores), además la ubicación y anidamiento de elementos es más elástico.

Veamos si nuestra primer página que desarrollamos pasa la validación HTML Transitional (Agregandole la sección del DOCTYPE):

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Como veras después que lo valides dará un error indicando que faltan datos en la marca head. Como mínimo deberemos agregar el elemento title.

Luego la página queda:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora prácticamente valida correctamente, solo le falta un meta con la descripción de codificación:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Mi primer pagina</title>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Ahora si está totalmente correcta.

Declaración DOCTYPE. HTML Estricto.

En el DTD Estricto de HTML 4.01 se excluye los elementos y atributos de presentación que el W3C espera que dejen de utilizarse a medida que se extienda por parte de todos los navegadores el soporte de las hojas de estilo.

Los webmaster deben usar el DTD Estricto siempre que sea posible, pero pueden usar el DTD Transicional si es necesario el soporte de elementos y atributos de presentación.

Prácticamente todas las páginas que hemos desarrollado debemos hacerle algunos retoques para que cumplan con la validación de HTML estrícta.

Veremos varias de las páginas desarrolladas y los cambios que debemos hacer para que pasen la validación:

Problema 1:Confeccionar una página que muestre los nombres de 5 lenguajes de programación separados por un guión:

<html>
<head>
</head>
<body>
PHP - Java - JavaScript - C - C++
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Página de prueba del DTD</title>
</head>
<body>
<p>PHP - Java - JavaScript - C - C++</p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el texto de la página dentro de un párrafo (no puede un texto depender directamente del body):

    <p>PHP - Java - JavaScript - C - C++</p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Problema 2:Confeccionar una página principal que tenga un hipervínculo a otra página secundaria.

<html>
<head>
</head>
<body>
<h1>Página principal.</h1>
<a href="pagina2.html">Noticias</a>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<h1>Página principal.</h1>
<p><a href="pagina2.html">Noticias</a></p>
</body>
</html>

Que modificaciones hemos hecho?
  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos el hipervínculo de la página dentro de un párrafo (no puede un hipervínculo depender directamente del body):

    <p><a href="pagina2.html">Noticias</a></p>

Problema 3:Confeccionar un formulario que solicite el ingreso del nombre de un usuario y su clave. Mostrar asteriscos donde se ingresa la clave. Disponer dos botones, uno para el envío de datos al servidor y otro para borrar el contenido de todos los controles (editores de texto) que contiene el formulario.

<html>
<head>
<title>Prueba de formulario</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</form>
</body>
</html>

Con los cambios para que valide:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Página de prueba del DTD</title>
</head>
<body>
<form action="/registrardatos.php" method="post">
<p>
Ingrese su nombre: 
<input type="text" name="nombre" size="20">
<br>
Ingrese su clave: 
<input type="password" name="clave" size="12">
<br>
<input type="submit" value="enviar">
<input type="reset" value="borrar">
</p>
</form>
</body>
</html>


  1. Definimos el DOCTYPE

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
  2. Agregamos el meta:

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  3. Definimos el elemento title:

    <title>Página de prueba del DTD</title>
  4. Definimos todos el contenido del form dentro de un párrafo. No se puede disponer texto o controles de formulario que dependan directamente del elemento form.:

    <p> Ingrese su nombre: <input type="text" name="nombre" size="20"> <br> Ingrese su clave: <input type="password" name="clave" size="12"> <br> <input type="submit" value="enviar"> <input type="reset" value="borrar"> </p>

Todos estos cambios son obligatorios para que valide como HTML 4.01 estricto.

Declaración DOCTYPE. para Frames.
 
Cuando empleamos frames debemos utilizar una declaración distinta para el elemento DOCTYPE.

Luego la sección del DOCTYPE para una página que implementa frames debe ser:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">

Es decir se incorpora la palabra Frameset donde disponíamos la palabra Transitional o estaba vacía si validamos HTML estrícto.

Confeccionar una ventana que contenga dos frames verticales. Dispondremos dos hipervínculos en el frame de la izquierda que al ser presionados actualicen el archivo a mostrar por el frame de la derecha.

pagina1.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<frameset cols="20%,80%">
<frame src="pagina2.html">
<frame src="pagina3.html" name="ventanadinamica">
<noframes>
<p>El navegador no soporta frames</p>
</noframes>
</frameset>
</html>

pagina2.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h2>Enlaces.</h2>
<ul>
<li><a href="pagina3.html" target="ventanadinamica">Enlace 
1</a></li>
<li><a href="pagina4.html" target="ventanadinamica">Enlace 
2</a></li>
</ul>
</body>
</html>

Es importante notar que hemos definido la página HTML Transitional, esto se debe a que la propiedad target del elemento "a" no está permitida. Es decir si utilizamos frames deberemos trabajar con HTML Transitional.

pagina3.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>

pagina4.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
"http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>prueba de frames</title>
</head>
<body>
<h1>Página B</h1>
<h2>Este es el contenido de página del archivo:pagina4.html</h2>
</body>
</html>
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog: