WEBVTT 00:00:00.500 --> 00:00:03.710 Hola. Bienvenidos a Python para informática. 00:00:03.710 --> 00:00:05.449 Veremos el capítulo I. 00:00:05.449 --> 00:00:08.220 Soy Charles Severance de la Universidad de Michigan, 00:00:08.220 --> 00:00:14.145 autor y conferencista en línea de este 1er capítulo del libro. 00:00:15.350 --> 00:00:19.033 Esta conferencia, como las diapositivas y el libro, 00:00:19.033 --> 00:00:22.534 son contenido libre, materiales libres. 00:00:23.062 --> 00:00:25.869 Tienen licencia de atribución de Creative Commons, 00:00:25.869 --> 00:00:29.395 lo mismo que este video. 00:00:29.395 --> 00:00:33.889 Menciono esto por la importancia de los derechos de autor. 00:00:33.889 --> 00:00:35.584 REQUISITO: INSTALAR PYTHON 00:00:35.584 --> 00:00:40.266 Así que... si no lo han hecho todavía, por favor, instalen Python. 00:00:40.276 --> 00:00:42.026 Tendrán que hacerlo tarde o temprano, 00:00:42.026 --> 00:00:44.740 y mejor hacerlo antes de la conferencia. 00:00:44.740 --> 00:00:47.260 Podrían verla sin tener Python, 00:00:47.269 --> 00:00:50.081 pero si lo instalan podrán probar algunas cosas, 00:00:50.081 --> 00:00:55.008 e incluso programar algo en esta conferencia. 00:00:55.056 --> 00:01:00.447 Y así pueden seguirme con Python en otra ventana. 00:01:00.447 --> 00:01:05.423 Está en pythonlearn.com/install.php 00:01:05.423 --> 00:01:10.035 Tiene instrucciones para MS Windows y Macintosh. 00:01:10.036 --> 00:01:13.626 Y no está en esta diapositiva, pero recién cargué... 00:01:13.627 --> 00:01:16.145 instrucciones de instalación para la Raspberry Pi, 00:01:16.145 --> 00:01:19.951 la nueva y genial computadora de 25 dólares. 00:01:19.951 --> 00:01:26.263 Son instrucciones muy sencillas, con imágenes de pantalla paso a paso. 00:01:26.263 --> 00:01:28.556 No tardan más de diez minutos. 00:01:28.556 --> 00:01:33.292 Pueden detenerlas, iniciarlas, bajarlas a su disco duro. 00:01:33.292 --> 00:01:39.010 Los encaminarán a instalar Python o el editor de texto, si es necesario, 00:01:39.010 --> 00:01:41.713 luego a correr su primer programa en Python. 00:01:41.713 --> 00:01:43.999 ¡Y tendrán que correr un programa en Python! 00:01:44.007 --> 00:01:47.050 Así que... es el mejor momento... 00:01:47.059 --> 00:01:50.633 para detenerse, instalarlo, y regresar, ¿les parece? 00:01:51.035 --> 00:01:54.142 Bueno, regresemos a la introducción. 00:01:54.592 --> 00:01:58.376 Entonces.... las computadoras más que nada quieren ser útiles. 00:01:58.386 --> 00:02:00.433 Están programadas— 00:02:01.377 --> 00:02:06.033 Este es un microprocesador, una pieza electrónica. 00:02:06.033 --> 00:02:08.911 Tiene circuitos y alambres dentro. 00:02:08.911 --> 00:02:12.627 Y alguien dedicó mucho tiempo de ingeniería para crearlo 00:02:12.627 --> 00:02:15.272 de manera que estas patas de atrás 00:02:15.272 --> 00:02:17.809 reciban instrucciones de nosotros, 00:02:17.809 --> 00:02:22.041 de sistemas operativos, del disco duro, de la memoria. 00:02:22.041 --> 00:02:24.517 Aquí entran instrucciones, acá salen resultados. 00:02:24.517 --> 00:02:27.137 Es como una calculadora muy programable 00:02:27.137 --> 00:02:29.583 y nuestro trabajo es meterle instrucciones. 00:02:29.584 --> 00:02:32.713 Esta cosa, en cierto sentido, está diseñada... 00:02:32.713 --> 00:02:35.847 para ser curiosa sobre lo que sigue; 00:02:35.847 --> 00:02:40.184 Como si preguntara: «¿Qué sigue?» 00:02:40.184 --> 00:02:43.958 ¿Qué sigue?, ¿qué sigue?, y después, ¿qué sigue? 00:02:43.958 --> 00:02:46.841 Hace eso un millardo de veces por segundo. 00:02:46.846 --> 00:02:49.822 Esta pieza es la base. 00:02:49.822 --> 00:02:54.276 Podemos decir que en un teléfono inteligente como este, 00:02:54.276 --> 00:03:00.233 todos los botones dicen: ¿Qué sigue? 00:03:00.233 --> 00:03:03.314 Cada uno de ellos es algo que pide mi atención. 00:03:03.314 --> 00:03:06.894 Algún diseñador de aplicaciones ha creado una aplicación genial 00:03:06.895 --> 00:03:09.856 que dice: «¡Por favor, úsame! ¡Presióname!» 00:03:09.856 --> 00:03:11.943 «No soy nada sin ti». 00:03:11.943 --> 00:03:16.277 Los humanos hacemos que las computadoras actúen. 00:03:16.277 --> 00:03:20.442 Y esta estará ahí feliz hasta que yo le pida hacer algo. 00:03:20.442 --> 00:03:24.187 Bien... ¡Ay! (Ruido de aparato que cae) 00:03:24.187 --> 00:03:25.920 Espero que esté bien. 00:03:25.923 --> 00:03:28.479 Sí, parece estar bien. 00:03:28.480 --> 00:03:30.631 Tremendo golpe y sigue funcionando. 00:03:30.631 --> 00:03:33.754 Entonces, cualquiera puede usar uno de estos. 00:03:33.754 --> 00:03:38.265 Dicen que incluso un animal puede usar un iPhone, 00:03:38.265 --> 00:03:41.115 Así que no hace falta ser programador, pero... 00:03:41.115 --> 00:03:43.582 para lograr que esto haga lo que quieres, 00:03:43.582 --> 00:03:45.793 necesitas aprender un lenguaje diferente: 00:03:45.793 --> 00:03:49.879 el lenguaje de las instrucciones... para decirle qué hacer. 00:03:49.891 --> 00:03:54.437 Así que eso haremos: aprender a hablarle. ¡Oye! 00:03:54.437 --> 00:03:58.310 Porque nos está preguntando... y debemos darle respuesta. 00:03:59.759 --> 00:04:04.674 Bueno, ¿qué es un programador? Es alguien que escribe un programa, 00:04:04.674 --> 00:04:07.556 es decir un script o juego de instrucciones 00:04:07.556 --> 00:04:10.469 que le dicen a uno de estos aparatos 00:04:10.470 --> 00:04:12.683 qué se supone que debe hacer. 00:04:12.683 --> 00:04:16.321 A veces se corre un programa como Moodle, NOTE Paragraph 00:04:16.321 --> 00:04:20.922 un sistema de aprendizaje libre, o Sakai, otro sistema parecido. 00:04:20.924 --> 00:04:23.490 Y algunas veces incluso te pagan por hacerlo. 00:04:23.490 --> 00:04:28.565 A veces es gratis, a veces te pagan, y otras veces lo haces por gusto. 00:04:29.215 --> 00:04:36.009 Por todas las aplicaciones de mi iPhone, alguien ha ganado dinero. 00:04:36.009 --> 00:04:38.112 Quizá no tanto como para dejar su empleo, 00:04:38.112 --> 00:04:41.208 pero muchos han podido renunciar e iniciar compañías pequeñas. 00:04:41.208 --> 00:04:44.021 Aunque sea compañías pequeñas. 00:04:45.191 --> 00:04:48.961 Entonces estas personas que pueden poner aplicaciones en nuestras computadoras 00:04:48.961 --> 00:04:53.847 son programadores, porque entienden... la forma de hablarles. 00:04:53.847 --> 00:05:00.124 En parte quiero que dejen de pensar como el usuario final, 00:05:00.124 --> 00:05:02.959 que cree que esto es sólo algo para presionar, 00:05:02.959 --> 00:05:08.645 y piensen como el programador que está dentro, tratando de salir. 00:05:08.645 --> 00:05:13.191 Al ir del usuario al programador, vamos de afuera hacia dentro. 00:05:13.191 --> 00:05:18.002 Pensamos en el mundo exterior, decimos: ¿Qué botón van a presionar? 00:05:18.015 --> 00:05:20.538 Esta es una imagen de eso. 00:05:20.557 --> 00:05:23.201 Entonces, por fuera somos usuarios, presionamos botones, 00:05:23.201 --> 00:05:27.521 hacemos clic en páginas web, etcétera, etcétera. 00:05:27.539 --> 00:05:30.384 Pero lo que en realidad sucede dentro de todo eso, 00:05:30.385 --> 00:05:34.244 es que hay una computadora con un montón de software dentro, 00:05:34.244 --> 00:05:38.842 lo mismo que datos, redes, otra información. 00:05:38.843 --> 00:05:44.501 Y el software... es lo que da sentido a todo eso. 00:05:44.506 --> 00:05:46.894 Así que algo que quiero que hagan 00:05:46.894 --> 00:05:50.440 es dejar de pensar cómo usar estas cosas desde el exterior 00:05:50.456 --> 00:05:53.027 y empezar a pensar como programadores. 00:05:53.314 --> 00:06:00.378 Estamos dentro con la CPU, con la memoria, con la conexión de red. 00:06:00.388 --> 00:06:05.466 Hacemos cosas por el usuario... y se las presentamos. 00:06:06.724 --> 00:06:08.547 ¿Para qué ser programador? 00:06:08.548 --> 00:06:13.069 Esta clase no pretende convertirlos en programadores profesionales, 00:06:13.070 --> 00:06:16.674 aunque me enorgullecería mucho que después de cinco o diez clases... 00:06:16.674 --> 00:06:20.353 ya fueran programadores, pero ese no es el propósito de esta clase. 00:06:20.353 --> 00:06:24.246 A veces sólo desean concluir algo. Tienen una hoja de Excel en el trabajo... 00:06:24.250 --> 00:06:27.626 y los datos no están bien. Alguien más se los pasó, 00:06:27.630 --> 00:06:30.566 y hay espacios extra donde no debería haberlos, 00:06:30.567 --> 00:06:37.176 le faltan campos, o deben hacerle algo que Excel no puede hacer, y piensan: 00:06:37.178 --> 00:06:42.000 «Querría modificar estos datos para hacer mi trabajo, pero... 00:06:42.008 --> 00:06:46.027 ¡Qué fastidio! Pasarlos a un editor de textos, como MS Word, 00:06:46.027 --> 00:06:49.464 e ir línea por línea para limpiar los datos». 00:06:49.474 --> 00:06:52.529 Pueden escribir un programa para eso, como los que haremos aquí. 00:06:52.529 --> 00:06:56.816 Los programas satisfacen necesidades. Están en la computadora para servirnos. 00:06:56.816 --> 00:07:01.403 Los programadores profesionales tienden a construir cosas para los demás. 00:07:01.403 --> 00:07:03.693 Tienden a crear cosas para los demás. 00:07:03.693 --> 00:07:08.161 Pero... nosotros las haremos principalmente para nosotros. 00:07:08.367 --> 00:07:11.728 Bien, ¿qué es el código? ¿Qué es el software? 00:07:11.735 --> 00:07:14.523 Usamos estas palabras casi indistintamente: un programa. NOTE Paragraph 00:07:14.523 --> 00:07:17.424 En realidad es una secuencia de instrucciones guardadas. 00:07:17.425 --> 00:07:20.227 Aprendemos el lenguaje hablado por esto, 00:07:20.228 --> 00:07:24.034 luego introducimos las instrucciones, una por una. 00:07:24.035 --> 00:07:28.718 Las lee una a la vez, da un resultado; le damos la siguiente, y la regresa. 00:07:28.718 --> 00:07:32.110 Toma, da, toma, da. Entonces es una secuencia de instrucciones guardadas, 00:07:32.110 --> 00:07:37.453 pero... es más que eso; es como nuestra creatividad. 00:07:37.463 --> 00:07:43.075 Si han usado mis programas, como MOOC, dediqué... como un mes a escribirlo. 00:07:43.085 --> 00:07:47.974 Y es como si fuera yo. Es mi visión de cómo debe funcionar algo genial. 00:07:47.974 --> 00:07:51.638 Entonces, es más que lograr que se hagan las cosas. 00:07:51.639 --> 00:07:54.059 Implica un sentimiento de orgullo y logro, 00:07:54.060 --> 00:07:56.833 especialmente si hacen algo que le sirve a otros. 00:07:56.833 --> 00:07:59.193 Es algo... muy creativo. 00:07:59.194 --> 00:08:01.700 Es lo que me llevó a ser programador en primer lugar: 00:08:01.701 --> 00:08:05.379 poder aprovechar las capacidades de esto 00:08:05.379 --> 00:08:08.759 para hacer cosas geniales en beneficio del usuario. 00:08:08.759 --> 00:08:13.423 Entonces... código, software, un programa. 00:08:13.433 --> 00:08:18.076 Veamos un ejemplo no tan técnico de eso. 00:08:19.069 --> 00:08:22.806 Les he puesto un vínculo a YouTube para esto. 00:08:22.806 --> 00:08:29.901 Es... La Macarena, una canción que lleva un baile... 00:08:29.901 --> 00:08:33.765 que todo el mundo parece conocer, o aprender muy rápido. 00:08:33.765 --> 00:08:38.820 Entonces voy a parar para que vean la Macarena, y regresamos. 00:08:41.091 --> 00:08:44.112 Bienvenidos otra vez. Espero que lo hayan disfrutado. 00:08:44.116 --> 00:08:48.673 En cierto sentido lo que vimos es... un programa. 00:08:48.673 --> 00:08:51.026 Un programa para seres humanos. 00:08:51.026 --> 00:08:55.133 Quizá lo aprendieron en un club donde les dijeron qué hacer. 00:08:55.133 --> 00:08:57.540 Bien, yo puedo enseñarles a bailar la Macarena 00:08:57.541 --> 00:09:00.142 escribiendo un programa sencillo. Ahora mismo. 00:09:00.142 --> 00:09:02.030 Aquí esta mi Macarena: 00:09:02.656 --> 00:09:04.052 Mientras la música suena... 00:09:04.053 --> 00:09:06.759 significa que lo harán una y otra vez a un ritmo. 00:09:06.759 --> 00:09:10.949 Las computadoras trabajan a un ritmo como de 3 millardos de pulsos por segundo. 00:09:10.949 --> 00:09:14.440 Eso es ritmo. Entonces, haremos esto varias veces. 00:09:14.440 --> 00:09:17.641 Y tenemos este grupo de instrucciones que vamos a seguir, ¿sí? 00:09:17.641 --> 00:09:21.330 Mano izquierda adelante, palma arriba. Mano derecha adelante, palma arriba. 00:09:21.330 --> 00:09:23.802 Voltear mano izquierda, voltear la derecha. 00:09:23.802 --> 00:09:28.018 Mano izquierda al hombro derecho. 00:09:28.018 --> 00:09:30.902 Mano derecha al hombro izquierdo, etcétera, etc. 00:09:30.902 --> 00:09:37.280 Ahora, este programita en particular tiene un error; de hecho, varios. 00:09:37.280 --> 00:09:41.754 Quiero que traten de encontrarlos. 00:09:48.100 --> 00:09:52.389 Bueno, aquí están los errores. 00:09:52.389 --> 00:09:54.975 El error es: 00:09:56.458 --> 00:09:58.908 Jamón derecho a la nuca, 00:09:58.908 --> 00:10:02.852 y Mano izquierda a golpe derecho, en lugar de cadera. 00:10:02.852 --> 00:10:08.061 Si están en un bar, toman un jamón, y golpean a alguien en la nuca, 00:10:08.061 --> 00:10:11.232 no es agradable, aunque lo hagan bailando la canción. 00:10:11.232 --> 00:10:13.208 Estos se llaman errores lógicos. 00:10:13.208 --> 00:10:19.800 Un humano que lea esto dirá: "Creo que aquí quisieron decir mano". 00:10:19.800 --> 00:10:22.556 Pero una computadora es mucho más literal que la gente. 00:10:22.556 --> 00:10:26.171 Haremos un par de ejercicios donde veremos que la gente puede corregir 00:10:26.171 --> 00:10:30.382 pequeños errores como este, pero las computadoras no pueden. 00:10:30.382 --> 00:10:32.778 Así que debemos corregir estos errores, 00:10:32.778 --> 00:10:36.149 y decir mano, en lugar de jamón, y cadera en lugar de golpe. 00:10:36.165 --> 00:10:38.567 Debemos ser explícitos, porque las computadoras 00:10:38.567 --> 00:10:41.754 hacen lo que les decimos, no lo que les queremos decir. 00:10:41.754 --> 00:10:43.958 Entonces, limpiemos eso. 00:10:43.958 --> 00:10:47.813 Aquí hay otro ejemplo. Veamos como sale. 00:10:47.813 --> 00:10:50.655 PROGRAMAS PARA PYTHON 00:10:53.489 --> 00:10:56.787 Se supone que deben contar el número de veces 00:10:56.787 --> 00:11:00.777 que la palabra «the» aparece en esta oración. 00:11:01.104 --> 00:11:05.274 Cuenten... la palabra "the". ¿Cuántas veces? 00:11:15.559 --> 00:11:18.855 Bien... es su turno. 00:11:25.443 --> 00:11:31.262 Bien, esto... no es algo para lo que los humanos seamos buenos. 00:11:31.262 --> 00:11:33.755 Moví la oración, toqué una melodía, los confundí, 00:11:33.755 --> 00:11:39.082 les puse una tarjeta con un payaso en la esquina superior derecha, etc. 00:11:39.082 --> 00:11:44.001 Pues resulta que las computadoras, una vez que les decimos qué hacer, 00:11:44.011 --> 00:11:46.397 son muy buenas para concentrarse. 00:11:46.397 --> 00:11:51.340 Fácilmente pueden ver 30 palabras y encontrar la más común, 00:11:51.340 --> 00:11:52.765 o 3 millones de palabras 00:11:52.766 --> 00:11:54.258 y encontrar la más común, 00:11:54.263 --> 00:11:55.715 sin nunca cometer un error. 00:11:55.716 --> 00:11:58.162 Pero antes debemos darle un grupo de instrucciones. 00:11:58.661 --> 00:12:01.415 Entonces, no quiero que aprendan esto ahora mismo. 00:12:01.416 --> 00:12:03.568 Pero esto es un programa en Python. 00:12:03.576 --> 00:12:07.457 Digamos que quiero que cuenten palabras en archivos. 00:12:08.678 --> 00:12:11.368 Les digo: ¡Oye! Sé programar en Python. 00:12:11.376 --> 00:12:13.602 Te enviaré un correo con un programa. 00:12:13.610 --> 00:12:15.078 Sólo mételo en Python 00:12:15.079 --> 00:12:16.572 y te contará las palabras. 00:12:17.132 --> 00:12:18.661 Tienes un millón de palabras, 00:12:18.662 --> 00:12:20.208 un millón de líneas en un archivo 00:12:20.209 --> 00:12:21.875 y buscas la palabra más común. 00:12:22.550 --> 00:12:24.504 Así que ahí va. 00:12:24.505 --> 00:12:26.949 Te enviaré este archivo llamado «words.py» 00:12:26.950 --> 00:12:28.290 que yo hice, 00:12:28.291 --> 00:12:29.720 como regalo para ti. 00:12:29.721 --> 00:12:31.343 Y esto es lo que escribí. 00:12:31.344 --> 00:12:33.874 Les daré una especie de resumen de lo que hace: 00:12:33.875 --> 00:12:36.902 Primero abrirá un archivo y lo leerá. 00:12:37.005 --> 00:12:41.155 Luego dividirá las líneas y archivos en palabras 00:12:41.165 --> 00:12:42.569 basándose en los espacios. 00:12:42.738 --> 00:12:46.535 Luego acumulará cifras: 00:12:46.603 --> 00:12:48.820 esta palabra es 1, esta palabra es 1, 00:12:48.821 --> 00:12:50.918 Oh, está repetida, la cambiaré a 2. 00:12:50.919 --> 00:12:53.602 Esto es un bucle que corre una y otra vez, 00:12:53.603 --> 00:12:54.787 una para cada palabra. 00:12:55.315 --> 00:12:58.292 Luego lo que haremos es escribir otro bucle 00:12:58.293 --> 00:13:00.957 que va a descubrir cuál es la palabra más común, 00:13:00.960 --> 00:13:03.277 viendo todos esos pequeños histogramas 00:13:03.278 --> 00:13:04.476 que acabamos de construir 00:13:04.481 --> 00:13:06.881 e imprimirá el resultado al final. 00:13:07.767 --> 00:13:11.211 Y es lo que puede hacer python words.py 00:13:11.212 --> 00:13:12.768 Leyó clown.txt 00:13:12.769 --> 00:13:15.640 y dice que la palabra «the» ocurre siete veces. 00:13:15.641 --> 00:13:20.507 Puede ir y descubrir que otro archivo tiene la palabra «dos» 00:13:20.516 --> 00:13:21.682 y aparece 16 veces. 00:13:21.683 --> 00:13:23.322 Y es así de rápido. 00:13:23.323 --> 00:13:25.810 Y sí, tienen que aprender el lenguaje 00:13:25.811 --> 00:13:27.378 y decirle qué hacer, 00:13:27.386 --> 00:13:28.779 pero en cuanto se lo digan, 00:13:28.795 --> 00:13:31.068 lo hará con un millón o un millardo de palabras, 00:13:31.081 --> 00:13:32.064 sin esfuerzo. 00:13:32.070 --> 00:13:33.553 Ustedes no tendrán que hacer... 00:13:33.554 --> 00:13:34.633 trabajo menor. 00:13:34.634 --> 00:13:38.784 Una vez que aprendan a decirle a la computadora cómo hacerlo. 00:13:41.387 --> 00:13:42.382 Bien... 00:13:43.252 --> 00:13:46.056 Siempre se empiezan las clases de programación con... 00:13:46.057 --> 00:13:47.398 arquitectura de hardware. 00:13:47.890 --> 00:13:49.326 No creo que sea esencial, 00:13:49.327 --> 00:13:51.382 así que no se emocionen mucho con el tema. 00:13:51.383 --> 00:13:53.389 Es bueno como terminología, 00:13:53.390 --> 00:13:54.599 para conocer palabras, 00:13:54.600 --> 00:13:56.738 y si alguien dice CPU no entren en pánico. 00:13:56.770 --> 00:13:59.334 O memoria, o RAM o disco duro... 00:13:59.335 --> 00:14:00.454 y no se asusten. 00:14:00.462 --> 00:14:02.476 No quiero hacerlos expertos en hardware. 00:14:02.477 --> 00:14:04.451 Sólo que aprendan unas cuantas palabras 00:14:04.452 --> 00:14:06.483 para que puedan hablar de lo de dentro. 00:14:06.484 --> 00:14:09.340 Porque, en cierto sentido vamos a escribir programas 00:14:09.341 --> 00:14:12.364 para hacer cosas con datos, instrucciones, etc. 00:14:13.312 --> 00:14:14.193 Entonces... 00:14:15.455 --> 00:14:18.738 tengo aquí algo que compré hace unas semanas, 00:14:18.739 --> 00:14:21.028 y me encanta: es la Raspberry Pi. 00:14:21.336 --> 00:14:24.330 Es una computadora con una sola placa. 00:14:24.451 --> 00:14:28.450 Tiene almacenamiento en una tarjeta SD. 00:14:28.844 --> 00:14:29.625 Justo ahí. 00:14:29.641 --> 00:14:31.616 Es el sistema operativo y los datos. 00:14:31.617 --> 00:14:37.028 Y tiene tanto el microprocesador como la memoria aquí dentro también. 00:14:37.099 --> 00:14:40.193 Y se conecta por USB y HDMI a varias cosas. 00:14:40.194 --> 00:14:42.529 Y si quieren, en este curso quizá puedan hacer 00:14:42.530 --> 00:14:43.574 toda la tarea... 00:14:43.926 --> 00:14:46.810 en una Raspberry Pi, si lo desean. 00:14:47.389 --> 00:14:49.594 Entonces así se ve el hardware. 00:14:49.607 --> 00:14:51.110 Es el interior de algo. 00:14:51.118 --> 00:14:53.906 Normalmente viene en una carcasa para que no se vea. 00:14:53.907 --> 00:14:56.570 Y así se ve: con ese color verde, 00:14:56.571 --> 00:14:58.999 plateado y dorado. 00:14:59.247 --> 00:15:00.953 Creo que son hermosos. 00:15:02.437 --> 00:15:03.319 Muy bonitos. 00:15:03.857 --> 00:15:06.143 Es mucha ingeniería la que llevan estas cosas. 00:15:07.833 --> 00:15:11.004 Entonces podemos hacer un diagrama negro 00:15:11.013 --> 00:15:12.299 de lo que sucede aquí. 00:15:12.764 --> 00:15:15.280 Y hay alguna terminología: 00:15:15.478 --> 00:15:17.510 el cerebro de todo... 00:15:18.302 --> 00:15:21.570 Bueno, dibujamos este diagrama en parte porque— 00:15:21.571 --> 00:15:25.362 y esto es de... ¡Ah!, se desprendió una pieza. 00:15:27.322 --> 00:15:28.822 Ya sé que fue. 00:15:28.836 --> 00:15:30.757 Está bien, no sirve de todos modos. 00:15:31.112 --> 00:15:34.350 Si tienen una computadora de escritorio, así se ve por dentro. 00:15:34.359 --> 00:15:36.071 Esto es la tarjeta madre. 00:15:36.294 --> 00:15:39.854 Y es lo que conecta todas las piezas. 00:15:40.081 --> 00:15:43.772 Tiene muchos alambres. Cada pequeña línea es uno. 00:15:43.883 --> 00:15:45.772 Está cubierta con cierta laca. 00:15:45.859 --> 00:15:50.497 Y hay cosas que la penetran y conectan los diversos chips. 00:15:50.671 --> 00:15:54.456 Y... todo esto está representado por esta imagen. 00:15:54.464 --> 00:15:57.178 Pero en realidad conecta muchos componentes. 00:15:58.186 --> 00:16:01.104 La unidad de procesamiento central, de la que hablé antes, 00:16:01.618 --> 00:16:03.689 la puse abajo, 00:16:03.690 --> 00:16:06.643 es lo más cercano que la computadora tiene a un cerebro, 00:16:06.644 --> 00:16:07.849 muy limitado. 00:16:07.862 --> 00:16:11.059 Es más bien una calculadora programable y súper rápida. 00:16:11.317 --> 00:16:14.823 La hacemos flexible por nuestra creatividad al escribir programas. 00:16:14.833 --> 00:16:16.436 La hacemos parecer inteligente. 00:16:16.448 --> 00:16:19.623 La gente es quien aporta sus conocimientos 00:16:19.910 --> 00:16:20.830 y los pone dentro. 00:16:20.911 --> 00:16:22.778 Esto no tiene inteligencia propia. 00:16:22.779 --> 00:16:24.516 No hay por qué temerle. 00:16:24.517 --> 00:16:25.942 No es tan inteligente. 00:16:26.811 --> 00:16:29.142 Entonces... esto es lo que se programa 00:16:29.143 --> 00:16:31.026 para preguntar ¿qué sigue? 00:16:31.296 --> 00:16:33.697 Y debemos tener un grupo de instrucciones 00:16:33.713 --> 00:16:35.578 que la alimenten muy rápido, 00:16:35.594 --> 00:16:37.332 un millardo de veces por segundo. 00:16:37.333 --> 00:16:40.319 Y eso es esto: la memoria de acceso aleatorio. 00:16:40.438 --> 00:16:43.565 Tiene chips de memoria que van todos conectados 00:16:43.566 --> 00:16:44.712 a la tarjeta madre. 00:16:44.832 --> 00:16:47.323 Entonces tenemos... la memoria principal 00:16:47.324 --> 00:16:49.835 y la unidad de procesamiento central. 00:16:49.927 --> 00:16:53.549 Y de aquí provienen nuestras instrucciones a alta velocidad, 00:16:53.550 --> 00:16:55.399 aquí se almacenan los datos rápidos, 00:16:55.406 --> 00:16:57.359 y esto es lo que pregunta: ¿qué sigue? 00:16:57.360 --> 00:17:00.134 y lee las instrucciones de acá. 00:17:00.150 --> 00:17:03.743 Ahora no están conectados, pero van conectados. 00:17:03.744 --> 00:17:07.223 No se preocupen por este hardware; está viejo y descompuesto. 00:17:07.224 --> 00:17:08.319 No le pasa nada. 00:17:08.796 --> 00:17:12.615 Lo que sigue son los dispositivos de entrada/salida. 00:17:12.616 --> 00:17:14.558 Así que regreso a mi Raspberry Pi. 00:17:14.559 --> 00:17:16.842 La Raspberry Pi tiene USB 00:17:16.913 --> 00:17:18.147 donde se puede conectar 00:17:18.151 --> 00:17:20.180 un ratón o un teclado. 00:17:20.188 --> 00:17:24.137 Tiene HDMI para conectar un monitor también. 00:17:24.138 --> 00:17:25.578 Y un conector a ethernet. 00:17:25.579 --> 00:17:27.346 Todos estos son ejemplos 00:17:27.347 --> 00:17:30.587 de dispositivos de entrada/salida. 00:17:31.794 --> 00:17:34.910 Y lo último en pantalla 00:17:34.911 --> 00:17:36.447 es la memoria secundaria. 00:17:36.780 --> 00:17:41.724 Entonces, en la Raspberry Pi la CPU, unidad de procesamiento central, 00:17:41.725 --> 00:17:44.495 y la RAM están en este chip del centro. 00:17:44.496 --> 00:17:46.689 Se llama SOC o «sistema en un chip» 00:17:46.690 --> 00:17:48.917 donde hay más piezas aún. 00:17:48.918 --> 00:17:50.299 Y en cierto sentido... 00:17:51.165 --> 00:17:52.434 concentraron... 00:17:54.172 --> 00:17:55.234 esto... 00:17:55.235 --> 00:17:56.392 y esto... 00:17:56.393 --> 00:17:57.489 y mucho de esto... 00:17:57.490 --> 00:18:00.102 en la Raspberry Pi... 00:18:00.795 --> 00:18:02.065 en un solo chip. 00:18:02.066 --> 00:18:05.893 Pero la arquitectura sigue igual: una CPU... 00:18:05.894 --> 00:18:09.928 memoria, tarjetas de gráficos, etcétera. 00:18:09.962 --> 00:18:10.740 Entonces... 00:18:10.941 --> 00:18:14.738 Esto tiene dispositivos de entrada/salida también, 00:18:14.739 --> 00:18:18.058 como USB, teclado y monitor, etc. 00:18:18.059 --> 00:18:20.442 Así que son muy similares, sólo que este es nuevo 00:18:20.443 --> 00:18:21.602 y este es viejo. 00:18:21.689 --> 00:18:23.195 Todo se va reduciendo... 00:18:23.348 --> 00:18:24.657 entre más nuevo sea. 00:18:25.457 --> 00:18:26.268 Muy bien... 00:18:29.669 --> 00:18:32.855 Lo último que veremos... es la memoria secundaria. 00:18:32.926 --> 00:18:33.531 ¡Oh! 00:18:35.267 --> 00:18:36.886 Cuando se corta la corriente 00:18:36.887 --> 00:18:38.751 esto se borra. 00:18:38.752 --> 00:18:40.459 Los datos de esta RAM 00:18:40.460 --> 00:18:43.154 desaparecen. Está diseñada para ser muy rápida, 00:18:43.155 --> 00:18:44.300 pero no permanente. 00:18:44.301 --> 00:18:46.217 Así que necesitamos un lugar permanente, 00:18:46.218 --> 00:18:47.675 eso es la memoria secundaria. 00:18:47.676 --> 00:18:50.180 Para eso es la memoria secundaria. 00:18:50.181 --> 00:18:51.807 Es permanente. 00:18:52.485 --> 00:18:54.028 Esta es rápida. 00:18:55.626 --> 00:18:57.644 Zas, zas, zas, es muy rápida. 00:18:57.739 --> 00:19:00.938 Pero esta es permanente, y más lenta. 00:19:01.239 --> 00:19:01.882 ¿Sí? 00:19:01.883 --> 00:19:05.169 Entonces hay dos tipos de memoria secundaria. 00:19:05.344 --> 00:19:07.602 Oh, Dios, están en el suelo. 00:19:07.837 --> 00:19:09.488 Dos tipos de memoria secundaria: 00:19:09.716 --> 00:19:11.295 empezaré con la Raspberry Pi. 00:19:11.464 --> 00:19:13.577 La memoria secundaria de la Raspberry Pi 00:19:14.326 --> 00:19:15.690 es esta tarjeta SD. 00:19:15.874 --> 00:19:17.166 Es como un disco duro. 00:19:17.302 --> 00:19:18.968 Es permanente, 00:19:19.103 --> 00:19:21.610 no necesita energía para conservar los datos. 00:19:21.611 --> 00:19:23.007 Los datos son permanentes. 00:19:23.008 --> 00:19:24.871 Así que en el futuro veremos... 00:19:24.872 --> 00:19:29.134 más de estas memorias flash o SD. 00:19:29.141 --> 00:19:31.671 Entonces la Raspberry Pi apunta al futuro. 00:19:31.972 --> 00:19:34.539 Hay una unidad de disco aquí que no es un disco, 00:19:34.540 --> 00:19:36.190 también es una memoria «flash». 00:19:36.191 --> 00:19:38.533 Pero en los viejos tiempos... 00:19:38.534 --> 00:19:41.770 en los buenos tiempos, cuando yo era niño, 00:19:41.927 --> 00:19:44.040 nuestra memoria secundaria 00:19:44.135 --> 00:19:47.193 era... una unidad de disco 00:19:47.194 --> 00:19:52.519 que tenía placas, giraba y hacía un ruido muy «satisfactorio». 00:19:52.630 --> 00:19:54.599 Esto entraba y salía para leer datos. 00:19:54.600 --> 00:19:56.671 Les mostraré un video en unos minutos. 00:19:57.168 --> 00:19:59.377 Así que esto registraba los datos 00:19:59.378 --> 00:20:00.463 en una placa magnética 00:20:00.464 --> 00:20:03.217 que al cortar la energía seguía magnetizada. 00:20:03.353 --> 00:20:05.398 Esto se movía al lugar preciso, 00:20:05.399 --> 00:20:07.241 girando, y leía los datos. 00:20:07.251 --> 00:20:11.177 Y repito: este está totalmente arruinado. 00:20:11.722 --> 00:20:13.642 Entonces, ahí está. 00:20:14.256 --> 00:20:15.951 Unidad de Procesamiento Central, 00:20:16.780 --> 00:20:18.315 el cerebro de la operación, 00:20:18.685 --> 00:20:22.450 memoria principal, rápida, pero se borra al cortar la energía. 00:20:22.817 --> 00:20:25.075 Dispositivos de entrada/salida: teclados, etc. 00:20:25.076 --> 00:20:27.306 Y almacenamiento que mantiene 00:20:27.308 --> 00:20:30.290 sus datos después de desconectar. 00:20:30.658 --> 00:20:34.194 Bueno, ya dije todo esto... 00:20:36.048 --> 00:20:37.823 Entonces la pregunta es... 00:20:37.965 --> 00:20:40.280 ¿Cuál es el papel de ustedes? 00:20:40.287 --> 00:20:42.796 ¿Dónde viven los programas? ¿Dónde los escribimos? 00:20:42.869 --> 00:20:46.962 Y la respuesta es: viven, por decirlo así, en la memoria. 00:20:47.214 --> 00:20:49.190 Lo que se hace es poner... 00:20:49.191 --> 00:20:51.205 los programas en la memoria, 00:20:51.308 --> 00:20:55.072 luego la CPU los saca de la memoria. 00:20:55.243 --> 00:20:57.060 Entonces debemos escribir programas... 00:20:57.070 --> 00:20:58.528 y ponerlos en la memoria. 00:20:58.529 --> 00:21:01.701 Cuando los corremos estamos cargándolos en la memoria... 00:21:01.702 --> 00:21:04.356 para que sean alimentados rápidamente a la CPU. 00:21:04.506 --> 00:21:07.477 Y las computadoras en realidad no trabajan en Python, 00:21:07.478 --> 00:21:09.486 como la instrucción if x<3:print, 00:21:09.534 --> 00:21:11.339 como tendemos a escribir, 00:21:11.340 --> 00:21:13.653 sino que trabajan con... 00:21:13.654 --> 00:21:15.376 algo llamado «lenguaje de máquina» 00:21:15.377 --> 00:21:17.472 que es una serie de ceros y unos 00:21:17.473 --> 00:21:19.518 traducidos directamente 00:21:19.519 --> 00:21:21.443 en lo que entra por estas patas: 00:21:21.453 --> 00:21:23.552 voltajes que suben y bajan. 00:21:23.854 --> 00:21:25.647 Ese es el lenguaje de máquina. 00:21:25.784 --> 00:21:28.450 El código fuente, como el de Python, 00:21:29.408 --> 00:21:31.709 se escribe en una forma más conveniente. 00:21:31.710 --> 00:21:33.209 Por lo menos más conveniente. 00:21:33.224 --> 00:21:35.486 El lenguaje de máquina es lo más conveniente... 00:21:35.494 --> 00:21:36.643 para el hardware. 00:21:36.644 --> 00:21:40.102 Así que tenemos que traducir código fuente a lenguaje de máquina. 00:21:40.113 --> 00:21:42.866 Y eso es lo que Python hace por nosotros. 00:21:42.867 --> 00:21:44.183 Escribimos en Python, 00:21:44.184 --> 00:21:46.907 y Python traduce a lenguaje de máquina. 00:21:46.985 --> 00:21:50.429 Entonces, tengo un par de videos que dan una idea... 00:21:51.120 --> 00:21:52.591 de cómo funciona todo esto. 00:21:52.592 --> 00:21:55.266 Empezaremos con el de la CPU, 00:21:55.443 --> 00:22:01.068 que les mostrará la intensidad de tanta electricidad... 00:22:01.090 --> 00:22:03.455 lo que se calienta dentro de sus computadoras 00:22:03.460 --> 00:22:04.887 es este pequeñito. 00:22:04.903 --> 00:22:06.316 Y en este video veremos 00:22:06.317 --> 00:22:07.887 cuánto puede calentarse. 00:22:08.147 --> 00:22:10.623 (CPU completamente caliente) 00:22:14.963 --> 00:22:16.891 Bueno, bienvenidos de nuevo. 00:22:17.249 --> 00:22:18.796 En el siguiente video... 00:22:18.816 --> 00:22:21.794 Ya les mostré un disco duro inservible 00:22:21.804 --> 00:22:23.822 y ahora les mostraré un video breve 00:22:23.839 --> 00:22:25.917 sobre el funcionamiento los discos. 00:22:25.918 --> 00:22:29.125 Alguien le quitó la tapa a uno y le aplicó energía. 00:22:29.139 --> 00:22:31.668 No lo vayan a hacer, si tienen un disco duro. 00:22:31.708 --> 00:22:34.128 He leído, y algunas personas dicen, 00:22:34.129 --> 00:22:39.268 que se puede hacer por unos minutos luego la unidad se destruye 00:22:39.269 --> 00:22:41.667 si la encienden sin la tapa puesta. 00:22:41.668 --> 00:22:43.021 Veamos el video. 00:22:43.383 --> 00:22:46.256 (Disco duro en acción) 00:22:53.091 --> 00:22:59.154 Bueno, ahora hablemos un poco acerca de Python. 00:23:00.387 --> 00:23:02.759 Python es un lenguaje de programación. 00:23:02.769 --> 00:23:05.903 Python es una manera de comunicarnos. 00:23:06.605 --> 00:23:09.236 Y Python no fue inventado por computadoras. 00:23:09.355 --> 00:23:13.505 Los humanos inventamos Python como una forma de encapsular 00:23:13.506 --> 00:23:14.760 nuestras instrucciones. 00:23:14.761 --> 00:23:16.703 Hay muchos lenguajes diferentes: 00:23:16.704 --> 00:23:18.419 Python, Java script, 00:23:18.767 --> 00:23:20.812 C++, toneladas de ellos. 00:23:21.077 --> 00:23:24.029 Python es sólo uno que yo enseño en esta clase. 00:23:25.924 --> 00:23:28.625 Empezaré con una cita de Harry Potter: 00:23:28.626 --> 00:23:30.852 Parsel es el lenguaje de las serpientes 00:23:30.864 --> 00:23:32.439 y quienes conversan con ellas. 00:23:33.591 --> 00:23:37.199 A quien puede hablar parsel se le conoce como parsel-hablante. 00:23:37.200 --> 00:23:40.066 Es una habilidad muy rara, y puede ser hereditaria. 00:23:40.312 --> 00:23:44.301 Casi todos los hablantes de parsel descienden de Salazar Slytherin. 00:23:44.555 --> 00:23:46.286 Esa es la cita de Harry Potter. 00:23:46.911 --> 00:23:50.543 Python es el lenguaje del intérprete de Python 00:23:50.544 --> 00:23:52.250 y quienes pueden conversar con él. 00:23:52.552 --> 00:23:55.930 Vamos a conversar con el interior de la computadora muy pronto. 00:23:56.147 --> 00:23:59.555 A quien puede hablar Python se le conoce como pythonista. 00:23:59.910 --> 00:24:02.663 Es una habilidad muy rara y puede ser hereditaria. 00:24:03.370 --> 00:24:05.081 También puede no ser hereditaria. 00:24:05.089 --> 00:24:08.449 Casi todos los pythonistas usan software diseñado originalmente 00:24:08.450 --> 00:24:10.453 por Guido van Rossum. 00:24:10.470 --> 00:24:12.744 Guido van Rossum, este amigo de aquí... 00:24:13.087 --> 00:24:14.901 Hey, Guido, ¿qué hay? 00:24:15.107 --> 00:24:16.506 Pongámosle un bigote. 00:24:16.514 --> 00:24:17.685 Hey, Guido. 00:24:17.754 --> 00:24:19.540 Lo siento. Debería ser amable con él. 00:24:19.656 --> 00:24:23.100 Es el inventor de Python. Python tiene más de 20 años. 00:24:23.401 --> 00:24:27.004 Él lo inventó como un lenguaje sencillo, 00:24:27.005 --> 00:24:28.649 pero es igualmente poderoso. 00:24:28.659 --> 00:24:32.683 Por eso es un gran lenguaje para iniciar su aprendizaje. 00:24:32.684 --> 00:24:36.025 Es un lenguaje poderoso, pero diseñado para ser fácil de usar. 00:24:36.610 --> 00:24:42.506 ¿Puede alguien adivinar... por qué se llama Python? 00:24:54.089 --> 00:24:55.484 Bueno, veamos. 00:24:56.829 --> 00:24:58.805 ♪(Música de circo)♪ 00:24:59.385 --> 00:25:04.243 Python tomó su nombre de un famoso programa de comedia inglés 00:25:04.458 --> 00:25:07.784 de los sesenta o setenta, creo... 00:25:08.148 --> 00:25:09.322 llamado Monty Python, 00:25:09.323 --> 00:25:11.010 El circo volador de Monty Python. 00:25:11.162 --> 00:25:15.910 Creo que trató de capturar el aspecto lúdico, 00:25:15.911 --> 00:25:19.531 bobo y divertido de Python. 00:25:19.815 --> 00:25:21.371 Y así es. 00:25:21.905 --> 00:25:23.384 Basta de eso, ¿ya acabamos? 00:25:23.385 --> 00:25:26.067 Sí, la música ya terminó, gracias a Dios. 00:25:26.308 --> 00:25:29.692 Entonces, repito: este es un lenguaje 00:25:29.693 --> 00:25:31.736 y este Guido lo inventó para nosotros. 00:25:31.737 --> 00:25:33.789 Él tomó decisiones: 00:25:33.790 --> 00:25:35.924 Pongamos un punto y coma aquí, 00:25:35.962 --> 00:25:37.837 y aumentemos la sangría aquí. 00:25:37.838 --> 00:25:39.726 Así que tomó decisiones. 00:25:39.841 --> 00:25:44.783 Y a la gente le gustan más unos lenguajes que otros. 00:25:44.784 --> 00:25:46.391 Es como elegir pinturas. 00:25:46.886 --> 00:25:49.866 Y me gusta comparar esto con... 00:25:50.045 --> 00:25:52.158 el aprendizaje de un idioma para hablar, 00:25:52.159 --> 00:25:54.461 con gente, humano. 00:25:54.572 --> 00:25:58.494 Cuando somos bebés no sabemos hablar 00:25:58.495 --> 00:25:59.913 y empezamos con un balbuceo: 00:25:59.914 --> 00:26:01.334 bla, bla, bla, bla... 00:26:01.335 --> 00:26:03.854 Quizá lo primero que hacemos sea llorar. 00:26:05.841 --> 00:26:07.972 Es como estar en un planeta extraño, 00:26:07.973 --> 00:26:09.319 y tener que comunicarnos. 00:26:09.696 --> 00:26:12.937 Debemos aprender su lenguaje, y no es de un día para otro. 00:26:12.938 --> 00:26:17.199 No estudias toda la noche y ya. No se puede. 00:26:17.532 --> 00:26:20.365 Aunque puede ser una buena manera de enseñar programación. 00:26:20.366 --> 00:26:23.004 Quizá deba usar algunas de esas ideas. 00:26:25.032 --> 00:26:28.668 Entonces... la diferencia entre un idioma humano 00:26:28.679 --> 00:26:31.259 y un lenguaje de programación 00:26:31.260 --> 00:26:35.020 es que... un idioma humano es para hablar con humanos 00:26:35.021 --> 00:26:36.613 que nos pueden a corregir. 00:26:36.614 --> 00:26:41.007 Así que... Si digo mal una palabra como... 00:26:41.220 --> 00:26:43.835 mamajaggghhh... 00:26:43.836 --> 00:26:45.517 Eso sonó muy tonto. 00:26:45.518 --> 00:26:48.283 Alguien dirá: ¡Ah, ya sé qué dijo! 00:26:48.580 --> 00:26:51.191 Pero Python y las computadoras... 00:26:51.557 --> 00:26:54.166 en realidad no escuchan. Son un poco tontas. 00:26:54.191 --> 00:26:57.070 No pueden corregir nuestros errores... 00:26:57.183 --> 00:27:00.658 porque no nos entienden. Son realmente tontas. 00:27:01.068 --> 00:27:02.340 Son muy literales. 00:27:03.253 --> 00:27:05.993 Así que... es bastante común, 00:27:06.339 --> 00:27:09.087 cuando uno empieza, 00:27:09.866 --> 00:27:11.016 enojarse 00:27:11.585 --> 00:27:14.373 porque decimos algo que nos parece simpático 00:27:14.673 --> 00:27:16.879 y nos contesta: «Error de sintaxis». 00:27:17.478 --> 00:27:21.431 Decimos: «Voy a intentar esto», y contesta: «Error de sintaxis». 00:27:21.486 --> 00:27:25.129 A mí me pasaba cuando empecé a programar, 00:27:25.130 --> 00:27:27.809 Le decía: «Tengo este programa. ¿Te gusta?» 00:27:27.810 --> 00:27:29.190 Y decía: Error de sintaxis. 00:27:30.083 --> 00:27:35.460 Podrían cambiar los mensajes por otros más amables, quizá, 00:27:35.663 --> 00:27:38.579 pero el error de sintaxis no quiere decir: 00:27:38.580 --> 00:27:39.679 eres un fracaso. 00:27:39.680 --> 00:27:41.798 En realidad significa: 00:27:42.132 --> 00:27:46.532 No sé qué estás diciendo. Estoy confundido. 00:27:46.549 --> 00:27:48.144 Sólo sé unas cuantas cosas... 00:27:48.247 --> 00:27:52.186 y... lo que acabas de decir no es algo que pueda entender. 00:27:52.416 --> 00:27:56.540 Así que en lugar de pensar que Python es algún tipo de 00:27:56.732 --> 00:27:59.333 monstruo... malvado y demoníaco 00:27:59.334 --> 00:28:02.084 que los odia y no deja de decir «Error de sintaxis», 00:28:02.584 --> 00:28:04.584 imagínenlo más como un... 00:28:04.585 --> 00:28:06.964 perro... ¿sí? 00:28:06.973 --> 00:28:10.665 A un perro no le pueden decir: 00:28:10.832 --> 00:28:12.839 ¡Qué bonito atardecer! 00:28:12.840 --> 00:28:14.099 ¿Verdad? 00:28:14.100 --> 00:28:16.414 Porque los perros no entienden eso. 00:28:16.430 --> 00:28:18.850 Los perros entienden algunas cosas 00:28:18.851 --> 00:28:21.653 como comida, baño, paseo, 00:28:21.741 --> 00:28:24.953 pero no entienden las obras de Shakespeare. 00:28:25.726 --> 00:28:27.250 Así que al hablarle a un perro... 00:28:27.251 --> 00:28:28.431 deben tener cuidado 00:28:28.439 --> 00:28:31.963 de usar el vocabulario que el perro conoce. 00:28:32.210 --> 00:28:36.024 Y esa es la clave... cuando empiecen a aprender. 00:28:36.804 --> 00:28:39.505 Python sólo entiende cierto vocabulario. 00:28:39.519 --> 00:28:42.987 Resulta que es más fácil enseñarles a ustedes Python, 00:28:43.276 --> 00:28:46.399 que enseñar a Python a escuchar lo que ustedes le quieran decir. 00:28:47.144 --> 00:28:49.733 Cosas como Google hacen que parezca inteligente. 00:28:50.038 --> 00:28:52.431 Ni hay que escribir nada en Google, ¿verdad? 00:28:52.942 --> 00:28:55.727 Sí... con muchos millardos de dólares, 00:28:55.735 --> 00:28:57.279 al menos en cosas sencillas, 00:28:57.280 --> 00:28:59.577 Google parece saber de qué le hablan. 00:29:00.892 --> 00:29:02.297 En términos de programación, 00:29:02.298 --> 00:29:04.361 es mucho más fácil que ustedes descifren 00:29:04.375 --> 00:29:06.398 la mejor forma de decir algo, 00:29:06.415 --> 00:29:09.568 que gastar millones para que Python 00:29:09.569 --> 00:29:12.507 descifre lo qué ustedes quieren decir en sus programas. 00:29:12.907 --> 00:29:14.057 Bueno... 00:29:14.643 --> 00:29:16.751 Empecemos a hablarle a Python. 00:29:17.566 --> 00:29:19.038 Le hablamos a Python. 00:29:19.385 --> 00:29:22.560 Si instalaron bien Python, 00:29:22.568 --> 00:29:26.867 ya sea en una Mac, una Windows o en una Raspberry Pi, 00:29:27.006 --> 00:29:29.694 en algún punto se encontrarán en una terminal 00:29:29.840 --> 00:29:31.442 y escribirán Python 00:29:31.443 --> 00:29:33.982 para que Python corra en modo interactivo. 00:29:34.110 --> 00:29:37.964 Quizá tengan que escribir «C:\algo\python» en Windows, 00:29:37.966 --> 00:29:40.717 pero en algún punto estarán corriendo Python. 00:29:40.741 --> 00:29:42.709 Python mismo es un programa, 00:29:43.088 --> 00:29:47.383 un programa que les pide escribir en lenguaje Python. 00:29:47.587 --> 00:29:51.261 Y lo interesante es que verán un indicador que parece de la Chevron 00:29:51.262 --> 00:29:55.648 que... es como otra versión de ¿qué sigue? 00:29:55.649 --> 00:29:58.059 Les dije que este hardware está diseñado 00:29:58.060 --> 00:30:00.817 para esperar siempre la siguiente instrucción. 00:30:00.818 --> 00:30:03.910 Bueno, al arrancar Python 00:30:03.911 --> 00:30:05.936 éste no tiene idea de qué hacer. 00:30:05.942 --> 00:30:08.820 Espera que ustedes le digan qué hacer. 00:30:08.833 --> 00:30:09.638 Bien. 00:30:09.831 --> 00:30:12.541 Déjenme ver si puedo poner algo aquí. 00:30:13.456 --> 00:30:15.702 Bien... Ahí está. 00:30:16.257 --> 00:30:17.847 Y ahora voy a escribir... 00:30:19.372 --> 00:30:20.334 Lo voy a acercar. 00:30:20.335 --> 00:30:21.714 Voy a iniciar Python. 00:30:21.715 --> 00:30:24.381 El sistema operativo me pregunta ¿qué sigue? 00:30:24.382 --> 00:30:28.059 Y le contesto: «Ah, ahora quiero correr Python». 00:30:29.152 --> 00:30:30.525 Bien, aquí estamos, 00:30:30.526 --> 00:30:32.437 ante el intérprete de Python. 00:30:32.453 --> 00:30:34.706 Y nos pregunta: «¿Qué sigue?» 00:30:36.136 --> 00:30:42.924 Bien... es como si yo acabara de aterrizar en... un planeta... 00:30:42.925 --> 00:30:49.229 y dijera: «Llévame con tu líder». 00:30:51.146 --> 00:30:55.025 «Llévame con tu líder». Es lo que se dice al llegar a otro planeta 00:30:55.043 --> 00:30:57.250 y se encuentran con un robot. 00:30:57.504 --> 00:31:00.393 Y les dice: «Error de sintaxis». 00:31:01.285 --> 00:31:04.189 Recuerden que es un perro, y acaba de decir: «Arfff». 00:31:04.190 --> 00:31:06.005 Podrían decirle: «Llévame con tu líder» 00:31:06.007 --> 00:31:07.504 Guauu. ¿Sí? 00:31:10.195 --> 00:31:13.350 «¿Eres amistoso?» 00:31:16.593 --> 00:31:19.044 No sé si lo escribí bien. 00:31:19.699 --> 00:31:21.104 «Error de sintaxis» 00:31:25.057 --> 00:31:27.784 ¿Eres estúpido? 00:31:29.946 --> 00:31:31.110 «Error de sintaxis» 00:31:31.479 --> 00:31:32.579 Muy estúpido. 00:31:33.553 --> 00:31:36.376 ¡Odio las computadoras! 00:31:41.436 --> 00:31:42.789 «Error de sintaxis» 00:31:42.790 --> 00:31:45.462 Parece no tener sentido del humor. 00:31:45.463 --> 00:31:46.943 Intenten esto: Toc, toc. 00:31:49.046 --> 00:31:50.890 Toc, toc. 00:31:52.456 --> 00:31:54.821 No tiene sentido del humor. 00:31:55.497 --> 00:31:56.973 Ese es el problema. 00:31:57.251 --> 00:32:00.791 Sí nos quiere... No nos odia. 00:32:02.132 --> 00:32:04.565 Sólo quiere saber qué queremos que haga. 00:32:05.706 --> 00:32:06.954 Entonces... 00:32:07.450 --> 00:32:09.166 necesitamos saber el lenguaje Python. 00:32:09.167 --> 00:32:10.773 Por suerte sé un poquito. 00:32:11.258 --> 00:32:14.149 Así que voy a decir: «Oye, Python». 00:32:14.385 --> 00:32:15.917 «Escribiré algunos datos». 00:32:16.100 --> 00:32:18.760 Quiero crear una variable llamada «X», 00:32:18.765 --> 00:32:20.756 un lugar en tu memoria, ve a buscarlo. 00:32:20.771 --> 00:32:23.949 Busca un lugar vacío en tu memoria. 00:32:23.950 --> 00:32:28.227 Y quiero que pongas un cien ahí. 00:32:29.229 --> 00:32:30.243 ¡Hazlo! 00:32:30.244 --> 00:32:31.918 Ahora... ¡está feliz! 00:32:31.919 --> 00:32:33.377 Porque conozco el lenguaje. 00:32:34.170 --> 00:32:35.480 ¡Bonjour! 00:32:36.108 --> 00:32:37.444 Conocemos el lenguaje. 00:32:37.736 --> 00:32:39.777 Pero me dice: «Y ahora, ¿qué?» 00:32:39.778 --> 00:32:41.447 Debemos meter un programa. 00:32:42.566 --> 00:32:45.666 Bien, veamos... voy a decir: 00:32:45.667 --> 00:32:47.308 ¡Oye, Python! 00:32:47.753 --> 00:32:51.055 Haré una variable llamada «Y», otro espacio en tu memoria... 00:32:51.067 --> 00:32:55.783 llamada «Y», y ¿recuerdas la «X» que te di antes? Ve por ella, 00:32:55.784 --> 00:32:58.968 agrégale 50, y pon todo en «Y». 00:32:59.189 --> 00:33:02.321 Y ahora tengo algo en «X», y algo en «Y». 00:33:02.322 --> 00:33:05.418 Y... vamos a imprimir «Y». 00:33:07.729 --> 00:33:08.835 ¿Qué hay en «Y»? 00:33:08.841 --> 00:33:11.970 Ve lo que hay en «Y»... e imprímelo. 00:33:12.526 --> 00:33:13.688 Ciento cincuenta. 00:33:13.934 --> 00:33:14.908 Entonces... 00:33:15.583 --> 00:33:17.031 Son cosas sencillas. 00:33:17.032 --> 00:33:19.632 Y un programa es una serie de cosas sencillas 00:33:19.645 --> 00:33:22.514 El número de enunciados diferentes que pueden hacer... 00:33:22.515 --> 00:33:24.886 es relativamente pequeño. 00:33:24.887 --> 00:33:27.963 Entonces, le estamos hablando... a Python. 00:33:28.693 --> 00:33:31.685 Vamos a regresar las diapositivas. Ahí está. 00:33:31.686 --> 00:33:32.875 Así que... 00:33:34.816 --> 00:33:39.319 Le di una serie de órdenes, ustedes pueden hacer lo mismo, 00:33:39.320 --> 00:33:40.185 y... 00:33:40.201 --> 00:33:42.772 escriban «Exit» o «Quit», con paréntesis, 00:33:42.792 --> 00:33:44.225 para salirse cuando acaben. 00:33:44.233 --> 00:33:46.108 Eso finaliza la sesión interactiva. 00:33:46.109 --> 00:33:49.935 Esto es Python interactivo, que nos pregunta orden por orden... 00:33:49.938 --> 00:33:53.364 y luego interpreta cada orden al correr el programa... 00:33:53.365 --> 00:33:55.263 al terminar. Bien... 00:33:56.033 --> 00:33:58.285 Trabajarán en una ventana. 00:33:58.303 --> 00:34:00.184 Es diferente en Windows. 00:34:00.185 --> 00:34:02.726 Mis documentos de instalación en pythonlearn.com 00:34:02.757 --> 00:34:05.677 les dice todo lo que tienen que hacer. 00:34:05.678 --> 00:34:07.994 Así que estamos hablándole a Python. 00:34:08.581 --> 00:34:12.755 Bien... Aún tengo que enseñarles este lenguaje. 00:34:12.757 --> 00:34:14.049 ¿QUÉ DECIR? 00:34:14.050 --> 00:34:17.655 Bien... ¿qué tipo de cosas se dicen al entrar a Python? 00:34:17.656 --> 00:34:18.708 ELEMENTOS 00:34:18.710 --> 00:34:21.132 Como en cualquier... lenguaje... 00:34:21.132 --> 00:34:22.400 humano... 00:34:22.402 --> 00:34:25.443 Existe un vocabulario, de palabras básicas. 00:34:25.641 --> 00:34:28.632 Hay «variables» y «palabras reservadas» en Python. 00:34:28.634 --> 00:34:30.889 Y las combinamos en líneas... 00:34:30.914 --> 00:34:34.532 para formar oraciones, que por sí solas no cuentan una historia. 00:34:34.533 --> 00:34:37.731 Luego formamos la historia con ellas, pero... 00:34:37.732 --> 00:34:41.456 la historia está en lenguaje Python, no en inglés ni francés 00:34:41.458 --> 00:34:44.619 ni otro idioma humano, pero sigue siendo como... 00:34:44.620 --> 00:34:45.891 una secuencia de... 00:34:45.906 --> 00:34:48.803 partes pequeñas que forman partes más grandes que luego... 00:34:48.804 --> 00:34:50.420 forman todo un programa. 00:34:50.422 --> 00:34:54.001 Así que... aquí está, otra vez, el mismo programa. 00:34:54.318 --> 00:34:59.117 ¿Sí? El que cuenta la palabra más común de un archivo. 00:34:59.268 --> 00:35:02.695 Les había mencionado que al empezar abre el archivo, 00:35:02.696 --> 00:35:04.733 lee los datos del mismo, 00:35:05.834 --> 00:35:07.398 lo divide en palabras, 00:35:07.399 --> 00:35:10.754 las cuenta todas, encuentra la mayor, y luego la imprime. 00:35:11.048 --> 00:35:11.925 Entonces... 00:35:11.926 --> 00:35:14.076 «Name» es como una palabra, 00:35:14.077 --> 00:35:16.886 «Igual que» es otra, «Raw» es otra, 00:35:16.887 --> 00:35:18.250 Estas son palabras. 00:35:18.345 --> 00:35:20.853 Cada una de estas es como una oración. 00:35:21.544 --> 00:35:24.571 Hay bloques de cosas: son como párrafos. 00:35:24.572 --> 00:35:26.897 Este es uno, este es otro. 00:35:26.898 --> 00:35:29.004 Usaré un color diferente aquí. 00:35:29.005 --> 00:35:30.701 Este es como un párrafo. 00:35:30.702 --> 00:35:33.253 Y otro... y otro. 00:35:33.254 --> 00:35:36.063 Y al fin de cuentas, una vez que lo entiendan... 00:35:36.064 --> 00:35:38.158 Y lo harán antes de que esto termine, 00:35:38.159 --> 00:35:40.159 esto es como una historia: 00:35:40.567 --> 00:35:43.822 tiene coherencia, principio, parte media y final. 00:35:44.689 --> 00:35:45.459 Repito: 00:35:45.729 --> 00:35:47.649 Ignoren los detalles. Tenemos... 00:35:47.650 --> 00:35:49.451 muchos capítulos para cubrirlos. 00:35:49.452 --> 00:35:51.316 No se desanimen con este programa, 00:35:51.317 --> 00:35:54.420 sólo quiero que sepan que... lo entenderán. 00:35:54.421 --> 00:35:55.781 Iniciaremos por lo básico. 00:35:56.337 --> 00:35:59.810 Entonces... lo primero que deben aprender... 00:36:01.592 --> 00:36:03.747 en Python, es lo que no deben hacer. 00:36:03.748 --> 00:36:04.599 porque... 00:36:04.600 --> 00:36:08.455 estas palabras, significan algo muy especial en Python. 00:36:09.229 --> 00:36:10.689 Es como decir.... 00:36:10.690 --> 00:36:13.938 «No te daré comida hoy» a un perro, 00:36:13.939 --> 00:36:16.360 que oye la palabra «comida», y nada más. 00:36:16.361 --> 00:36:18.825 Por lo que «comida» es palabra reservada para perros 00:36:18.826 --> 00:36:21.020 «Paseo», «baño», son otras. 00:36:21.631 --> 00:36:25.965 Entonces, no pueden usarlas, excepto para lo que significan en Python 00:36:26.332 --> 00:36:29.101 «Print», le dice que imprima cosas... 00:36:29.102 --> 00:36:32.048 «Return» se usa en funciones... 00:36:32.095 --> 00:36:34.876 «Else», «If», estas son palabras que si... 00:36:34.877 --> 00:36:37.088 Python ve la palabra «If» 00:36:37.089 --> 00:36:39.195 dirá: «Esto significa algo». 00:36:39.196 --> 00:36:42.169 No la usen con ningún otro propósito, excepto el específicado. 00:36:42.170 --> 00:36:43.454 Ya veremos cuáles son. 00:36:44.249 --> 00:36:48.866 Bien, si hablamos de oraciones, en Python son como líneas, 00:36:48.867 --> 00:36:51.252 formadas por varias partes. 00:36:51.253 --> 00:36:53.652 Estas son tres partes de código. 00:36:53.653 --> 00:36:56.331 Una es «x = 2» que significa: 00:36:56.332 --> 00:36:58.434 Encuéntrame un trozo de memoria... 00:36:58.435 --> 00:37:01.022 en tu RAM, asignada, 00:37:01.023 --> 00:37:03.130 llámala «X», y ponle un 2. 00:37:03.131 --> 00:37:05.987 Es como decir: mueve un 2 a X. 00:37:06.256 --> 00:37:08.398 Luego... esto dice: 00:37:08.399 --> 00:37:12.894 Ve por «X», agrégale 2, y pon la suma en «X» 00:37:12.895 --> 00:37:15.899 Pequeñas oraciones, como sujeto y predicado. 00:37:15.900 --> 00:37:18.178 ¿Sí? Especialmente esta asignación. 00:37:18.179 --> 00:37:20.412 Luego, «Print», que es una palabra reservada, 00:37:20.674 --> 00:37:22.888 estaba en la lista de la diapositiva anterior, 00:37:22.889 --> 00:37:24.880 Luego, lee esa variable. Entonces... 00:37:25.349 --> 00:37:27.828 Estas son como tres oraciones. 00:37:27.852 --> 00:37:29.316 En nuestro nuevo lenguaje. 00:37:31.668 --> 00:37:33.414 PÁRRAFOS DE PROGRAMACIÓN 00:37:33.420 --> 00:37:35.727 Bien, esas son oraciones. Ahora... 00:37:35.995 --> 00:37:38.590 Párrafos... Hablemos de párrafos. 00:37:38.989 --> 00:37:41.478 Los párrafos son la combinación de oraciones 00:37:41.479 --> 00:37:43.082 para formar un pensamiento. 00:37:43.090 --> 00:37:45.277 Varias oraciones. Varias líneas. 00:37:46.098 --> 00:37:49.536 El Python interactivo que les acabo de mostrar... 00:37:49.798 --> 00:37:50.925 está... 00:37:51.441 --> 00:37:55.079 bien para correr una, dos, cinco o seis órdenes, 00:37:55.080 --> 00:37:59.235 pero... con el tiempo escribiremos cosas más largas. 00:37:59.576 --> 00:38:02.177 Así que escribimos lo que llamamos un script... 00:38:02.187 --> 00:38:04.220 o un programa en Python. Y... 00:38:04.221 --> 00:38:05.990 lo ponemos en un archivo. 00:38:06.086 --> 00:38:08.847 y a manera de... 00:38:08.848 --> 00:38:10.029 prerrequisito... 00:38:10.030 --> 00:38:13.207 me han visto ponerlo en un editor de texto... 00:38:13.208 --> 00:38:16.630 guardarlo en un archivo, y luego correrlo desde el archivo Python. 00:38:17.074 --> 00:38:17.949 ¿Sí? 00:38:17.950 --> 00:38:22.345 Así que al nombrar estos archivos les ponemos punto «py» al final. 00:38:22.346 --> 00:38:25.451 Le estamos dando un script a Python para ejecutarlo. 00:38:25.452 --> 00:38:26.985 UN PROGRAMA SENCILLO 00:38:26.986 --> 00:38:29.401 Entonces, es interactivo porque escriben... 00:38:29.402 --> 00:38:32.305 directamente en Python y ejecuta sobre la marcha. 00:38:32.309 --> 00:38:35.324 Se sigue el orden, porque el orden importa... 00:38:35.403 --> 00:38:39.742 Y un script es un archivo donde se escribe todo de una vez. 00:38:41.014 --> 00:38:43.832 PASOS O FLUJO DEL PROGRAMA 00:38:44.452 --> 00:38:46.865 Ahora... al escribir una de estas cosas... 00:38:47.040 --> 00:38:49.129 hay patrones para combinarlas. 00:38:49.605 --> 00:38:54.236 Hacemos cosas... a estas líneas para tratarlas diferente. 00:38:54.804 --> 00:38:56.066 Es como una receta. 00:38:56.289 --> 00:38:57.582 Un juego de instrucciones. 00:38:57.896 --> 00:38:59.764 Empezamos... ch, ch, ch, ch. 00:38:59.825 --> 00:39:01.995 Pero es algo más complicado que eso. 00:39:02.161 --> 00:39:04.275 Algunos pasos son sucesivos. 00:39:04.276 --> 00:39:06.209 Otros van por saltos. 00:39:06.400 --> 00:39:08.716 Algunos pueden hacerse varias veces. 00:39:08.717 --> 00:39:13.107 Y otras veces tenemos grupos de pasos que hacemos una y otra vez. 00:39:13.520 --> 00:39:15.240 Aquí tengo algunas ilustraciones. 00:39:15.608 --> 00:39:16.497 y... 00:39:16.922 --> 00:39:20.513 aquí hay cuatro líneas de Python, un párrafo muy sencillo. 00:39:20.727 --> 00:39:24.060 Y tiene una oración que dice «x=2» 00:39:24.330 --> 00:39:25.478 «print x» 00:39:25.661 --> 00:39:28.709 «x=x+2» que significa ve por el antiguo valor de «x», 00:39:28.710 --> 00:39:30.836 agrégale 2 y ponlo de nuevo en «x» 00:39:30.837 --> 00:39:31.758 e imprime «x» 00:39:31.759 --> 00:39:35.263 La salida de este programa es 2, luego 4. 00:39:35.264 --> 00:39:38.185 Porque imprimimos «x» que era 2, 00:39:38.186 --> 00:39:40.304 luego la imprimimos de nuevo, y era 4. 00:39:40.423 --> 00:39:43.524 No los pondré a dibujar estos diagramas de flujo. 00:39:43.525 --> 00:39:48.316 Sólo son para facilitar la comprensión de lo que sucede. 00:39:49.018 --> 00:39:51.221 Entonces... «x=1» 00:39:51.656 --> 00:39:55.259 es el primer paso de la secuencia, que sigue con la impresión. 00:39:55.378 --> 00:39:58.045 «x=x+1», sigue con la impresión 00:39:58.046 --> 00:39:59.143 Esto es muy obvio. 00:39:59.144 --> 00:40:02.467 Tiene más sentido cuando vemos cosas más complicadas. 00:40:02.468 --> 00:40:06.593 Este programa inicia de forma natural, desde el principio, 00:40:06.594 --> 00:40:08.604 y avanza hacia abajo hasta el final. 00:40:08.763 --> 00:40:10.373 Son pasos en secuencia. 00:40:10.466 --> 00:40:12.485 Es el orden normal de trabajo. 00:40:12.707 --> 00:40:13.434 Bien... 00:40:13.942 --> 00:40:17.525 Un condicional... es un paso que puede o no ser ejecutado. 00:40:17.526 --> 00:40:21.264 Si no fueran más que secuencias, los programas serían aburridos. 00:40:21.280 --> 00:40:24.494 ¿Sí? Serían como: «bla, bla, bla, bla, alto». 00:40:25.407 --> 00:40:26.354 Hay cosas como... 00:40:26.387 --> 00:40:30.374 ¡Qué tal si hago esto o aquello! Así que usamos el «si»... 00:40:30.442 --> 00:40:33.672 Si dedicas más de 14 hr te pagaré una tarifa diferente... 00:40:33.700 --> 00:40:35.806 que si dedicas menos tiempo. 00:40:35.807 --> 00:40:37.711 Esos son condicionales. 00:40:37.712 --> 00:40:38.652 La palabra «If» 00:40:39.629 --> 00:40:43.395 Así que en Python expresamos esto con la palabra clave «If» 00:40:43.649 --> 00:40:45.446 Decimos: «x=5» 00:40:45.447 --> 00:40:48.443 Luego decimos: Si «x» es menor que diez, 00:40:48.444 --> 00:40:50.760 Aquí se está haciendo una pregunta: 00:40:50.761 --> 00:40:53.623 ¿Es «x» menor que diez? ¿Sí o no? 00:40:53.624 --> 00:40:56.395 Si lo es, ejecutamos la parte sangrada 00:40:56.901 --> 00:40:58.855 Si no lo es, la ignoramos. 00:40:59.689 --> 00:41:02.038 En este caso, como «x» es cinco... 00:41:02.998 --> 00:41:04.141 la ejecutamos... 00:41:04.549 --> 00:41:05.839 luego regresamos aquí... 00:41:05.841 --> 00:41:07.056 y hacemos otro. 00:41:07.167 --> 00:41:09.118 Si «x» es mayor que veinte... 00:41:09.128 --> 00:41:10.715 resulta ser falso. 00:41:12.628 --> 00:41:14.008 Así que lo ignoramos. 00:41:14.507 --> 00:41:16.245 «Mayor» no se ejecuta. 00:41:16.246 --> 00:41:19.514 Esa línea nunca se ejecuta, así que el resultado es «Menor» 00:41:19.515 --> 00:41:20.403 Y fin. 00:41:21.876 --> 00:41:22.561 Bien... 00:41:22.577 --> 00:41:25.725 Aquí podemos verlo en el diagrama. 00:41:25.733 --> 00:41:27.315 Corremos x=5 00:41:27.934 --> 00:41:29.211 Hacemos una pregunta 00:41:29.212 --> 00:41:31.409 —no afecta a «x» que hagamos la pregunta— 00:41:31.410 --> 00:41:32.806 ¿Es «x» menor que 10? 00:41:32.815 --> 00:41:35.695 La respuesta es «Sí», así que seguimos este sendero. 00:41:35.696 --> 00:41:38.906 Imprimimos «Menor», luego regresamos a la carretera. 00:41:39.501 --> 00:41:41.321 ¿Es «x» menor que veinte? 00:41:41.408 --> 00:41:44.622 ¡No! Así que continuamos. 00:41:45.130 --> 00:41:47.330 Así que este nunca se ejecuta. 00:41:47.386 --> 00:41:49.349 Pueden verlo de cualquier forma: 00:41:49.350 --> 00:41:52.373 pueden verlo al estilo Gestalt, y decir: 00:41:52.532 --> 00:41:55.008 Si esto es cierto, haz lo que tiene sangría... 00:41:55.009 --> 00:41:58.033 o pueden imaginar un carro avanzando por una carretera 00:41:58.049 --> 00:42:00.383 eligiendo dónde dar vuelta. 00:42:00.384 --> 00:42:01.523 Son equivalentes. 00:42:02.118 --> 00:42:03.131 Con el tiempo... 00:42:03.132 --> 00:42:04.947 probablemente empiecen a verlo así, 00:42:04.948 --> 00:42:06.236 y empiecen a pensar así, 00:42:06.237 --> 00:42:08.638 pero a veces ayuda verlo de esta forma, 00:42:08.733 --> 00:42:10.169 por un tiempo. 00:42:11.621 --> 00:42:12.345 Bien... 00:42:12.917 --> 00:42:16.290 Lo que quiero mostrarles a continuación son los pasos repetidos 00:42:16.291 --> 00:42:19.157 pasos que se ejecutan una y otra vez 00:42:19.607 --> 00:42:20.337 ¿Sí? 00:42:20.908 --> 00:42:24.823 Y cuando dije que las computadoras son buenas con millones de palabras, 00:42:24.824 --> 00:42:27.819 eso implica que debe hacer un bucle o sección repetida, 00:42:27.820 --> 00:42:30.566 uno para cada palabra. 00:42:30.883 --> 00:42:32.008 Así que... 00:42:33.696 --> 00:42:36.521 Entonces aquí vamos... y en Python... 00:42:37.179 --> 00:42:39.528 Voy a poner otro color de texto. 00:42:39.668 --> 00:42:41.672 Usaré el morado. 00:42:41.799 --> 00:42:43.910 Aquí está el programa. Este es el principio. 00:42:43.918 --> 00:42:46.127 Establece la variable «n» con un 5. 00:42:46.129 --> 00:42:49.167 Luego una palabra clave, la palabra reservada «while». 00:42:49.168 --> 00:42:53.031 «While» n sea mayor que cero —estamos haciendo una pregunta— 00:42:53.032 --> 00:42:55.547 Es... una pregunta. 00:42:55.548 --> 00:42:58.109 ¿Es n mayor que cero?, es una pregunta. 00:42:58.110 --> 00:43:00.863 Si sí, haremos esto; si no, haremos eso. 00:43:00.880 --> 00:43:04.398 Aquí, si es verdad, ejecutaremos lo que está con sangría. 00:43:04.509 --> 00:43:06.419 Luego volveremos a hacerlo de nuevo. 00:43:06.522 --> 00:43:08.705 Si es falso, saltaremos al siguiente paso. 00:43:09.005 --> 00:43:10.949 Entonces es como un condicional, 00:43:10.950 --> 00:43:15.178 excepto que lo hará una y otra, y otra, vez. 00:43:15.339 --> 00:43:16.005 Entonces... 00:43:16.006 --> 00:43:19.860 entra, pone un 5 en «n», ¿es n mayor que cero? Sí, claro. 00:43:19.863 --> 00:43:22.529 Así que imprime «n», que resulta ser 5. 00:43:22.729 --> 00:43:26.515 Luego dice: «n» igual a «n-1», así que «n» es 4. 00:43:26.998 --> 00:43:28.634 Voy a cambiar de color. 00:43:28.729 --> 00:43:30.647 Luego regresa arriba. 00:43:31.824 --> 00:43:33.221 Regresa arriba. 00:43:33.384 --> 00:43:35.456 Y vuelve a preguntar. 00:43:35.480 --> 00:43:36.757 Y es cuatro. 00:43:36.972 --> 00:43:38.599 Sigue siendo mayor que cero. 00:43:38.773 --> 00:43:40.075 Así que sigue. 00:43:40.076 --> 00:43:41.392 Imprime 4. 00:43:41.393 --> 00:43:42.646 Resta 1. 00:43:42.647 --> 00:43:44.234 Y ahora es 3. 00:43:44.726 --> 00:43:45.972 Regresa arriba. 00:43:46.539 --> 00:43:48.621 ¿Es «n» cero? 00:43:48.622 --> 00:43:50.517 ¿Es «n» mayor que cero. Sí. 00:43:50.531 --> 00:43:51.747 Imprime 3. 00:43:52.188 --> 00:43:54.176 Resta 1, ahora es 2. 00:43:55.077 --> 00:43:56.966 Así que cuento 3 y 2. 00:43:57.987 --> 00:43:59.522 Y vuelve arriba. 00:43:59.772 --> 00:44:02.170 ¿Aún mayor que cero? Sí, todavía. 00:44:02.171 --> 00:44:03.294 Imprime 2. 00:44:03.668 --> 00:44:05.752 Ah, no. Era 1. 00:44:07.325 --> 00:44:09.619 Ahora al restar 1 resulta 0. 00:44:10.761 --> 00:44:13.926 ¿Es mayor que cero? No. Por fin nos vamos. 00:44:15.124 --> 00:44:17.013 Y por fin bajamos. 00:44:17.234 --> 00:44:19.774 Y lo último que se imprime es «Vámonos». 00:44:21.089 --> 00:44:22.486 Así que esto es un bucle. 00:44:22.590 --> 00:44:25.327 Correremos esta pequeña sección de código... 00:44:25.666 --> 00:44:26.753 cinco veces. 00:44:27.356 --> 00:44:29.241 [Cof, cof] Perdón. 00:44:32.814 --> 00:44:35.323 Correremos este pedazo de código cinco veces. 00:44:35.870 --> 00:44:39.583 Y... los bucles tienen las llamadas variables de iteración, 00:44:39.599 --> 00:44:41.234 como esta «n». 00:44:41.480 --> 00:44:45.684 Es una variable que cambia cada vez que pasa el bucle. 00:44:45.685 --> 00:44:48.163 Así podemos controlar más o menos el bucle: 00:44:48.164 --> 00:44:50.231 Podemos decidir su inicio y fin. 00:44:50.232 --> 00:44:53.666 Podemos decir si es el primero o el último. 00:44:53.667 --> 00:44:55.316 Utilizaremos muchos bucles. 00:44:55.317 --> 00:44:58.212 Esta es una variable de iteración, porque repetimos... 00:44:58.213 --> 00:45:00.313 o iteramos varias veces el bucle. 00:45:00.675 --> 00:45:01.476 ¿Sí? 00:45:03.908 --> 00:45:05.801 ¿Alguna pregunta? Je, je.... 00:45:06.218 --> 00:45:08.365 Como si pudiera responder. Bueno... 00:45:09.094 --> 00:45:10.631 Así que ahora... 00:45:10.632 --> 00:45:11.799 si regresamos... 00:45:11.800 --> 00:45:13.412 a la historia que yo— 00:45:13.413 --> 00:45:15.873 Ya habrá oportunidad de entender. No se preocupen. 00:45:15.874 --> 00:45:17.916 Tienen como hasta el capítulo nueve. 00:45:17.917 --> 00:45:20.032 Así que no traten de entender todo ahora. 00:45:20.033 --> 00:45:22.169 Solo quiero darles una muestra... 00:45:22.170 --> 00:45:24.883 de lo que se van a encontrar. ¿Sí? 00:45:24.884 --> 00:45:25.648 Entonces... 00:45:26.573 --> 00:45:27.267 Entonces... 00:45:27.291 --> 00:45:29.330 Esta es una secuencia de declaraciones, 00:45:29.331 --> 00:45:30.978 porque no tienen sangría. 00:45:31.481 --> 00:45:34.085 Esas cinco líneas están en secuencia. 00:45:34.086 --> 00:45:35.875 Van una después de la otra. 00:45:35.876 --> 00:45:37.979 Luego tenemos «o». 00:45:37.980 --> 00:45:39.399 Y tiene sangría. 00:45:39.877 --> 00:45:43.169 Este es un bucle. Correrá un montón de veces. 00:45:43.327 --> 00:45:46.017 Luego de eso tenemos más cosas en secuencia. 00:45:46.363 --> 00:45:49.607 Ahora tenemos un cuarto bucle, que correrá un montón de veces. 00:45:50.268 --> 00:45:54.041 Luego tenemos un «If», que puede o no correr. 00:45:54.042 --> 00:45:56.414 Es este bloquecito de código. 00:45:56.415 --> 00:46:01.078 Se ejecuta con una condición, y esta es la pregunta que estamos haciendo. 00:46:01.553 --> 00:46:03.053 Esa es la pregunta. 00:46:03.720 --> 00:46:06.266 Y al final ordenamos imprimir. Y repito... 00:46:06.267 --> 00:46:08.275 No se esfuercen mucho con esto. 00:46:08.276 --> 00:46:09.971 Solo quiero mostrarles... 00:46:09.972 --> 00:46:11.145 Secuencia. 00:46:11.377 --> 00:46:12.573 Repetición. 00:46:12.835 --> 00:46:13.875 Repetición. 00:46:14.041 --> 00:46:15.073 Condicional. 00:46:15.963 --> 00:46:17.106 ¿Entienden? 00:46:17.107 --> 00:46:21.531 Esos conceptos aparecen en casi cualquier programa. 00:46:22.095 --> 00:46:23.031 Muy bien. 00:46:24.039 --> 00:46:24.877 Bien. 00:46:25.003 --> 00:46:28.384 Hagamos un par más de ejercicios que les muestren... 00:46:28.400 --> 00:46:31.011 la mentalidad de los programadores, 00:46:31.012 --> 00:46:34.303 y como tienen que pensar en los problemas... 00:46:34.304 --> 00:46:35.807 de una manera diferente. 00:46:36.141 --> 00:46:37.303 Pues, aquí vamos. 00:46:37.456 --> 00:46:40.990 Esto es a lo que yo llamo una historia corta animada. 00:46:41.077 --> 00:46:42.537 Y su trabajo... 00:46:42.538 --> 00:46:45.439 Les daré varios grupos de números 00:46:45.440 --> 00:46:46.638 y quiero... 00:46:46.639 --> 00:46:49.593 que encuentren el número mayor de la lista. 00:46:50.438 --> 00:46:51.200 Bien... 00:46:51.755 --> 00:46:55.020 Saber cuál es el número mayor, no es tan importante... 00:46:55.021 --> 00:46:57.952 como fijarse cómo su mente... 00:46:57.968 --> 00:46:59.547 aborda el problema. 00:46:59.548 --> 00:47:01.070 Qué hacen sus ojos. 00:47:01.071 --> 00:47:05.143 Qué hace su mente. Cómo dividen un problema en partes más pequeñas. 00:47:05.306 --> 00:47:09.211 Cómo un humano resuelve este problema. Y me concentraré en... 00:47:09.236 --> 00:47:11.696 la forma en que una computadora vería el problema. 00:47:11.712 --> 00:47:14.576 ¿Sí? Así que no solo obtengan la respuesta. 00:47:14.577 --> 00:47:15.846 Eso no importa tanto. 00:47:15.870 --> 00:47:17.703 Piensen cómo llegan a la respuesta. 00:47:17.720 --> 00:47:19.909 Así que no lo busquen en YouTube 00:47:19.910 --> 00:47:21.785 tramposamente para saber la respuesta. 00:47:21.809 --> 00:47:22.887 Piensen en... 00:47:22.888 --> 00:47:26.417 resolver el problema y aparte monitorear lo que su mente... 00:47:26.419 --> 00:47:28.164 va pensando. Entonces... 00:47:28.181 --> 00:47:28.984 Aquí vamos. 00:47:29.420 --> 00:47:31.323 Entonces les doy una lista de números... 00:47:31.324 --> 00:47:32.760 y deben decirme... 00:47:32.761 --> 00:47:34.885 cuál es el número mayor. 00:47:34.886 --> 00:47:35.720 ¿Listos? 00:47:35.863 --> 00:47:36.720 Prepárense. 00:47:36.831 --> 00:47:37.672 Ahora. 00:47:49.293 --> 00:47:50.682 No la puse fácil. 00:47:51.277 --> 00:47:52.983 Busquen el número mayor. 00:48:05.153 --> 00:48:06.266 ¿Lo resolvieron? 00:48:07.059 --> 00:48:07.924 ¿Lo tienen? 00:48:07.925 --> 00:48:09.592 ¿Tuvieron que ver un par de veces? 00:48:09.593 --> 00:48:11.469 En verdad no me importa la respuesta 00:48:11.559 --> 00:48:12.686 La cuestión es... 00:48:12.942 --> 00:48:14.386 ¿Qué hizo su mente... 00:48:14.408 --> 00:48:16.590 para resolverlo. Pero querrán la respuesta. 00:48:16.782 --> 00:48:20.067 El número mayor es 198 00:48:20.226 --> 00:48:23.152 Por supuesto lo moví para dificultarlo. 00:48:23.771 --> 00:48:25.037 Pero hay una cosa. 00:48:25.949 --> 00:48:27.688 Los humanos ¿cómo... 00:48:28.233 --> 00:48:29.682 vemos esto? 00:48:29.683 --> 00:48:34.414 Miraron el 25, luego el 1 y después el 114? 00:48:34.415 --> 00:48:36.773 ¿Vieron lentamente uno a la vez? 00:48:36.774 --> 00:48:37.782 ¿Así? 00:48:37.877 --> 00:48:40.009 ¿O no? Lo dudo. 00:48:40.224 --> 00:48:42.112 O quizá sean una computadora. 00:48:42.333 --> 00:48:44.913 ¡Quizá todos sean computadoras! 00:48:44.914 --> 00:48:47.168 Yo no; quizá ustedes sí. 00:48:47.169 --> 00:48:48.665 Muy bien. Basta de eso. 00:48:49.025 --> 00:48:51.421 No. Probablemente no lo hayan hecho así. 00:48:52.016 --> 00:48:56.852 Deben haber movido la vista alrededor de todo con mucha rapidez. 00:48:57.130 --> 00:49:00.382 Y lo primero que deben haber notado, es que había... 00:49:00.383 --> 00:49:05.479 bloques de un dígito, bloques medianos y grandes morados. 00:49:06.082 --> 00:49:07.970 Y lo primero que notaron... 00:49:07.971 --> 00:49:10.986 inmediatamente, fue que no tenía caso... 00:49:11.103 --> 00:49:12.151 ver... 00:49:12.256 --> 00:49:14.202 ninguno de los bloques pequeños. 00:49:14.203 --> 00:49:17.550 Su cerebro eliminó los bloques pequeños con mucha rapidez. 00:49:17.551 --> 00:49:21.880 Luego dicen: «Bien, dado que no hay números de 4 dígitos, sino de 3... 00:49:22.151 --> 00:49:25.340 Luego quizá buscaron el primer dígito... 00:49:25.411 --> 00:49:28.730 Dijeron: «Mira, hay unos. ¿Habrá algún dos?» 00:49:28.738 --> 00:49:31.595 Rápidamente decidieron que no había ningún dos. 00:49:31.778 --> 00:49:34.442 Así que supieron que debían buscar los bloques grandes 00:49:34.453 --> 00:49:37.299 Y que el segundo dígito era lo que importaba. 00:49:37.300 --> 00:49:41.276 Luego llegaron a los nueves. Dijeron: «Oh, hay algunos nueves» 00:49:41.277 --> 00:49:44.365 Y eso significa que es uno, nueve, algo. 00:49:44.366 --> 00:49:48.010 Luego quizá tuvieron que verificar y encontrar el... 00:49:48.011 --> 00:49:50.351 Oh, ¿dónde quedó el ciento noventa... 00:49:50.962 --> 00:49:51.819 ¡Ja! 00:49:53.159 --> 00:49:55.254 ¡Oh! Ciento noventa y ocho. Justo ahí. 00:49:55.816 --> 00:49:58.064 Aunque le cambié el color, no lo veía. 00:49:58.065 --> 00:49:58.737 Muy bien. 00:49:59.145 --> 00:50:00.764 Pero el caso es que... 00:50:01.137 --> 00:50:02.798 los humanos somos muy buenos... 00:50:02.809 --> 00:50:06.006 para eliminar las malas soluciones 00:50:06.007 --> 00:50:07.316 con mucha rapidez. 00:50:07.317 --> 00:50:11.786 Y probablemente viendo cuánto morado había en la pantalla, 00:50:11.787 --> 00:50:14.919 eliminaron las áreas con menos morado porque sabían que— 00:50:14.920 --> 00:50:18.056 su cerebro rápida e instintivamente notó... 00:50:18.057 --> 00:50:20.326 que entre más morado... 00:50:20.327 --> 00:50:22.239 mayor era el número. 00:50:23.049 --> 00:50:25.144 Las computadoras no hacen nada de eso. 00:50:25.263 --> 00:50:27.312 Nada de eso. 00:50:27.407 --> 00:50:28.320 Entonces... 00:50:28.820 --> 00:50:32.175 Para que se sientan más como una computadora... 00:50:32.675 --> 00:50:34.518 tengo otra prueba. 00:50:35.799 --> 00:50:37.032 Y repito... 00:50:37.033 --> 00:50:40.202 La meta no es solo encontrar el número mayor, 00:50:40.305 --> 00:50:41.149 sino... 00:50:41.150 --> 00:50:45.099 monitorear sobre la marcha lo que están pensando... 00:50:46.019 --> 00:50:48.154 mientras lo hacen. ¿Está bien? 00:50:48.904 --> 00:50:49.832 ¿Entendido? 00:50:50.436 --> 00:50:52.578 ¿Cómo abordan el problema? 00:50:52.713 --> 00:50:55.444 ¿Qué sienten mientras abordan el problema? 00:50:56.150 --> 00:50:58.270 ¿Son una computadora, o no? 00:50:59.396 --> 00:51:01.673 Aquí vamos. Les daré unos segundos. 00:51:20.700 --> 00:51:21.517 Entonces... 00:51:23.711 --> 00:51:25.291 ¿Qué les salió? 00:51:27.125 --> 00:51:28.657 Lo que pienso es... 00:51:28.729 --> 00:51:31.228 que la mayoría de ustedes simplemente dijo... 00:51:31.229 --> 00:51:32.389 «No me importa». 00:51:32.992 --> 00:51:34.992 «Este problema es muy difícil 00:51:35.698 --> 00:51:38.747 «Es estúpido» o «Trataré de voltear mi cabeza al revés». 00:51:38.764 --> 00:51:39.779 O algo. 00:51:39.780 --> 00:51:41.486 Es un problema difícil. 00:51:41.487 --> 00:51:43.187 El otro fue bastante fácil. 00:51:43.374 --> 00:51:48.689 Quizá no lo hayan resuelto, pero tienen el instinto para abordarlo. 00:51:48.699 --> 00:51:51.166 Bien, les mostraré la respuesta correcta. 00:51:51.167 --> 00:51:52.806 El resultado es... 00:51:55.718 --> 00:51:56.750 Justo ese... 00:51:57.416 --> 00:51:58.991 Es ciento... 00:51:59.681 --> 00:52:00.983 noventa y siete. 00:52:01.245 --> 00:52:02.094 Sí 00:52:02.531 --> 00:52:06.380 Bien. No pueden, aunque les diga que ahí está... 00:52:06.383 --> 00:52:09.383 lo que es. ¿Qué es esto? ¿Quinientos? o... 00:52:09.621 --> 00:52:10.665 Dos... 00:52:10.666 --> 00:52:11.430 cero, cero. 00:52:11.445 --> 00:52:13.714 ¿Cómo... ah, agg, ag? 00:52:13.971 --> 00:52:16.739 En realidad solo podría lograrlo si lo volteo. 00:52:16.740 --> 00:52:19.204 Los humanos no somos buenos para esto. 00:52:20.284 --> 00:52:24.065 Esto es más parecido a cómo las computadoras ven el mundo, pero... 00:52:24.428 --> 00:52:28.164 el que los datos estén al revés o al derecho no debería ser problema. 00:52:28.165 --> 00:52:28.832 ¿Sí? 00:52:28.983 --> 00:52:29.973 Las computadoras... 00:52:30.170 --> 00:52:32.235 necesitan una estrategia. 00:52:32.321 --> 00:52:33.917 Debemos darles una estrategia. 00:52:34.575 --> 00:52:35.425 Bien. 00:52:36.363 --> 00:52:38.244 Aquí vamos. 00:52:40.314 --> 00:52:41.131 Un... 00:52:41.132 --> 00:52:42.115 último... 00:52:42.512 --> 00:52:43.570 experimento. 00:52:45.313 --> 00:52:46.408 Ahora... 00:52:46.599 --> 00:52:49.831 les mostraré números, uno a la vez. 00:52:49.840 --> 00:52:51.015 Y al final... 00:52:51.016 --> 00:52:54.554 quiero que me digan cuál fue el número mayor. 00:52:54.555 --> 00:52:55.458 ¿Listos? 00:52:55.577 --> 00:52:56.473 Aquí vamos. 00:52:58.424 --> 00:52:59.305 Primer número. 00:53:11.809 --> 00:53:13.841 ¿Cuál fue el número mayor? 00:53:21.142 --> 00:53:23.881 En realidad, ¿cómo resolvieron el problema? 00:53:24.809 --> 00:53:26.563 Lo resolvieron... 00:53:27.029 --> 00:53:28.158 casi seguro... 00:53:28.159 --> 00:53:32.095 porque no vieron todos los números a la vez, así que probablemente... 00:53:32.096 --> 00:53:35.770 crearon... una variable en su mente, sin darse cuenta. 00:53:36.268 --> 00:53:38.920 y pusieron en esa variable— 00:53:38.921 --> 00:53:40.258 la llamaron... 00:53:40.259 --> 00:53:42.831 el número mayor que he visto hasta ahora. 00:53:44.038 --> 00:53:44.943 y... 00:53:44.944 --> 00:53:48.927 si no han visto ninguno, digamos que el número mayor que han visto es -1 00:53:49.236 --> 00:53:51.327 Luego, les muestro un tres. 00:53:51.641 --> 00:53:54.280 Y ustedes piensan: Bueno... 00:53:55.185 --> 00:53:58.065 Uno negativo no es el mayor número que he visto. 00:53:58.090 --> 00:53:59.272 Así que guardaré ese. 00:53:59.495 --> 00:54:01.693 Guardaré el tres. Es el mayor hasta ahora. 00:54:01.694 --> 00:54:03.702 Luego veo el cuarenta y uno. ¡Ah! 00:54:03.703 --> 00:54:05.785 Cuarenta y uno es mayor que tres, 00:54:05.786 --> 00:54:07.255 así que lo guardaré. 00:54:07.998 --> 00:54:09.526 Y ahora veo un doce. 00:54:09.527 --> 00:54:11.160 El doce es basura... 00:54:11.161 --> 00:54:15.021 porque ni se acerca a cuarenta y uno, así que conservaré el cuarenta y uno. 00:54:15.156 --> 00:54:16.251 Y ahora... 00:54:16.571 --> 00:54:17.484 Oh, nueve. 00:54:17.643 --> 00:54:21.317 No se acerca al cuarenta y uno, así que lo desecharé. 00:54:21.318 --> 00:54:22.627 ¿Setenta y cuatro? 00:54:22.628 --> 00:54:25.147 Mejor... mejor... lo conservo. Me sirve. 00:54:25.148 --> 00:54:26.765 Conservo el setenta y cuatro. 00:54:27.233 --> 00:54:29.217 Y el último número es quince, 00:54:29.218 --> 00:54:30.655 —No sabía que es el último— 00:54:30.656 --> 00:54:33.908 pero no lo conservamos, así que ya terminamos. 00:54:34.240 --> 00:54:36.257 Entonces sabemos que al final... 00:54:36.265 --> 00:54:39.876 lo que durante el bucle fue el mayor hasta el momento... 00:54:40.339 --> 00:54:42.884 es en realidad el mayor de todos los números. 00:54:42.885 --> 00:54:45.179 Y no recordamos exactamente cuantos números... 00:54:45.591 --> 00:54:46.427 había. 00:54:47.067 --> 00:54:50.586 Y esto es pensar como un programa... como una ventana corrediza. 00:54:51.110 --> 00:54:54.497 No importa si les hubiera dado un millón de números... o cinco. 00:54:54.498 --> 00:54:56.620 Creo que eran cinco. 00:54:56.883 --> 00:54:59.702 Esta idea del mayor hasta el momento es muy poderosa. 00:54:59.867 --> 00:55:00.980 De hecho... 00:55:00.994 --> 00:55:04.446 es el centro del programa que les he mostrado. 00:55:05.145 --> 00:55:07.584 No traten de entender esto. 00:55:07.716 --> 00:55:09.815 Pero, esta parte morada... 00:55:11.567 --> 00:55:13.265 Esta parte morada... 00:55:13.773 --> 00:55:15.416 en realidad dice: 00:55:15.559 --> 00:55:18.496 Voy a correr en bucle para contar todas las palabras. 00:55:18.497 --> 00:55:21.869 Si hay una palabra como... «The» está quince veces, y... 00:55:22.483 --> 00:55:24.201 «Clown» está cuatro veces. 00:55:24.202 --> 00:55:28.418 Y va a ver cada par de palabras y combinaciones. 00:55:28.419 --> 00:55:32.418 Y dirá: Revisaré las cuentas que tengo... 00:55:32.696 --> 00:55:36.109 y verificaré si la cuenta que estoy viendo es mayor... 00:55:36.149 --> 00:55:38.636 que la cuenta mayor que he visto hasta ahora. 00:55:38.637 --> 00:55:41.177 Y si lo es la recordaré. 00:55:41.178 --> 00:55:41.798 Pero... 00:55:41.799 --> 00:55:46.487 no se preocupen; no veremos esto hasta los capítulos 2, 3, 4, 5 y 6. 00:55:46.575 --> 00:55:49.089 Pero esto es un algoritmo... 00:55:49.090 --> 00:55:50.918 un párrafo... 00:55:50.919 --> 00:55:52.187 un patrón... 00:55:52.188 --> 00:55:55.113 que les permite encontrar el número mayor. 00:55:55.153 --> 00:55:58.993 Volveremos a ver esto al detalle en capítulos siguientes. 00:55:59.136 --> 00:56:02.802 Esto es, más o menos, la forma de pensar de una computadora: 00:56:03.103 --> 00:56:06.697 tener una ventana corrediza a través de una larga lista de números... 00:56:06.698 --> 00:56:08.799 y llegar a algo... 00:56:08.806 --> 00:56:11.776 que sea la respuesta... que necesitamos. 00:56:14.027 --> 00:56:14.802 Muy bien. 00:56:15.183 --> 00:56:17.128 Este es el final de la conferencia. 00:56:17.397 --> 00:56:18.992 Lean el capítulo 1. 00:56:18.993 --> 00:56:21.088 Escriban su programa de «Hola mundo». 00:56:21.112 --> 00:56:22.868 Si no lo han hecho asegúrense... 00:56:22.869 --> 00:56:24.425 de instalar Python... 00:56:24.426 --> 00:56:26.480 mientras leen este capítulo... 00:56:26.481 --> 00:56:28.249 e incluso mientras instalan Python... 00:56:28.273 --> 00:56:30.654 o mientras escriben su primer programa... 00:56:30.829 --> 00:56:33.741 no se atoren en los detalles. 00:56:34.224 --> 00:56:37.017 Yo estuve confundido como ocho semanas—- 00:56:37.018 --> 00:56:39.498 seis semanas en mi primera clase de programación. 00:56:39.634 --> 00:56:41.134 Les pasará a ustedes también. 00:56:41.459 --> 00:56:44.237 Solo síganme. No deserten. 00:56:44.745 --> 00:56:48.591 Comenzará a tener sentido en un punto que depende de ustedes. 00:56:48.592 --> 00:56:50.719 Yo no puedo decirles cuándo lo entenderán. 00:56:50.720 --> 00:56:52.457 Así que... no... 00:56:52.458 --> 00:56:56.488 se queden viendo todo fijamente. Solo sigan escarbando... 00:56:56.489 --> 00:56:58.742 sigan entendiendo, sigan jugando... 00:56:58.743 --> 00:57:01.679 y tarde o temprano le hallarán mucho sentido. 00:57:01.680 --> 00:57:02.589 Lo prometo. 00:57:03.192 --> 00:57:04.410 Hasta la próxima.