[Otros] Escuela introducción a la programación con python (finalizada)


Ver Resultados de encuesta: La tarea 3: ¿prefieren que sea en parejas o individual?
En parejas 2 66,67%
Individual 0 0%
Me es indiferente 1 33,33%
Votantes: 3. No puedes votar en esta encuesta

Like Tree35Gracias
 
 
Herramientas Desplegado
  #1  
13/01/2018
Predeterminado Escuela introducción a la programación con python (finalizada)
Escuela de Introducción a la Programación con Python
(Finalizada)


Agregar los links de las clases no cuenta como actualización.

Bienvenidos a esta escuela. Este es el post principal que centralizará los enlaces a los otros temas de clases y tareas, contiene el temario y el registro de entrega de las tareas.

Servidor de discord para dudas y discusión: link

Temario:

1.- Lenguaje de programación (en qué consiste de forma básica y general)
2.- Algoritmos
3.- Variables y estructuras de datos: int, float, str, bool, list, tuple, dict y set.
4.- Lógica proposicional (básico).
5.- Control de flujo if - else - elif.
6.- Ciclos: while y for.
7.- Funciones definidas por el usuario.
8.- I/O: lectura y escritura de archivos.
9.- OOP: programación orientada a objetos.
10.- Ordenamiento y búsqueda.
11.- Recursividad.

Lista de alumnos:

@joaquino
@WhiterMaker
@Berserker1523
@旅団.Markuzz Kaizuka
@RioulMillan
@kurugane
@David Phunir
@Rodeduf
@Michurrumi

Calendario de clases:




Links a los temas:
--- Clases, tareas y demás ---
Avanza por los mensajes en este thread y podrás ver los posts de las distintas clases. Cuando acabó la escuela se combinaron los temas en uno. También están los enunciados de las tareas y demás material.

Registro de entrega de tareas:

Tarea 1



Última edición por Json; 24/08/2018 a las 01:04
  #2  
13/01/2018
Predeterminado Clase 1: el lenguaje y algoritmos
Clase 1: lenguaje de programación python y algoritmos

Parte 1: el lenguaje e instalación
El computador es una máquina estúpida, pero muy rápida. Puede realizar muchas tareas y muy complejas en cuestión de segundos, sin embargo, realmente no "entiende" qué está haciendo, solo sigue al pie de la letra las instrucciones que da el programador. Por tanto, los errores en el código normalmente son culpa de nosotros, los que escribimos dicho código.

Un lenguaje de programación es un "idioma" común entre el computador y el programador. Como cualquier idioma, este tiene una "estructura gramatical" a la que llamamos "sintaxis", que no es más que la forma de estructurar lo que escribimos. Dada la naturaleza de los computadores, todo lo que les digamos serán "instrucciones". La gracia de python es que su sintaxis es muy amigable por lo fácil que resulta de leer, a diferencia de otros lenguajes como ASM, Java o C y su familia. Esa sintaxis la iremos aprendiendo a lo largo del curso.

Lo primero que haremos será descargar el lenguaje e instalarlo en nuestro computador (no se preocupen por los requerimientos, se puede programar hasta en una lavadora).
1) Lo primero es entrar a la página oficial de python (https://www.python.org/downloads/ ) y descargar la versión más reciente que corresponda a la de sus sistemas operativos. Pesa al rededor de 30 MB.

2) Una vez descargado, lo ejecutamos y hacemos click en "Install Now", esperamos a que se instale y luego le damos a "Close".

3) Si usan windows van a inicio > todos los programas > Python: necesito que creen accesos directos en sus escritorios de "IDLE" y "Python 3.6" para que luego les sea más fácil en acceso en el futuro.

Spoiler





Python 3.6:
Es la consola de python (también se le dice "python shell"), esto es lo que ejecuta "por detrás" el código que ustedes escriban.

IDLE:
Es el editor de texto que viene con python, desde él se puede ejecutar directamente el código para probarlo. Es el que usaremos. Tiene dos modalidades que explicaré luego.


Uso de IDLE y la consola de python

Python shell:
1) Abran Python 3.6.
Aquí pueden escribir líneas de código que se ejecutarán. Los archivos .py (los de python) al hacer doble click sobre ellos se ejecutarán aquí y se cerrará automáticamente cuando haya terminado.

Spoiler



IDLE:
1) Abran el IDLE.
Aquí ustedes verán algo como esto:

Spoiler





Esta parte del IDLE es básicamente un python shell con fondo blanco (modalidad 1).

Si van a File > New File o aprietan Ctrl + N se les abrirá una ventana completamente en blanco (modalidad 2).

Spoiler




Spoiler





Ahí ustedes pueden escribir su código para ejecutarlo más tarde y guardarlo como un archivo .py. Si van a Run > Run Module(o aprietan F5) les pedirá guardar el código que hayan escrito en un archivo y luego se ejecutará en la ventana que vimos antes del IDLE. Con Ctrl + S pueden guardar el archivo en el que estén trabajando.

Para ver el código de un archivo .py y modificarlo o continuar trabajando en él van a hacer click derecho sobre el archivo > Edit with IDLE > Edit with IDLE y se les abrirá en el idle para modificar.

Spoiler






Parte 2: algoritmos

Todas las tareas que realizamos en nuestra vida diaria pueden ser descritas mediante una serie de pasos simples y ordenados, a eso le llamamos "algoritmo" y es lo que nos permite hacer que un computador haga lo que queramos sin tener que explicarle nada, tal como alguien que no sabe cocinal puede seguir una receta bien explicada. Vamos con un ejemplo:

Imaginen que nos piden hacer un programa que lance misiles nucleares a cualquier parte del planeta. Pensemos en cuáles son, a grandes rasgos, los pasos necesarios para esto: (en cursiva pondré los pasos que el usuario no ve)

(Notar que hay muchos tipos de misiles nucleares con diferentes alcances y poder destructivo.)

1. Pedir usuario y contraseña: no podemos permitir que cualquiera pueda lanzar un misil nuclear.
2. Si usuario y contraseña coinciden con alguno de los registros, pasar a la siguiente pantalla, si no, informar que el usuario o la contraseña no coinciden con nuestros registros.
(a partir de aquí, todos los pasos se ejecutarán si el usuario y la contraseña son correctos)
3. Pedir que ingrese destino.
4. Pedir que ingrese las potencias mínima y máxima deseada.
5. Tomar el grupo de todos los tipos de misiles disponibles.
6. Crear un segundo grupo pero vacío.
7. Recorrer el primer conjunto, si quedan en stock y llegan al lugar deseado y potencia del misil es mayor o igual a la mínima y menor o igual a la máxima, entonces agregar el misil al segundo conjunto e ir al siguiente de la lista, si no, ir al siguiente de la lista.

8. Si el segundo grupo de misiles (los que cumplen las condiciones solicitadas) tiene algún misil, mostrar en pantalla todos los que contiene y pedir al usuario que elija el que desea usar. De lo contrario, informar al usuario que no dispone de misiles que cumplan con las características solicitadas.

Si desean que el programa sea más sofisticado, podrían incluir información de los misiles que podrían hacerlo pero que no quedan en stock u ofrecer alternativas que se acerquen a dichas características. Luego vendrían los pasos referentes al lanzamiento del misil, pero ya se entiende la idea de un algoritmo. Notarán que el paso 1 a su vez se puede dividir en pasos más pequeños como abrir los registros, comprobar uno a uno la coincidencia de resultados usuario - contraseña, luego hacer efectivo el inicio de sesión, etc. El nivel de detalle al que tendrán que llegar está dado principalmente por el lenguaje de programación en el que estén trabajando y los requerimientos del problema al que se enfrenten.

No existe un plan maestro sobre cómo elaborar algoritmos de forma genérica, sino que es necesario introducirse en el problema para crear uno (la experiencia también ayuda mucho). A lo largo de las clases se irán enfrentando a problemas con una complejidad cada vez mayor de modo que vayan ejercitando sus habilidades para confeccionar algoritmos.


Ejercicios:
1) Tienen que ver este vídeo en el que se da un ejemplo de algoritmos.
2) Quiero que posteen en este tema en un spoiler una tarea compleja que se les ocurra (como robar un banco o restaurar una pintura al óleo, la que quieran) y me digan el algoritmo con el que realizarían la acción, pero teniendo que definir una herramienta con la que deban ejecutar esa tarea. Ejemplo: para robar un banco usarán una pistola, pero deben definir qué es la pistola dando características de la misma (peso, dimensiones, calibre, munición) y acciones que pueden realizar con la pistola (apuntar, disparar, intimidar, golpear). Con un objeto basta.

Cualquier duda pueden preguntarme por el servidor de discord cuyo link les envié vía MP.

NOTA: es muy común en el mundillo de la programación el buscar en internet cosas que uno no sabe o no se acuerda, los animaré durante todo el curso a hacerlo.



Última edición por Json; 25/01/2018 a las 16:56
  #3  
13/01/2018
Bombilla Respuesta: Clase 1: el lenguaje y algoritmos
Bueno os explicare como encender una pc de mesa y usarla apropiadamente

Spoiler


1)se debe conectar el cable de alimentacion
2) se debe prender el switch de la fuente de energia
3)posteriormente marcar el boton del Cpu y monitor
4)aparecera el logo de la empresa del pc y luego dira unos parametros donde sale tres opciones se marcara F1 para poder continuar
5) aparecera el usuario y nos pedira la clave
6 listo estamos en el escritorio arrastramos el mouse hacia el navegador y buscamos cualquier informacion
7) en caso de funcionamiento lento debe generarlo un virus que genere archivos basura en ese caso usaremos un antivirus
8) si el pc se torna infectado procederemos a formatearlo y reinstalar el sistema windows y luego de vaciar la unidad para poner el nuevo sistema se instalan los drivers para un funcionamiento optimo
Zero for GMod

Última edición por joaquino; 13/01/2018 a las 22:54
  #4  
13/01/2018
Predeterminado Re: Clase 1: el lenguaje y algoritmos

Preparemos Café

A ver
1 conseguimos la cafetera, la cual debe de cumplir con las funciones de:
calentar el agua,una vez calentada pasarla por el filtro en donde estará el café
y una vez que se cumplan la anteriores 2 tareas tomar el producto resultante(café) y servirlo(en el lugar donde se supondría que esta la jarra)
2 Tomamos el paquete de café en polvo y si tiene café lo ponemos en la cafetera solo si esta no tiene café en polvo ya,de lo contrario no hay café :'u.
3 Si la cafetera esta conectada pasamos al paso 3 sino la conectamos nosotros.
4 Sino tiene agua le ponemos y si tiene pasamos al paso 4.
5 Verificamos que la Jarra este en su lugar y de no estarlo buscarla y sino lo encuentras busca cualquier wea que se le asemeje.
6 Verificamos que hayamos hecho todo bien sino ver en que nos equivocamos pero, si lo hicimos todo bien oprimimos el botón y ponemos la cafetera a andar.
7 Esperar a que salga el Café y comprobar que sea café y si vemos que hay algo mal con nuestro café, revisamos la cafetera y cualquier cosa extraña que veamos la anotamos y hacemos una lista de todo lo raro que encontremos(definase raro como todo aquello que no cumpla con las características de la cafetera) y la lista se la damos a un técnico para que después vea que le pasa a la cafetera.
8 Si todo lo anterior se ejecuto correctamente y la cafetera no tuvo ningún problema deberíamos tener café calentito y listo para beber.



Let justice be done though the heavens fall
  #5  
14/01/2018
Predeterminado Clase 2: variables tipo int y float
Clase 2: variables tipo int y float

Parte 1: variables

En álgebra, una variable es una letra que representa uno o varios valores numéricos. En progrmación el concepto es parecido pero no exactamente igual: pensemos en una variable como un espacio dentro del computador donde guardamos "cosas". En esta primera parte veremos que esas cosas pueden ser de cuatro tipos que se pueden llamar "valores. Hoy veremos los primeros dos.

Palabras reservadas y caracteres no admitidos:

Hay ciertas palabras que el lenguaje usa para otras cosas, por lo que no pueden ser utilizadas como nombres para nuestras variables, aquí la lista: False, None, True, and, as, assert, break, class, continue, def, del, elif, else, except, finally, for, from, global, if, import, in, is, lambda, nonlocal, not, or, pass, raise, return, try, while, with, yield.

Solo pueden usar las letras de la A a la Z en mayúsculas o minúsculas sin considerar la Ñ y nada de tildes (á, é, í, ó, ú, ý, Á, É, Í, ...), también pueden usar números y el guion bajo ( _ ). Nada de puntos (.), comas(,), guiones (-) u otros caracteres.

aux1_ es un nombre que sí pueden usar

Del no es un nombre que pueden usar porque es una palabra reservada

daño no es un nombre que puedan usar porque contiene la letra Ñ (se puede reemplazar la Ñ por N, GN o NN, dejando dano, dagno o danno como nombre válido)

Sintaxis: declarando una variable

Para declarar una variable basta con:

/nombre_variable/ /asignación/ /valor/

nombre_variable es el nombre de nuestra variable
asignación es el caracter que le indica al computador que lo anterior es el nombre de una variable a la que le voy a asignar un valor, es UN signo igual (=)
valor es lo que le asigno a mi variable

Ejemplos:

dagno = 4
aux = 26

Función print():

Cuando hacemos un programa, normalmente este va a interactuar con el usuario diciéndole cosas o pidiendo inputs. Para mostrar texto en pantalla se usa la función print(<<cosa>>). Más tarde la usaremos.

Una función en python tiene la sintaxis funcion(argumentos) (una función puede tener varios argumentos, los que se separan por comas (,)).


Parte 2: int y float

Los dos tipos de datos que veremos hoy son numéricos, un integer (int para los amigos) es un número entero, mientras que un float es un número con parte decimal.

Esa distinción es importante porque si queremos en el futuro que el computador ejecute una orden cinco veces, ese cinco debe ser un int y no un float.

Operaciones matemáticas:

Las operaciones de python para estos dos tipos de valores son: suma (+), resta (-), multiplicación (*), división (/), división parte entera (//), resto (%) y potencia (**).

Otra cosa a tener en cuenta es el orden de las operaciones:
En una línea de código, lo primero que se ejecutan son los paréntesis, luego potencias, en tercer lugar multiplicaciones, divisiones, división entera y resto y finalmente sumas y restas.

Ahora necesito que abran el IDLE, ustedes pueden escribir después de tres ">" y si escriben una línea que se ejecutará en pantalla, no lo tiene.

Para ejecutar una línea deben presionar enter.

Suma:
Código:
>>> a = 4
>>> b = 2
>>> print(a + b)
6
Código:
>>> a = 4
>>> c = -7
>>> d = a + c
>>> print(d)
-3
Código:
>>> a = 6
>>> a = a + 4
>>> print(a)
10
>>> a += 4
>>> print(a)
14
Esto último es: a una variable le asigno su mismo valor + 4.

Resta:

Código:
>>> a = 4
>>> b = 2
>>> c = -7
>>> print(a - b)
2
>>> print(a - c)
11
Código:
>>> a = 6
>>> a = a - 4
>>> print(a)
2
>>> a -= 4
>>> print(a)
-2
Multiplicación:

Código:
>>> a = 4
>>> b = 5
>>> print(a*b)
20
Código:
>>> a = 7
>>> u = 15
>>> d = 338
>>> respuesta = (a + u)*d*u
>>> print(respuesta)
111540
Código:
>>> a = 6
>>> a = a*4
>>> print(a)
24
>>> a *= 4
>>> print(a)
96
División:

Código:
>>> a = 13
>>> b = 5
>>> a/b
2.6
Sí, también se puede hacer que muestre en pantalla sin necesidad de usar la función print pero esto es porque el IDLE hace eso, cuando ejecutamos un código desde un archivo no funciona.

Código:
>>> a = 6
>>> a = a/4
>>> print(a)
1.5
>>> a /= 4
>>> print(a)
0.375
División parte entera:

Código:
>>> a = 13
>>> b = 5
>>> print(a//b)
2
La parte entera de un número x es el número entero inmediatamente menor o igual a x, es decir:
parte entera de 3.2 es 3
parte entera de -1.1 es -2
parte entera de 0.0 es 0

Código:
>>> a = 6
>>> a = a//4
>>> print(a)
1
>>> a //= 4
>>> print(a)
0
Si tanto a como b son int, a//b será int. Pero si a o b son float, a//b será float.

Resto:

Cuando nos enseñaron a dividir de pequeños había una entidad llamada "resto" que era lo que sobraba cuando ya no podíamos seguir dividiendo, luego ese resto comenzó a dar origen a los decimales.

Código:
>>> a = 7
>>> b = 3
>>> a%b
1
Esto es porque b cabe 2 veces en a (3*2 == 6) y luego sobra 1.

Código:
>>> a = 7
>>> b = 8
>>> a%b
7
Código:
>>> a = 6
>>> b = 3
>>> a%b
0
Así sabemos fácilmente si un número es divisor de otro.

Código:
>>> a = 6
>>> a = a%4
>>> print(a)
2
>>> a %= 4
>>> print(a)
2
Potencia:

Código:
>>> a = 7
>>> b = 3
>>> a**b
343

Código:
>>> a = -1
>>> b = 13
>>> a**b
-1
Código:
>>> a = 6
>>> a = a**4
>>> print(a)
1296
>>> a **= 4
>>> print(a)
2821109907456


Función type():

La función type() nos permite saber qué tipo de dato es una variable, entonces:

Código:
>>> a = 0.0
>>> type(a)
<class 'float'>
Código:
>>> a = 0
>>> type(a)
<class 'int'>

Ejercicios:

1) Experimentar con todas las operaciones descritas y encontrar qué retorna un int, qué retorna un float y en qué circunstancias. Deben resumirlo en un post de este comentario.
2) Descubran para qué sirven las funciones int() y float()
3) Hagan un programa que separe los dígitos de un número de cuatro cifras (ej: si el número es 1238, debe imprimir
1
2
3
8). (Sin el paréntesis y el punto del final, usen el segundo modo que expliqué ayer, la parte que es para escribir un código entero antes de probarlo).
4) Expliquen en un comentario qué pasa si hacen cosas como
Código:
>>> print(2/0)
E interpreten lo que python les diga.


Última edición por Json; 25/01/2018 a las 16:51
  #6  
14/01/2018
Predeterminado Respuesta: Clase 2: variables tipo int y float
Anexo

Ahora les voy a enseñar paso a paso cómo escribir un programa entero antes de ejecutarlo, usando la "modalidad 2" que les comenté en la clase 1.

1) Abran el IDLE
2) Vayan a File > New File

Spoiler



Listo, están en el editor de código.

Spoiler



Ahora la sintaxis: no se necesita nada especial, las mismas líneas que escribían antes en la consola se pueden escribir acá:

Ejemplo:

Para saber si un número es par basta con:
Código:
num = 513 #este es un número de ejemplo, puede ser el que se les de la gana
par = num%2
print(par)
NOTA: lo que está en rojo después del # es un comentario y no afecta en nada al código. Permite añadir explicaciones o cosas de ese estilo.

Spoiler





Ejecutemos:

3) Vayan a Run > Run in Module
Les pregntará si desean guardar los cambios y/o la ubicación donde quieren guardarlo, pónganlo en una ubicación a la que puedan llegar sin problemas.
4) Se les abrirá la python shell del IDLE y se ejecutará el código ahí.

Spoiler



5) Felicidades! Ya sabes que 513 no es par, porque el resto de 513 entre 2 es 1 y no cero.
  #7  
14/01/2018
Predeterminado Respuesta: Clase 2: variables tipo int y float
1) Todas las operaciones en que implicitamente se esté trabajando con int, devuelven int. Ejemplo: 5 + 3 = 8, 4**2 = 16, 4//10 = 0.

Cuando se opera con un float implicita o explicitamente, el resultado simpre será float. Ejemplo: 5 + 3.0 = 8.0, 4.0**2 = 16.0, 4**2.5 = 32.0, 4/10 = 0.4.

2) Las funciones "int()" y "float()" convierten un número al formato entero o al de float, respectivamente. Ejemplo: a = 4.0, int (a) == 4. a =4, float(a) == 4.0.

3)Primer intento: https://mega.nz/#!Ag9WSRRI!SCvv8p3RB...o3ENV8LpsdxRFI

Segundo intento: https://mega.nz/#!Ml8UDT4b!slsRTTh2W...KFkDlN6WBW2kEI

4) Sale una excepción mostrando los errores de las líneas que lo contienen y el nombre de la excepción, en este caso: "ZeroDivisionError: division by zero".


Muchas gracias a @Zeropor ayudar a crecer a esta comunidad!



"Un sueño puede sustentarte; puede matarte o atormentarte. Pero si tú abandonas tu sueño, lo ocultas en tu corazón, es como suicidarse. Cada hombre, en su tiempo de vida, debería por lo menos tener esperanza por una vida que pueda sacrificar al dios de los sueños. La vida que busca solo vivir otro día, ¡es inaceptable!"
~Berserk

"El triunfo quedará siempre fuera del alcance de quienes temen constantemente al fracaso. El verdadero guerrero perfecciona cuerpo y mente y mira más allá de las tribulaciones del momento."
~Dark Souls II

"Un sueño es algo que haces para ti mismo, no para otros. Algunos sueñan con dominar el mundo. Algunos solo viven por una espada. Si te juegas la vida por un sueño como un torbellino ese sueño se tragará todos los demás."
~Berserk

Última edición por Berserker1523; 16/01/2018 a las 07:15
  #8  
15/01/2018
Predeterminado Clase 3: variables tipo string
Clase 3: variables tipo string

Aviso: a partir de aquí ya no usaré más el python shell que viene en el IDLE, desde ahora todo el código se escribe en un archivo, se guarda en el disco y luego ejecuta.


Un string (str) es un tipo de dato que consiste en una cadena de caracteres (letras) formando un texto. En python se coloca entre comillas simples o dobles.

Declarando una variable string.

En python una variable puede ser un entero y luego un float para acabar siendo un string a diferencia de otros lenguajes a los que hay que decirles de qué tipo será la variable que uno crea.
Al igual que con los int y float, para crear una variable que sea un string basta con

texto = "¡Hola Mundo!"

Luego, con ese string podemos hacer muchas cosas que iré explicando de a poco:

Operando con strings

A diferencia de los valores numéricos, con strings solo existen dos operaciones matemáticas posibles: sumas y multiplicaciones.

Suma:
Código:
t1 = "hola"
t2 = "chao"
t3 = a + b
print(t3)
Código:
holachao
Pero, si tomamos los t1 y t2 que definimos antes y:
Código:
t3 = " " #es un espacio: sí, el caracter espacio existe
t4 = t1 + t3 + t2
print(t4)
Código:
hola chao
Código:
t1 = "hola"
t1 += " chao"
print(t1)
Código:
hola chao
Código:
t1 = "hola"
t1 = t1 + " chao"
print(t1)
Código:
hola chao
Multiplicación:
Código:
t1 = 'hola'
t2 = 3*t1
t3 = t1*3
print(t2)
print(t3)
Código:
holaholahola
holaholahola
Código:
t1 = "hola"
t1 *= 3
print(t1)
Código:
holaholahola
Fíjense bien en los paréntesis en este ejemplo:
Código:
a = "holi"
b = "chau"
print((a + b)*3 + 3*a + 3*b)
Código:
holichauholichauholichauholiholiholichauchauchau
Función len():

La función len aplicada a un string retorna el número de caracteres contenidos en uno.

El string vacío:

Así como existe el cero en los números, existe el vacío en los strings, que se declara de la siguiente forma:

Código:
str_vacio = ""
o
Código:
str_vacio = ''
Según se prefiera, con comillas simples o dobles.
(El nombre "str_vacio" puede ser lo que a ustedes se les ocurra).

Conectémoslo con lo anterior:
Código:
texto1 = "hola"
texto2 = " " #un espacio
texto3 = "" #string vacío
print(texto1, len(texto1))
print(texto2, len(texto2))
print(texto3, len(texto3))
Código:
hola 4
  1
 0
Separar variables como argumentos de la función print hace que se impriman separadas por el "separador" indicado, que por defecto es un caracter espacio.

Modificando el separador de la función print:
Hagámos que el texto que imprimimos en pantalla sea más profesional; ahora quiero que diga "string: hola; largo: 4"
Código:
texto1 = "hola"
texto2 = " " #un espacio
texto3 = "" #string vacío
print("string: " + texto1, len(texto1), sep = "; largo: ")
print("string: " + texto2, len(texto2), sep = "; largo: ")
print("string: " + texto3, len(texto3), sep = "; largo: ")
y eso al ejecutarse:
Código:
string: hola; largo: 4
string:  ; largo: 1
string: ; largo: 0
Índices:
Ahora, imaginen que tienen una cadena de texto y quieren saber un caracter en concreto, pueden obtenerlo gracias a su índice, es decir, qué posición ocupa dentro del string de izquierda a derecha, se cuenta a partir de cero.
En el string "Hola", la "H" sería el 0, "o" el 1, "l" el 2 y "a" el 3. len("Hola") es 4.
¿Cómo se hace esto en código?

Código:
texto = "París"
print(texto[0])
print(texto[1])
print(texto[2])
print(texto[3])
print(texto[4])
Código:
P
a
r
í
s
Código:
t = "París"
print(t[0], t[1], t[2], t[3], t[4], sep = "-")
Código:
P-a-r-í-s
De derecha a izquierda, en cambio:
para
Código:
string = "Hola"
string[-1] -> 'a'
string[-2] -> 'l'
string[-3] -> 'o'
string[-4] -> 'H'
Intervalos:
Si tengo el string
Código:
string = "miraquechulosoy"
string[a:b] retornará la cadena de caracteres que está a partir de la posición "a" y hasta justo antes de la posición "b".
Ej:
Código:
string = "miraquechulosoy"
string[1:4]
Código:
ira
Omitir "a" o "b" hace que sea "desde" o "hasta" el extremo correspondiente del string:

Código:
a = "Hola"
print(a[:2])
print(a[2:])
Código:
Ho
la
Dar la vuelta a un string:

Código:
string = "Hola"
gnirts = string[::-1] #aquí está la magia
print(gnirts)
Código:
aloH

Caracteres especiales:
Fundamentalmente les voy a enseñar dos caracteres especiales, uno ahora y otro en algunas clases más adelante para que lo entiendan.
El de ahora es el "salto de línea".

Imaginen que quiero imprimir en pantalla lo siguiente:
Código:
hola
chao
patata
azul
Esto es fácilmente obtenible con un caracter que le indica al computador que debe continuar escribiendo en la línea de abajo: "\n" (tienen que ver ustedes cómo, según su teclado, deben hacer la combinación de teclas para el "backslash" (\)). Sí, son dos caracteres pero el computador los lee como uno, en concreto:
Código:
palabra1 = "hola"
palabra_2 = 'chao'
dragon = "patata"
palabra_cuatro = "azul"
print(palabra1, palabra_2, dragon, palabra_cuatro, sep="\n")
Código:
hola
chao
patata
azul
O también se puede conseguir:
Código:
palabra1 = "hola"
palabra_2 = 'chao'
dragon = "patata"
palabra_cuatro = "azul"
ursaring = "\n"
Código:
finale = palabra1 + ursaring + palabra_2 + ursaring +\
    dragon + ursaring + palabra_cuatro
print(finale)
Backslash (\) + enter permite seguir escribiendo en la línea de abajo, mañana les cuento un detalle de eso.

Código:
hola
chao
patata
azul
Función str():
Si tienen una variable que es un int o un float, pueden usar la función str() para convertirla en un string y manejarla de esa forma. Del mismo modo, int() o float() pueden transformar, en determinados casos, un string en un int o float.

Función input():
La función input() simplemente abre el canal para recibir entradas del teclado y las retorna como un string. Uno normalmente la usará para asignarlo a variables y hacer cosas.

Se puede escribir un string como arcumento que se imprimirá en pantalla al momento en el que el usuario empiece a escribir.

Ejemplo 1:
Código:
mensaje = input("Ingrese su mensaje: ")
print(mensaje)
Al ejecutarse:

Spoiler



Luego de escribir presionamos enter y voalá!

Spoiler



Ejemplo 2:
La clase anterior varios tuvieron problema con el ejercicio 3, aquí les va el código, con un par de cosas que vimos hoy:

Código:
num = int(input("Ingrese un número de cuatro cifras: ")) #notar que después de los dos puntos dejé un espacio
unidades = num%10
num//=10
decenas = num%10
num//=10
centenas = num%10
num//=10
miles = num
print(miles, centenas, decenas, unidades, sep = "\n")
Con lo visto hoy se puede simplemente hacer:
Código:
num = str(int(input("Ingrese un número de cuatro cifras: ")))
print(num[0], num[1], num[2], num[3], sep="\n")
Con cualquiera de los códigos anteriores al ejecutarlo, van a escribir el número que desean que separe, y a contunación va a imprimir los dígitos de ese número de izquierda a derecha, uno por cada línea.


Ejercicios: (recuerden que su resolución la considero como materia del curso, aunque no son obligatorias)
1) Explíquenme por qué en la línea del ej. 3 de la clase pasada pasé el input que estaba como string a integer (int) y luego lo volví a pasar a string:

num = str(int(input("Ingrese un número de cuatro cifras: ")))

2) Reciban dos strings de largo 5 cada uno y deben intercalarlos, el segundo debe estar al revés: si str1 = "holii" y str2 = "miraa", deben imprimir en pantalla "haoalriiim".

3) Busquen en interneto sobre el "módulo random" de python 3.6 y practiquen un poco las funciones random.random() y random.randint(), el resto las dejaremos para después de la tarea 1.

4) Busquen qué hacen los métodos string.replace(), string.index(), string.count(), str.upper(), str.lower() y str.capitalize().


Última edición por Json; 25/01/2018 a las 16:52
  #9  
16/01/2018
Predeterminado Respuesta: Clase 3: variables tipo string
Soluciones a las mini tareas:

Soluciones


1)



Para que el programa sacara excepción si el usuario digitaba un caracter que no fuera un número.




3)


random.randint(int, int) devuelve un número entero entre el rango indicado que contiene a los límites.

random.random() devuelve un float entre 0 y 1. Ejemplo: 0.9034893851526794 -- 0.269102864451393 -- 0.6114071669545609


4)


string.replace(SubStringParaReemplazar, SubStringAReemplazar): Como puse en los parámetros, reemplaza una subcadena en el String por la indicada.

string.index(str, beg, end): .Este método devuelve el índice donde empieza el str si este es una subcadena del string desde el "beg" hasta el "end", si no lo encuentra lanza excepción.

string.count(sub, start, end): Devuelve cuantas veces aparece una subcadena en el string desde "start" hasta "end".

str.upper(): Transforma la cadena en mayúscula sostenida.

str.lower(): Transforma toda la cadena a minúscula.

str.capitalize(): Capitaliza la cadena, esto es, pone la primera letra en mayúscula (y creo que lo dempas lo pone en minúscula, no estoy seguro).




Muchas gracias a @Zeropor ayudar a crecer a esta comunidad!



"Un sueño puede sustentarte; puede matarte o atormentarte. Pero si tú abandonas tu sueño, lo ocultas en tu corazón, es como suicidarse. Cada hombre, en su tiempo de vida, debería por lo menos tener esperanza por una vida que pueda sacrificar al dios de los sueños. La vida que busca solo vivir otro día, ¡es inaceptable!"
~Berserk

"El triunfo quedará siempre fuera del alcance de quienes temen constantemente al fracaso. El verdadero guerrero perfecciona cuerpo y mente y mira más allá de las tribulaciones del momento."
~Dark Souls II

"Un sueño es algo que haces para ti mismo, no para otros. Algunos sueñan con dominar el mundo. Algunos solo viven por una espada. Si te juegas la vida por un sueño como un torbellino ese sueño se tragará todos los demás."
~Berserk

Última edición por Berserker1523; 18/01/2018 a las 05:00
  #10  
16/01/2018
Predeterminado Respuesta: Clase 3: variables tipo string
Me pide clave de cifrado para descargar el archivo :/

Dicho por Berserker1523 Ver mensaje
Soluciones a las mini tareas:

Souluciones


1)



Para que el programa sacara excepción si el usuario digitaba un caracter que no fuera un número.




3)


random.randint(int, int) devuelve un número entero entre el rango indicado que contiene a los límites.

random.random() devuelve un float entre 0 y 1. Ejemplo: 0.9034893851526794 -- 0.269102864451393 -- 0.6114071669545609


4)


string.replace(SubStringParaReemplazar, SubStringAReemplazar): Como puse en los parámetros, reemplaza una subcadena en el String por la indicada.

string.index(str, beg, end): .Este método devuelve el índice donde empieza el str si este es una subcadena del string desde el "beg" hasta el "end", si no lo encuentra lanza excepción.

string.count(sub, start, end): Devuelve cuantas veces aparece una subcadena en el string desde "start" hasta "end".

str.upper(): Transforma la cadena en mayúscula sostenida.

str.lower(): Transforma toda la cadena a minúscula.

str.capitalize(): Capitaliza la cadena, esto es, pone la primera letra en mayúscula (y creo que lo dempas lo pone en minúscula, no estoy seguro).


 

Herramientas
Desplegado

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Desactivado
Trackbacks are Activado
Pingbacks are Activado
Refbacks are Desactivado



Extra
Estilo clásico
La franja horaria es GMT +1. Ahora son las 04:50.