Python Curso Avanzado
Python Curso Avanzado
Guarde este archivo de texto como myfi[Link] en su escritorio. A continuación, encienda IDLE
y escriba el código a continuación. Guarde este código como fi[Link] en su
escritorio también.
[Link] ()
La primera línea del código abre el archivo. Antes de que podamos leer de cualquier archivo,
tenemos que abrirlo (al igual que necesitas abrir este libro electrónico en tu kindle
dispositivo o aplicación para leerlo). La función open () hace eso y requiere dos
parámetros:
Página 79
modo 'r':
Solo para lectura.
modo 'w':
Solo para escribir.
Si el archivo especificado no existe, se creará.
Si el archivo especificado existe, se borrarán todos los datos existentes en el archivo.
modo 'a':
Para agregar.
[Link] 61/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Si el archivo especificado no existe, se creará.
Si el archivo especificado existe, cualquier dato escrito en el archivo se agrega automáticamente
hasta el final
Cada vez que se llama a la función readline (), lee una nueva línea de
el archivo. En nuestro programa, readline () se llamó dos veces. De ahí la primera
se leerán dos líneas. Cuando ejecute el programa, obtendrá el resultado:
Página 80
Notará que se inserta un salto de línea después de cada línea. Esto es porque
la función readline () agrega los caracteres '\ n' al final de cada
línea. Si no desea la línea adicional entre cada línea de texto, puede
imprimir (primera línea, fin = ''). Esto eliminará el '\ n'
caracteres. Después de leer e imprimir las dos primeras líneas, la última oración
[Link] () cierra el archivo. Siempre debe cerrar el archivo una vez que
termine de leerlo para liberar los recursos del sistema.
[Link] 62/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 81
El bucle for recorre el archivo de texto línea por línea. Cuando lo ejecutas
usted obtendrá
Aprenda Python en un día y aprenda bien Python para
Principiantes con proyecto práctico El único libro que necesita
para comenzar a codificar en Python inmediatamente
[Link]
Página 82
[Link] 63/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Ahora que hemos aprendido a abrir y leer un archivo, intentemos escribir en él.
Para hacer eso, usaremos el modo 'a' (agregar). También puede utilizar la 'w'
modo, pero borrará todo el contenido anterior en el archivo si el archivo ya
existe. Intente ejecutar el siguiente programa.
Aquí usamos la función write () para agregar las dos oraciones 'This
se agregará una oración. y "¡Python es divertido!" al
archivo, cada uno comenzando en una nueva línea ya que usamos los caracteres de escape
'\norte'. Usted obtendrá
Aprenda Python en un día y aprenda bien Python para
Principiantes con proyecto práctico El único libro que necesita
para comenzar a codificar en Python inmediatamente
[Link] Esta oración
se adjuntará.
¡Python es divertido!
Página 83
A veces, es posible que deseemos leer un archivo por tamaño de búfer para que nuestro programa
no utiliza demasiados recursos de memoria. Para hacer eso, podemos usar el
función read () (en lugar de la función readline ()) que nos permite
para especificar el tamaño de búfer que queremos. Prueba el siguiente programa:
inputFile = open ('myfi[Link]', 'r') outputFile = abierto
('myoutputfi[Link]', 'w')
[Link] 64/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
msg = [Link] (10)
while len (msg):
[Link] (msg) msg = [Link] (10)
[Link] () [Link] ()
Primero, abrimos dos archivos, [Link] y [Link]
archivos para lectura y escritura respectivamente.
Página 84
Aprende Pyth
en uno
Día y le
arn It Wel
[Link] 65/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 85
Los archivos binarios hacen referencia a cualquier archivo que no contenga texto, como imágenes o videos.
archivos. Para trabajar con archivos binarios, simplemente usamos el modo 'rb' o 'wb'. Copiar
un archivo jpeg en su escritorio y renómbrelo [Link]. Ahora edite el
programa anterior cambiando las dos primeras líneas
[Link] 66/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 86
Otras dos funciones útiles que debemos aprender al trabajar con archivos son
las funciones remove () y rename (). Estas funciones están disponibles en
el módulo del sistema operativo y deben importarse antes de que podamos usarlos.
Página 87
[Link] 67/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Nuestro programa establecerá aleatoriamente una pregunta aritmética para que la respondamos. Si
obtenemos la respuesta incorrecta, el programa mostrará la respuesta correcta
y preguntar si queremos probar una nueva pregunta. Si lo hacemos correctamente, el programa
nos felicitará y nos preguntará si queremos una nueva pregunta. además, el
El programa realizará un seguimiento de nuestros puntajes y guardará los puntajes en un
Archivo de texto. Después de cada pregunta, podemos teclear “-1” para terminar el programa.
Listo? ¡Vamonos!
Página 88
Parte 1: [Link]
[Link] 68/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
módulo aleatorio y el módulo del sistema operativo.
Página 89
Darren, 129
A continuación, la función lee el archivo línea por línea usando un bucle for. Cada línea es
luego dividir usando la función split () (consulte el Apéndice A para
ejemplo sobre el uso de la función split ()).
A continuación, la función comprueba si alguna de las líneas tiene el mismo nombre de usuario que
el valor que se pasa como parámetro. Si lo hay, la función
cierra el archivo y devuelve la puntuación junto a ese nombre de usuario. Si no lo hay
la función cierra el archivo y devuelve la cadena '-1'.
¿Hecho?
[Link] 69/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
se produce un IOError si el archivo aún no existe. Por lo tanto, cuando corremos
el programa por primera vez, terminaremos con un error ya que el archivo
[Link] no existe previamente. Para evitar este error,
puede hacer cualquiera de las siguientes:
En lugar de abrir el archivo en modo 'r', podemos abrirlo en modo 'w'. Cuando
abriendo en modo 'w', se creará un nuevo archivo si el archivo no existe
previamente. El riesgo de este método es que podamos escribir accidentalmente al
archivo, lo que da como resultado que se borre todo el contenido anterior. Sin embargo, desde
nuestro programa es un programa pequeño, podemos revisar nuestro código cuidadosamente
para evitar cualquier escritura accidental.
Página 90
Puede elegir cualquiera de los métodos anteriores para completar este ejercicio.
La respuesta proporcionada utiliza el segundo método. Una vez que haya terminado, vamos
continúe con el ejercicio 3.
[Link] 70/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 91
[Link]
Ann, 100
Benny, 102 años
Carol, 214
Darren, 129
[Link]
Ann, 100
Benny, 158
Carol, 214
Darren, 129
Para generar las preguntas, primero declaremos tres variables: dos listas y
un diccionario.
Página 92
operandList debe almacenar cinco números, con 0 como sus valores iniciales.
[Link] 71/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
operatorList debe almacenar cuatro cadenas, con "" como valores iniciales.
Primero necesitamos reemplazar los valores iniciales de nuestra lista de operandos con
números aleatorios generados por la función randint ().
Por ejemplo, si se llama a randint (1, 9), devolverá aleatoriamente un número entero
de los números 1, 2, 3, 4, 5, 6, 7, 8, 9.
Para actualizar nuestra variable operandList con números aleatorios, podemos hacer
éste uno por uno ya que operandList solo tiene cinco miembros. Podemos
escribir
operandList [0] = randint (1, 9) operandList [1] =
randint (1, 9) operandList [2] = randint (1, 9)
operandList [3] = randint (1, 9) operandList [4] =
randint (1, 9)
Cada vez que se llama a randint (1, 9), devolverá aleatoriamente un número entero de
los números 1, 2, 3, 4, 5, 6, 7, 8, 9.
Página 93
¿Hecho? ¡Excelente!
Ahora que tenemos los números con los que operar, necesitamos
generar los símbolos matemáticos (+, - , *) para nuestras preguntas. Que hacer
eso, usaremos la función randint () y el operatorDict
diccionario.
[Link] 72/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
para asignar el símbolo a operatorList [0], escribimos
operatorList [0] = operatorDict [randint (1,
4)]
Al igual que en el ejercicio 4.1, debe utilizar un bucle for para completar esta tarea.
Sin embargo, hay un problema que hace que este ejercicio sea más difícil que
Ejercicio 4.1.
Página 94
Para evitar este problema, vamos a modificar nuestro código para que no
obtener dos signos ** consecutivos. En otras palabras, operatorList = ['+',
'+', '-', '**'] está bien, pero operatorList = ['+', '-', '**',
'**'] no es.
Sugerencia: si está atascado, puede considerar usar una instrucción if dentro del
en bucle.
[Link] 73/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Sugerencia: puede usar un bucle for para concatenar las subcadenas individuales
de operandList y operatorList para obtener la matemática
expresión.
Página 95
Ahora deberíamos tener una expresión matemática como una cadena, asignada a
la variable questionString. Para evaluar el resultado de esta expresión,
vamos a utilizar una función incorporada brillante que viene con Python,
eval ().
Para el paso 1, necesitamos usar una función incorporada para manipular cadenas. Como
mencionado anteriormente, en Python, el símbolo ** significa exponente. Es decir,
2 ** 3 = 8. Sin embargo, para la mayoría de los usuarios, ** no tiene ningún significado. Por lo tanto, si mostramos
una pregunta como 2 ** 3 + 8 -5, es probable que el usuario se confunda. Para evitar eso,
reemplazaremos cualquier símbolo ** en questionString con el símbolo ^.
Para hacer eso, usaremos la función incorporada replace (). Usarlo es bonito
sencillo, solo escribe questionString =
[Link] ("**", "^"). Ahora puede imprimir el
expresión resultante para el usuario.
Página 96
[Link] 74/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Para el paso 2, puede utilizar la función input () para aceptar la entrada del usuario.
¿Recuerda que la función input () devuelve la entrada del usuario como una cadena? Por lo tanto,
cuando compara la entrada del usuario con la respuesta correcta (obtenida en
Ejercicio 4.4), tienes que hacer algún tipo de conversión para cambiar la entrada del usuario
a un entero. Al cambiar la entrada del usuario a un número entero, debe usar
un intento, excepto una declaración para verificar si el usuario ingresó un número. Si el
usuario escribió una cadena en su lugar, el programa debe informar al usuario de la
error y pedirle al usuario que escriba un número.
Aquí hay una sugerencia sobre cómo puede usar un ciclo while True para esto
ejercicio.
mientras es cierto:
tratar:
enviar la respuesta del usuario a un número entero y evaluar
la respuesta devuelve la puntuación del usuario basada en la respuesta
excepto:
Imprimir mensaje de error si falla la transmisión.
que el usuario vuelva a introducir la respuesta
El bucle while True seguirá repitiendo ya que la condición while es
siempre cierto. El ciclo saldrá solo cuando se ejecute el bloque try.
correctamente y llega a la declaración de devolución.
Página 97
Prueba este ejercicio. Una vez que haya terminado, podemos pasar a la Parte 2 donde
escribimos el programa real.
[Link] 75/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 98
Parte 2: [Link]
Paso 1:
Necesita declarar otra variable userChoice y darle una inicial
valor de 0.
Página 99
Paso 2:
Luego, usando un ciclo while, compare userChoice con una cadena de su
opción, diga “-1”. Si userChoice no es lo mismo que "-1", llama a la función
generateQuestion () para generar una nueva pregunta.
Paso 3:
generateQuestion () devolverá la puntuación que el usuario obtuvo por ese
pregunta. Utilice este resultado para actualizar la variable userScore.
Paso 4:
Finalmente, para evitar un bucle infinito, necesitamos usar input ()
funcionar de nuevo dentro del ciclo while para aceptar la entrada del usuario y usarla para
actualice el valor de userChoice.
¿Lo tengo? Intente codificarlo. Hacer la codificación real hará que todo
más claro.
Eso es todo por el bloque try. Ahora para el bloque excepto, simplemente informamos
el usuario que se ha producido un error y el programa se cerrará.
¡Eso es! Una vez que termine este paso, tendrá un programa completo, su
primer programa en Python. Intente ejecutar el programa [Link]. Lo hace
funciona como se esperaba? ¿Emocionado? Espero que estés tan emocionado como yo.
a.m. :)
[Link] 77/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 100
Retarte a ti mismo
Ejercicio de desafío 1
Ejercicio de desafío 2
Es muy inconveniente para los usuarios calcular e ingresar un tamaño tan grande
número. Por lo tanto, queremos evitar respuestas que sean demasiado grandes o pequeñas. lata
Modificas el programa para evitar preguntas que resulten en respuestas.
mayor que 50 000 o menor que -50000?
Ejercicio de desafío 3
Página 101
[Link] 78/103
2/10/2020 Aprenda Python en un día y aprenda bien: Python para principiantes con un proyecto práctico. El único libro en el que necesitas empezar a codificar
Página 102
Gracias
Sé que podrías haber elegido entre una docena de libros sobre Python
Programación, pero se arriesgó con este libro. Gracias una vez
nuevamente por descargar este libro y leerlo hasta el final.
Pruebe los ejercicios y los desafíos. Aprenderás mucho haciendo.
Por último, pero no menos importante, recuerde que puede descargar el código fuente del
proyecto y los apéndices en [Link] .
Página 103
Nota: La notación [inicio, [fin]] significa que el inicio y el final son opcionales
parámetros. Si solo se proporciona un número como parámetro, se toma
para empezar .
[Ejemplo]
[Link] 80/103