Aprendizaje primario de Python

Capítulo 1 Por qué aprender Python

Los mejores programadores no programan por un salario más alto o la admiración del público, simplemente piensan que es divertido.
——Linus TorvaIds, el padre de Linux

Como aprendiz pragmático, la pregunta más preocupante debe ser "¿Por qué debería elegir aprender Python y para qué puedo usarlo después de aprenderlo?" (En primer lugar,
para los principiantes, Python es más fácil de aprender que otros lenguajes de programación . Fácil de usar.
La filosofía de diseño de Python es elegante, clara y simple. En el The Zen of Python (Python Zen) oficial, se encuentra esta oración:

Debería haber una, y preferiblemente sólo una, forma obvia de hacerlo.

Lo que Python busca es encontrar la mejor solución. En cambio, otros lenguajes persiguen múltiples soluciones.
Si intenta leer un fragmento de código Python bien escrito, parece que está leyendo en inglés. Esta es también la mayor ventaja de Python, le permite concentrarse en resolver problemas en lugar de comprender el lenguaje en sí.
inserte la descripción de la imagen aquí
En segundo lugar, Python es poderoso, y Python se ha ocupado de muchas cosas por las que debería haberse preocupado. Cuando escribe programas en el lenguaje Python, no necesita pensar en detalles de bajo nivel, como cómo administrar la memoria utilizada por su programa. Además, Python tiene una biblioteca muy rica, incluidas las oficiales y las desarrolladas por terceros. Es probable que alguien haya escrito los módulos funcionales que desea hacer, y solo necesita llamarlos sin reinventar la rueda. Es como tener un teléfono inteligente, donde puede instalar cualquier aplicación que desee.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Esta caricatura describe cuán poderosa es la biblioteca de Python, y puede volar importando una biblioteca antigravedad.

Tercero, hay muchas cosas que Python puede hacer.
En el lugar de trabajo, las personas que usan Python para trabajar son principalmente los siguientes tipos de personas:
Programadores back-end de sitios web: el uso de Python para crear sitios web y servicios en segundo plano será más fácil de mantener. implementarse fácilmente. Pero si usa php, a menudo necesita volver a escribir el código. Muchos sitios web conocidos se desarrollan utilizando Python, como:
inserte la descripción de la imagen aquí
operación y mantenimiento automatizados: cada vez más operaciones y mantenimiento tienden a automatizarse, y una gran cantidad de tareas de operación y mantenimiento se procesan en lotes.
La ventaja de Python en la gestión de sistemas radica en sus potentes capacidades de desarrollo y su completa cadena de herramientas.
Analistas de datos: las funciones de desarrollo rápido de Python le permiten verificar rápidamente sus ideas en lugar de perder tiempo en el programa en sí, y cuenta con el respaldo de una gran cantidad de bibliotecas de terceros, que también pueden ahorrarle tiempo.
Desarrolladores de juegos: por lo general, está integrado en el juego como un script del juego. La ventaja de esto es que no solo puede utilizar el alto rendimiento del motor del juego, sino también beneficiarse de las ventajas del desarrollo con script. Puede ajustar el contenido del juego solo modificando el contenido del script, sin volver a compilar el juego, lo cual es muy conveniente.
Pruebas automatizadas: para las pruebas, es necesario dominar las características de Script, lo que tendrá un mejor efecto en el diseño de scripts. Python es actualmente el script más popular.

Si usted es un desarrollador aficionado que solo quiere hacer rápidamente lo que quiere y resolver automáticamente los problemas de la vida con pocos recursos, entonces Python puede ayudarlo a hacer este tipo de cosas.

Desarrollo de sitios web
Con la ayuda del marco rico en funciones Django, fask y el arranque de plantilla de diseño enriquecido, puede crear rápidamente su propio sitio web y también puede adaptarse a dispositivos móviles.
inserte la descripción de la imagen aquí
Utilice rastreadores para realizar la extracción de datos y el procesamiento por lotes.
La esencia de los rastreadores es imitar a las personas para obtener datos de páginas web. Cuando necesite obtener una gran cantidad de datos o obtenerlos continuamente, Python puede hacerlo rápidamente y ahorrar su tiempo de trabajo repetitivo. . Por ejemplo: el robot de mensajes privados de Weibo, la descarga por lotes de dramas estadounidenses, la ejecución de estrategias de inversión, el robo de boletos aéreos baratos, el rastreo de fuentes de vivienda adecuadas, las tareas de guión de los administradores del sistema, etc.
inserte la descripción de la imagen aquí
Reempaquetar programas en otros lenguajes
Python también se denomina lenguaje de unión, ya que puede usar bibliotecas en c/c++/java y otros lenguajes en una forma de compilación mixta. Además, la Raspberry Pi, como microcomputadora, también utiliza Python como lenguaje principal de desarrollo.
inserte la descripción de la imagen aquí
Finalmente, se adjunta una pequeña prueba para elegir un lenguaje de programación, usted puede elegir qué idioma aprender de acuerdo a sus necesidades.
inserte la descripción de la imagen aquí

El capítulo 2 comienza ahora.

2.1 Instalar el entorno de Python

Lo más importante antes de comenzar a aprender Python: sí, debe instalar el entorno de Python. Muchos principiantes se enredarán con la pregunta de si elegir la versión 2.x o la versión 3.x En mi opinión, la velocidad del cambio mundial es cada vez más rápida y la velocidad de actualización del idioma también es la misma. No hay razón para que vivamos en el pasado y no miremos hacia adelante. Para Python 3.x, que se está volviendo cada vez más popular y tiene muchas características nuevas y geniales, realmente no tenemos motivos para rechazarlo. Si entiende que las dificultades de la vida son cortas, necesita Python, debe elegir este
modelo de desarrollo "orientado al futuro".
Por lo tanto, nuestro material didáctico se basará en la última versión de Python 3.x, asegúrese de tener la versión correspondiente en su computadora.

2.1.1 Instalar Python en Windows

El primer paso
es descargar el Python 3.5 correspondiente del sitio web oficial de Python según su versión de Windows (64 bits o 32 bits). Además, Windows 8.1 debe elegir Python 3.4. La dirección es la siguiente: Python 3.5 64 Instalador de bits https://www.Python.org/ftp/Python/3.5.0/ Python_3.5.0_amd64.exe Instalador
de Python 3.5 de 32 bits https://www.Python.org/ftp/Python/3.5.0 / Python_3.5.0.exe Python 3.4 64 Instalador de 32 bits https://www.Python.org/ftp/Python/3.4.3/ Python_3.4.3.amd64.msi Python 3.4 Instalador de 32 bits https://www. Python.org/ftp/Python/3.4.3/ Estudiantes con una velocidad de Internet lenta de Python_3.4.3.msi, vayan al espejo doméstico http://pan.baidu.com/s/1bnmdlZx Luego, ejecuten la instalación EXE descargada paquete: preste especial atención a marcar Agregar Python 3.5 a PATH, luego haga clic en "Instalar ahora" para completar la instalación. De forma predeterminada, se instalará en el directorio C:\Python35. segundo paso




inserte la descripción de la imagen aquí

Abra la ventana del símbolo del sistema (el método es hacer clic en y para iniciar "-y ejecutar" - entrada: ycmd"), después de escribir Pxthon, aparecerán dos situaciones:

  • Caso 1:

inserte la descripción de la imagen aquí
¡Al ver la pantalla anterior, significa que Pxthon se instaló correctamente!
Verá el mensaje >>>, lo que significa que ya estamos en el entorno interactivo de Pxthon, puede ingresar cualquier
código de Pxthon y obtendrá el resultado de la ejecución inmediatamente después de presionar Ingresar. Ahora, ingrese eXit(( y presione Enter, puede salir
del entorno interactivo de Pxthon (cierre directamente la ventana de la línea de comando o use la tecla de acceso directo yCtrl) C" también está disponible).

  • Caso dos: obtener un error:

:Python' no se reconoce como un comando interno o externo, un programa operativo o un archivo por lotes.

inserte la descripción de la imagen aquí
Esto se debe a que Windows buscará Python.exe de acuerdo con la ruta establecida por una variable de entorno Ruta.Si no se encuentra, se informará un error. Si omite marcar Add Python 3.5 to PATH durante la instalación, debe agregar manualmente la ruta donde se encuentra Python.exe a Path.
Si no sabe cómo modificar la variable de entorno, se recomienda ejecutar de nuevo el programa de instalación de Python y recordar marcar Add Python 3.5 to PATH.

2.1.2 Instalar Python en Mac

Si está utilizando una Mac y el sistema es OS X 10.8-10.10, entonces la versión de Python que viene con el sistema es 2.7 y necesita instalar la última versión de Python 3.5.

primer paso:

  • método uno:

Descargue el instalador de Python 3.5 del sitio web oficial de Python
Enlace: https://www.Python.org/ftp/Python/3.5.0/Python-3.5.0-macosx10.6.pkg
Para estudiantes con una velocidad de Internet lenta, mueva al espejo doméstico: http://pan.baidu.com/s/1sjqOkFF

La instalación de Mac es más sencilla que la de Windows, solo necesitas hacer clic en Continuar para completar la instalación.
inserte la descripción de la imagen aquí

  • Método 2:
    si Homebrew está instalado, instálelo directamente a través del comando brew install Python3.
    El segundo paso
    Si no te sientes cómodo, puedes volver a comprobarlo. El método de operación es abrir la terminal, ingresar 3ython, (no ingresar 3ython, ni 3ython)
    inserte la descripción de la imagen aquí
    y obtener tal resultado, lo que significa que la instalación es exitosa.

2.1.3 Instalar Python en Linux

La buena noticia es que la mayoría de los sistemas Linux tienen un entorno Python integrado. Por ejemplo, Ubuntu tiene entornos Python 2 y Python 3 integrados desde la versión 13.04.
Si desea verificar su versión de Python, abra una terminal y escriba:

python3 --version

Puede verificar qué versión de Python 3 es.
Si necesita instalar una versión específica de Python, ingrese esta línea en la terminal:

sudo apt-get install python3.5

Entre ellos, 3.5 se puede reemplazar con la versión que necesita Actualmente, la última versión de Python es 3.5.

2.2 Uso de herramientas IDE

Después de instalar el entorno, también debe configurar una herramienta específica del programador. Así como los diseñadores usan Photoshop para hacer imágenes y los gerentes de producto usan Axure para hacer prototipos, los programadores también tienen herramientas de programación llamadas: IDE
aquí recomienda el IDE de Python más inteligente y mejor utilizado, llamado PyCharm, que es compatible con usuarios de Windows y Mac. Esto tutorial La versión utilizada actualmente es la última versión 3.4. El enlace de descarga del sitio web oficial es: https://www.jetbrains.com/PyCharm/
La versión comunitaria es gratuita y la versión profesional es de pago. Para los principiantes, la diferencia entre los dos es mínima, y ​​usar la edición comunitaria es suficiente.
inserte la descripción de la imagen aquí
En este punto, el entorno y las herramientas para el desarrollo de Python están configurados, ya que el uso de PyCharm es extremadamente simple, casi no hay necesidad de aprender tutoriales adicionales y podemos comenzar a programar con tranquilidad.
Algunos estudiantes pueden tener preguntas, así que aquí están las respuestas.

  • ¿Por qué no es necesario instalar un intérprete de Python?
    Porque después de descargar Python 3.5 desde el sitio web oficial de Python, la versión oficial del intérprete viene con él, por lo que no es necesario volver a instalarlo.
  • ¿Por qué no usar un editor de texto, como Sublime?
    Debido a que el editor de texto es relativamente liviano, en comparación con lDE, su función es demasiado débil, especialmente durante la depuración, encontrará muchos problemas.
  • ¿Puedo programar directamente en la línea de comandos o terminal sin instalar lDE?
    Poder. Pero es muy problemático guardar el código completo en la línea de comando. Lo más importante es que el editor es interactivo. Si accidentalmente escribes el código incorrecto a mano, no puedes modificarlo y tienes que escribirlo de nuevo. Aprecia tu tiempo y haz un buen uso de las herramientas.
  • El color del tema predeterminado de PyCharm es blanco, ¿cómo cambiarlo a negro?
    Usuarios de Windows
    Paso 1: Seleccione la opción "Configuración" en el menú "archivo":
    inserte la descripción de la imagen aquí
    Paso 2: Seleccione la opción "Apariencia" en "Configuración IDE"
    inserte la descripción de la imagen aquí
    Paso 3: Haga clic en el cuadro desplegable de "Tema" a la derecha y seleccione el tema correspondiente:
    inserte la descripción de la imagen aquí
    seleccione "Darcula", haga clic en "Aceptar", el tema se establece en negro.

usuarios de mac

Cambia el tema a darcula en la apariencia del menú
inserte la descripción de la imagen aquí
y luego puedes tener una piel negra

Además, si desea cambiar el color del texto, puede cambiarlo en "Colores y fuentes". El tutorial utiliza el tema "Monokai".
inserte la descripción de la imagen aquí

Variables básicas y cadenas en el Capítulo 3 Conceptos básicos

3.1 Empezar a aprender a programar

La confusión que a menudo encuentran los principiantes es que entienden todo, desde leer libros o escuchar conferencias, pero aún no saben cómo programar. Esto se debe a que no hay suficiente práctica.
Al igual que cuando aprendemos a hablar en la infancia, primero imitamos la pronunciación de nuestros padres y luego aprendemos gradualmente a expresar nuestras propias ideas. Lo mismo es cierto para aprender a programar. Cuando lea este tutorial, debe escribir el código imitando el ejemplo. No tenga miedo de los problemas, no piense que es demasiado simple. La puntuación china sigue siendo la puntuación inglesa, como grande como la relación lógica entre oraciones. Por supuesto, después de que descubras que el programa que escribiste por ti mismo se ejecuta correctamente, también sentirás una gran alegría. ¡Puedes usar el programa para calcular problemas matemáticos! ¡Puedes realizar pequeñas funciones! Te guiaré paso a paso para completar cada práctica. , hasta que tengas la capacidad de romper con la imitación y empezar a crear.
Por lo tanto, debe abrir lDE mientras lee y escribir el código mientras mira. Si encuentra problemas en el paso de instalar el entorno, vuelva al capítulo anterior para leer.
Si estás listo, ven conmigo.

3.2 Variables

En pocas palabras, una variable es la unidad de almacenamiento más básica en la programación, y una variable almacena temporalmente lo que pones en ella.
"La guía del autoestopista galáctico" dice que la respuesta definitiva a la vida, el universo y todo es 421. Si se expresa en un lenguaje de programación, es la siguiente ecuación. A una variable llamada "respuesta" se le asigna el valor 42. Así como todo el mundo tiene un nombre, el nombre de una variable se denomina identificador.
inserte la descripción de la imagen aquí
Ahora intentemos asignar valores a las variables. Para completar este paso de la manera más simple, los usuarios de Windows deben abrir la línea de comando e ingresar Python y presionar Enter, los usuarios de Mac abren la terminal e ingresan Python3 y presionan Enter, luego ingresan el código en el cuadro rojo en la figura a continuación para asignar valores a las 4 variables respectivamente. Intente ingresar a nuevamente y presione Entrar, verá el resultado de la asignación, y luego ingrese b, c, d para ver los valores correspondientes. Cabe señalar que Python distingue entre mayúsculas y minúsculas, "a" y "A" serán dos variables diferentes, no la misma.
De esta manera, aprende a nombrar variables y siempre se les llama.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
La función de impresión es la más utilizada en Python. Como sugiere el nombre, ahora simplemente entendemos que la función de imprimir() muestra los resultados impresos. El método de uso es poner el objeto que desea imprimir y ver los resultados entre paréntesis, y eso es todo. (Si su impresión se puede usar sin corchetes, verifique su versión de Python. Para facilitar una comprensión rápida de los conceptos de programación y evitar desvíos, todos los siguientes ejemplos se implementarán con Python 3.x) Si usa la línea de comando o terminal para ingresar directamente
print(a), obtendrá el resultado como se muestra a continuación. Esto se debe a que te perdiste la asignación de la variable, Python no puede imprimir objetos que no existen.
inserte la descripción de la imagen aquí
En el estudio futuro, todavía tenemos muchas cosas para "imprimir", y necesitamos saber qué se imprimirá. Incluso si la variable es el conocimiento básico más fácil de entender, no la nombre arbitrariamente por simplicidad, y debe mantener la legibilidad de Python.
Eche un vistazo al siguiente código, incluso si no conoce algunos de los detalles ahora, después de leerlo, probablemente pueda adivinar lo que hace este código, ¿verdad?

file = open('/Users/yourname/Desktop/file.txt','w') file.write('hello world!')

Dado que este es el primer fragmento de código que ha escrito, diré algunas palabras más aquí. En primer lugar, debe prestar atención a los problemas gramaticales, usar signos de puntuación en inglés, no cometer errores en mayúsculas y minúsculas y no tener menos espacios. En segundo lugar, preste atención al problema de la ruta del archivo. No necesita tener el archivo.txt en su escritorio, pero necesita saber cuál es la ruta del archivo del escritorio en su computadora y luego reemplazarlo /Users/yourname/Desktop/. La forma de ver la ruta del archivo es que el usuario de Windows abra un archivo en el escritorio con el explorador para ver la ruta. Los usuarios de Mac abren la terminal y luego arrastran un archivo en el escritorio para ver la ruta.
Este código abre el archivo le.txt en el escritorio y escribe Hello World↓w significa que si hay un archivo le.txt en el escritorio, directamente escribirá hola mundo, si no hay un archivo le.txt, será Cree un archivo como este.
Hay muchos códigos y tutoriales en Internet, pero si no logra comprender lo que significa este código de un vistazo, más de la mitad de ellos son confusiones causadas por nombres de variables poco claros. Por lo tanto, en los tutoriales subsiguientes, incluso si es muy detallado, usaré métodos de nomenclatura claros para garantizar que incluso las personas sin conocimientos informáticos puedan entender el código.
Para mantener un buen hábito de nombres, debe usar nombres en inglés tanto como sea posible. También puede memorizar palabras mientras aprende a programar. ¿No mataría dos pájaros de un tiro? Después de un tiempo, descubrirá que se pueden leer tutoriales en inglés. suavemente.
Aprenda mucho aquí primero, y más adelante se presentarán introducciones más detalladas.

Lecturas adicionales:
Nomenclatura de Hump https://zh.wikipedia.org/wiki/Nomenclatura de Pascal al estilo de Hump
https://zh.wikipedia.org/wiki/Nomenclatura de Pascal

3.3 Cuerdas

cual es la cadena

Ya hemos tocado la cuerda de arriba, muy simple, la cuerda es...
inserte la descripción de la imagen aquí

3.3.1 Uso básico de cadenas

Ahora tratemos de comprender algunos usos básicos de las cadenas: la fusión. Ingrese el siguiente código en su GCD (es decir, el Ky:harm recomendado anteriormente), el código no se puede ejecutar automáticamente en GCD, por lo que debemos hacer clic manualmente para ejecutar, el método es hacer clic con el botón derecho y seleccionar "Ejecutar". file name'" para ejecutar el código.

what_he_does = ' plays ' his_instrument = 'guitar' his_name = 'Robert Johnson'
artist_intro = his_name + what_he_does + his_instrument

print(artist_intro)

Encontrará que la salida es así:
inserte la descripción de la imagen aquí
Tal vez lo encuentre aburrido, pero de hecho este código más la interfaz es como la imagen a continuación, similar a lo que ve a menudo en el reproductor de música. Robert Johnson es un famoso guitarrista de blues estadounidense, conocido como la persona que intercambió almas con el diablo.
Tal vez haya notado que cuando hablamos sobre las variables arriba, algunas variables se asignaron en diferentes formas. Intentemos esto ahora en lDE:

num = 1
string = '1'

print(num + string)

Definitivamente obtendrá los siguientes resultados, la razón es que la cadena (cadena) es solo un tipo de datos en Python, otro tipo de datos se llama entero (entero) y no se pueden combinar diferentes tipos de datos, pero hay algunas formas de obtener el conversión.
inserte la descripción de la imagen aquí
Por cierto, si no sabe de qué tipo es la variable, puede usar la función type() para verificar el tipo. Demostrado de la siguiente manera. Además, debido a que los comentarios en chino causarán errores, debe agregar una línea de comentarios mágicos al comienzo del archivo #coding:utf-8, o puede encontrar "Codificaciones de archivo" en la configuración y establecerlo en UTF-8.

print(type(word)) #IDE中

A continuación, vamos a convertir el tipo de datos de datos. Necesitamos almacenar la cadena convertida en otra variable, intente escribir esto:


num = 1
string = '1'
num2 = int(string)

print(num + num2)

Después de convertirse en el mismo tipo, las dos variables se pueden fusionar.
Hagamos algo más interesante. Ya que se pueden agregar cadenas, ¡por supuesto que es posible multiplicar las cadenas por 2! Ingrese el código:

words = 'words' * 3 print(words)

wordswordswords

Ok, ahora tratamos de resolver un problema más complicado:

word = 'a loooooong word' num = 12
string = 'bang!'
total = string * (len(word) - num) #等价于字符串'bang!'*4 print(total)

En este punto, dominas el uso más básico de las cadenas, ¡Bang!

3.3.2 Fragmentación e indexación de cadenas

Las cadenas se pueden indexar y dividir por cadena [x], es decir, agregar un []. String slice (segmento) en realidad puede verse como averiguar lo que desea interceptar de la cadena, copiar una sección corta de la longitud que desea y almacenarla en otro lugar sin modificar el archivo de origen del cambio de cadena. Cada cadena obtenida mediante fragmentación se puede considerar como una copia de la cadena original.
Echemos un vistazo al código de abajo. Si está confundido y no tiene idea de algunos números inexplicables detrás de la variable de cadena, es posible que desee analizarlo en la tabla debajo del código.
inserte la descripción de la imagen aquí
OK, ahora tratamos de resolver un problema más complicado, hagamos un pequeño juego de palabras llamado - "busca al diablo entre tus amigos" . Introduzca el código:

word = 'friends' find_the_evil_in_your_friends = \
word[0]+word[2:4]+word[-3:-1] print(find_the_evil_in_your_friends)

Nota: Puede usar (' para envolver el segmento de código si es demasiado largo. El código que pertenece a una línea también tendrá una sangría para representar una línea. Si está en lDE, simplemente presione "enter" para envolver automáticamente el línea, que es muy conveniente!

inserte la descripción de la imagen aquí

3.3.3 Métodos de cadena

Pvthon es un lenguaje de programación orientado a objetos, y los objetos tienen varias funciones y características, que se denominan
métodos yy (Método) en términos profesionales. Para facilitar la comprensión, asumimos que el automóvil en la vida cotidiana es un "objeto", es decir,
un automóvil. Entonces, como todos sabemos, los automóviles tienen muchas características y funciones, entre las cuales, "abrir" es una función importante del automóvil, por lo que el objeto del automóvil usa la función de -abrir, podemos expresarlo así en la programación de PVthon:car.driⅤe()

inserte la descripción de la imagen aquí
Después de comprender los métodos de los objetos, veamos ese escenario. Muchas veces utiliza su número de teléfono móvil para registrar la información de la cuenta en el sitio web. Para garantizar la seguridad de la información del usuario, generalmente solo se mostrarán los últimos cuatro dígitos de la información de la cuenta, y el resto se reemplazará por "* ". Intentamos usar el método de cadena para completar esta función
inserte la descripción de la imagen aquí
Ingrese el código:

phone_number = '1386-666-0006'
hiding_number = phone_number.replace(phone_number[:9],'*' * 9) print(hiding_number)

Entre ellos, usamos un nuevo método de cadena replace()para "sombrear". En los paréntesis del método replace, la primera phone_number[:9]parte representa la parte que se reemplazará y la última '*'*9representa qué carácter se reemplazará, es decir, se multiplica por 9 para mostrar 9 caracteres .
Obtendrá algo como esto. :*********0006
Ahora intentemos resolver un problema más complicado, para simular la función de asociación de números de teléfono
inserte la descripción de la imagen aquí
en la libreta de direcciones del teléfono . Ingrese el código:

search = '168'
num_a = '1386-168-0006'
num_b = '1681-222-0006'

print(search + ' is at ' + str(num_a.find(search)) + ' to '+ str(num_a.find(search) + len(search)) + ' of num_a') print(search + ' is at ' + str(num_b.find(search)) + ' to '+ str(num_b.find(search) + len(search)) + ' of num_b')

Obtendrá un resultado como este, que representa todos los números móviles que contienen 168
inserte la descripción de la imagen aquí

3.3.4 Formateadores de cadenas

inserte la descripción de la imagen aquí
Este tipo de relleno de los espacios en blanco nos impresionará. Cuando hay múltiples "espacios en blanco" en la cadena que deben completarse, podemos usar .format() para el procesamiento por lotes. Sus métodos básicos de uso son los siguientes. Ingrese el código:

print('{} a word she can get what she {} for.'.format('With','came'))
print('{preposition} a word she can get what she {verb} for'.format(preposition = 'With',verb = 'came')) print('{0} a word she can get what she {1} for.'.format('With','came'))

Este método de llenado de cadenas es ampliamente utilizado. Por ejemplo, el siguiente código puede completar los datos de la ciudad en blanco en la URL:

city = input("write down the name of city:")
url = "http://apistore.baidu.com/microservice/weather?citypinyin={}".format(city)

Nota: este es un fragmento de código para desarrollar complementos meteorológicos del lado del cliente utilizando la API meteorológica proporcionada por Baidu

Bueno, aquí has ​​dominado los conceptos básicos y los métodos comunes de variables y cadenas. En el siguiente paso, continuaremos aprendiendo más sobre bucles y funciones.

Capítulo 4 La función mágica más básica

4.1 Re-reconociendo funciones

No hablemos de la definición de la función en Python, porque poner la definición en el primer lugar del capítulo es obviamente una forma de ser demasiado perezoso para explicar las cosas claramente, creo que tienes una comprensión profunda de esto al leer otros libros de texto. Entonces, lo que quiero decir es que después de leer y entrenar en el primer capítulo, ya has dominado el uso de funciones: no es
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
difícil descubrir observando las reglas que el llamado uso de funciones en Python es poner el objeto con el que desea tratar en un nombre entre paréntesis después de eso. En pocas palabras, la función se usa de esta manera, puede rellenar cosas para obtener el resultado del procesamiento. Todavía hay tales funciones en Python:
inserte la descripción de la imagen aquí
tomando la última versión 3.50 como ejemplo, hay 68 funciones de este tipo en total, y se denominan colectivamente funciones integradas (Built_in Functions). La razón por la que se llama función integrada no es porque todavía existe el concepto de "función integrada externa". La función integrada significa que puede usar estas funciones después de que se complete la instalación de la versión 3.50, y son "autónomos". No se confunda con estos términos, como aprenderemos más adelante, veremos más términos similares, pero en realidad son solo conceptos muy simples. Después de todo, en un campo profesional, los términos profesionales se usan a menudo para expresar de manera precisa y eficiente. el término
Ahora no tiene que apresurarse a entender cómo se usan estas funciones. Algunas de las funciones integradas son muy útiles, pero otras no se usan comúnmente, como las funciones que implican la codificación de caracteres ascii(), bin(), chr( ), etc. Espere, estas son funciones que solo se usan en el diseño de programación de nivel relativamente bajo, y solo serán útiles cuando profundice en un cierto nivel.
Adjunte un enlace a la introducción de cada función en el sitio web oficial de Python: https://docs.Python.org/3/library/functions.html
Si está interesado en obtener más información, puede echar un vistazo .

4.2 Empezar a crear funciones

Necesitamos aprender a usar funciones existentes, y necesitamos aprender a crear nuevas funciones. El número de funciones integradas es limitado. Si desea que Python nos ayude a hacer más cosas, debe diseñar funciones que satisfagan sus necesidades. Crear una función también es muy simple, de hecho, ya dominamos su principio en la clase de secundaria hace muchos años.
Primero intente ingresar al entorno de Python en la línea de comando/terminal e ingrese una fórmula de este tipo:
inserte la descripción de la imagen aquí
parece un poco familiar, la primera es una fórmula de cálculo trapezoidal matemática y la segunda es una fórmula de conversión física para Celsius y Fahrenheit.
inserte la descripción de la imagen aquí
Las funciones son la magia más básica de la programación, pero al mismo tiempo toda la complejidad está implícita. Su principio es similar a la fórmula matemática que aprendemos, pero no es exactamente igual, sabrás por qué lo digo más adelante. Aquí hay algunas palabras comunes:

  • El significado de def (es decir, de'ne, definición) es crear una función, es decir, definir una función.
  • El número de argumento es argumento, parámetro (a veces aún puede ver esta redacción: parámetro, los cuales significan parámetros pero son ligeramente diferentes, por lo que no entraré en detalles aquí.
  • return devuelve el resultado.
    Ok, ahora leamos el mantra: De'ne una función llamada 'function que tiene dos argumentos: arg1 y arg2, devuelve el resultado——'Algo ¿Es fácil de leer y suave? La expresión del código es más concisa que la Oración en inglés Un punto:
    inserte la descripción de la imagen aquí
    Cabe señalar que:
  • def y return son palabras clave, y Python
    se basa en identificar estas palabras clave específicas para comprender las intenciones del usuario y realizar una programación más compleja. Hay algunas palabras clave como esta, que explicaremos en detalle en los siguientes capítulos;
  • Los dos puntos detrás del corchete de cierre son esenciales, y vale la pena señalar que debe usar el método de entrada en inglés para ingresar, de lo contrario, es una gramática incorrecta. Si ingresa dos puntos y corchetes chinos en lDE, habrá tal error mensaje:
    inserte la descripción de la imagen aquí
  • Si ingresa un retorno de carro (salto de línea) después de los dos puntos en lDE, obtendrá automáticamente una sangría. La declaración detrás de la sangría de la función se llama bloque de declaración (block). La sangría es para indicar la afiliación entre la declaración y la lógica. Es una de las características más destacadas de Python. Algunos lenguajes usan llaves para indicar la afiliación, que reduce en gran medida Mejora la legibilidad del código, por lo que apreciar la vida comienza con la sangría.

Ahora echemos un vistazo a la fórmula de conversión Celsius mencionada anteriormente e impleméntela de acuerdo con el método de definición de la función anterior. Definimos la conversión de Celsius como la función e_grcngcit Convcrtcr(), luego la entrada debe ser el valor de Celsius (CcIsius), establecemos C como parámetro, y finalmente devolvemos el valor de Fahrenheit (e_grcngcit), usamos la siguiente función Para expresar, ingrese el código:

def fahrenheit_converter(C): 
fahrenheit = C * 9/5 + 32 
return str(fahrenheit) + '˚F'

Nota: el tipo de resultado del cálculo es int, que no se puede combinar con la cadena "oF", por lo que primero debe convertirse con la función str()

Después de ingresar el código anterior, la definición de la función está completa, luego comenzamos a usarla. Llamamos al comportamiento de usar una función "llamar" (a_II), simplemente puede entender que le pide a Pytgon que haga algo por usted, al igual que la función Icn() que aprendimos antes: "Por favor, ayúdenme a medir la longitud de esto ( objeto) e imprima el resultado".

lyric_length = len('I Cry Out For Magic!')
print(lyric_length)

Al igual que usamos la función Icn(), el siguiente código significa: "Utilice el convertidor Celsius para convertir 35 grados Celsius a Fahrenheit, almacene el resultado en una variable llamada C2F e imprímalo". se llama y se imprime el resultado.

C2F = fahrenheit_converter(35)
print(C2F)

El resultado correspondiente debe ser 95.0oF. Puede encontrar un convertidor Celsius para calcularlo. El siguiente es el resultado del cálculo de SpotIifgt que viene con M_a. Ya entendió la definición
inserte la descripción de la imagen aquí
y el uso básico de la función aquí. Ha sido un largo tiempo Usted sabe que el contenido anterior es básicamente suficiente, pero para no causar confusión y dificultad cuando usa las funciones en profundidad, intentemos resolver un problema más complicado.
Modificamos la función anterior de la siguiente manera:

def fahrenheit_converter(C): 
fahrenheit = C * 9/5 + 32 
print(str(fahrenheit) + '˚F')

¿Qué tal? Se parece, ¿verdad? Así es, simplemente reemplazamos el retorno en la última línea con una función de impresión, un pequeño cambio, y parece que el IDE no reportó una advertencia de error para la sintaxis, así que probemos qué sucede al llamar a la función:

C2F = fahrenheit_converter(35)
print(C2F)

El resultado de ejecutarlo es este: ¿
inserte la descripción de la imagen aquí
por qué sucede esto?
De hecho, tal resultado se obtiene porque print es una función, no una palabra clave (si su impresión no es una función, significa que su versión todavía está en la serie 2.x, así que apúrese e instale una versión superior a la 3.0 ahora) !). Si es lo suficientemente cuidadoso, puede encontrarlo en mi IDE, aunque imprimir y regresar son azules, en realidad son diferentes: uno es normal y el otro está en cursiva. return como palabra clave juega el papel de valor devuelto en la función, e print, como sugiere el nombre, simplemente nos muestra el resultado impreso en la función, que es una función diseñada para seres humanos . Por lo tanto, el 95.0oF anterior es en realidad el valor generado después de llamar a la función , y el siguiente Ninguno es el valor devuelto en la variable C2F en este momento; nada, porque no hay retorno de palabra clave. Es como si gritaras su nombre (llamar) a una persona, y él solo respondiera con "oye", porque no le dijiste qué hacer (regresar).
No importa si no hay retorno, no significa que sea inútil. El retorno es opcional en Python, lo que significa que puede definir una función y usarla sin problemas sin escribir retorno, pero el valor de retorno es 'Ninguno'. También podemos ver las funciones de diferentes maneras más adelante, aquí solo necesitamos recordar la configuración básica de las funciones.
Como mencionamos antes, def (de"ne) se usa para definir una función. Al mismo tiempo, también podemos ver la palabra declarar (declarar) en las traducciones de diferentes versiones de varios libros de texto. No es difícil para nosotros especulan que por el propósito de la expresión Say son lo mismo, pero para las personas con otras bases lingüísticas, estas dos palabras significan dos comportamientos diferentes. De hecho, no importa. En Python, la definición y la declaración son uno, y la explicación aquí es solo para responder. Las personas que tienen esta confusión no tienen intención de profundizar en ella.

4.3 Pasar parámetros y tipos de parámetros

Hablamos mucho sobre la definición y el uso de funciones antes, y en esta sección hablamos sobre algunos detalles pero los parámetros importantes. Para la función que establece los parámetros necesarios al principio, escribimos el nombre de la función y pasamos los parámetros entre paréntesis para realizar la llamada a la función (b_II), simplemente coloque los parámetros entre paréntesis de la función, al igual que Es así:

fahrenheit_converter(35) 
fahrenheit_converter(15) 
fahrenheit_converter(0)
fahrenheit_converter(-3)

De hecho, hay dos formas de pasar parámetros:
inserte la descripción de la imagen aquí
ahora comience con la fórmula matemática del trapezoide que parece haber sido olvidada por nosotros, y primero cree una función.
Establecemos el nombre de la función como tr_ pd zo ic _ rd _, es decir, el área del trapecio, y establecemos los parámetros como a_sd up (superior inferior), a_sd crown (inferior inferior), hdieht (alto) cada uno usando el método de entrada en inglés separados por comas. El área del trapezoide necesita conocer estos tres valores antes de poder obtenerse, por lo tanto, para la construcción de la función de área trapezoidal, estos tres parámetros son indispensables.


def trapezoid_area(base_up, base_down, height): 
return 1/2 * (base_up + base_down) * height

A continuación, comenzamos a llamar funciones.


trapezoid_area(1,2,3)

No es difícil ver que los parámetros llenos l, 2 y 3 corresponden a los parámetros a_sd up, a_sd crown y hdieht respectivamente. Esta forma de pasar parámetros se llama parámetro posicional .
Luego está la segunda forma de pasar:


trapezoid_area(base_up=1, base_down=2,	height=3)

De forma más intuitiva, al llamar a la función, asignamos a cada parámetro el nombre de un valor que queremos pasar. Esta forma de pasar el nombre como el parámetro correspondiente se denomina parámetro de palabra clave .
Piense: quiero ir al proceso de reserva de restaurante y comedor, encontrar el asiento que reservó, generalmente use el nombre que dejó, usted es un parámetro, será transferido al asiento que reservó de acuerdo con el nombre, este es el palabra clave Se pasan los parámetros, el siguiente paso es servir los platos, y los platos se pasan a su mesa según su número de asiento, lo que equivale a pasar los parámetros de posición.
Tal vez no entienda muy bien la función de este método de transferencia, no importa, lo explicaremos con otros conocimientos más adelante, y luego tendrá un mayor nivel de comprensión de la transferencia de parámetros.
La mejor manera de evitar confusiones es crear caos primero. Intentemos resolver un problema más complicado. Llame a la función e imprima el resultado de las siguientes maneras
inserte la descripción de la imagen aquí

  • Los parámetros de función en la primera línea se pasan en orden inverso, porque son parámetros de palabra clave, por lo que no afecta el funcionamiento normal de la función;
  • Los parámetros de la función en la segunda línea se pasan en orden inverso, pero el tercero se convierte en un parámetro posicional. Desafortunadamente, este método tiene una sintaxis incorrecta, porque si se pasa de acuerdo con la posición, el último debería ser el parámetro altura Ubicación . Pero la altura anterior ha pasado en el valor 3 según el nombre, por lo que es un conflicto.
  • Los parámetros de la función en la tercera línea se pasan en orden, los dos primeros se pasan como palabras clave y el último se pasa como parámetros posicionales.Esta función puede ejecutarse normalmente;
  • Los parámetros de la función en la cuarta línea se pasan en orden, los dos primeros se pasan por posición y el último se pasa como un parámetro de palabra clave. Esta función puede ejecutarse normalmente.

Nota: El resultado de la operación correcta debe ser 4,5, que es el área de este trapezoide.

Ahora asignamos valores a un conjunto de variables antes de llamar a la función:

base_up = 1
base_down = 2
height = 3

trapezoid_area(height, base_down, base_up)

Sin embargo, el resultado de esta llamada de función debería ser 2.5, ¿por qué es 2?
Si tiene tal confusión, significa que se ha confundido con el nombre de los parámetros y el nombre de las variables. Hagamos una distinción clara entre los dos. En primer lugar, cuando definamos la función, definiremos el nombre del parámetro, su función principal es ayudarnos a guiarnos en qué parámetros pasaremos al usar la función, de dónde vienen, de qué tipo, etc. y proporciona contexto relacionado con el uso de la función. El siguiente fragmento de código puede ayudarlo a comprender la confusión de las funciones de los nombres de los parámetros:

def flashlight (battery1, battery2): 
return 'Light!'

Definimos una función llamada linterna (nashlight), que toma dos parámetros batería1 y batería2, es decir, la batería. En este momento, vas a la tienda a comprar baterías y vuelves a comprar dos baterías Nanfu de 600 mAh, así que:

nanfu1 = 600
nanfu2 = 600

flashlight(nanfu1, nanfu2)

¿lo entiendes? Nanfu es un tipo de batería, que puede hacer que la linterna brille. Poner la batería Nanfu significa que ponemos la batería requerida por la linterna. En otras palabras, nanfu1 y nanfu2 son variables, y también pueden transmitir los parámetros. de la función nashlight de la función importada reemplaza la batería original 1 y la batería 2 después de pasar, y la forma de pasar sigue siendo el paso de parámetros posicionales. batería1 y batería2 son solo marcadores de posición formales, lo que significa que los parámetros requeridos por la función deben ser variables u objetos relacionados con la batería.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
La magia que ve es a lo que nos referiremos como el parámetro mágico predeterminado. El parámetro predeterminado es opcional, lo que significa que incluso si no le pasa nada, la función seguirá funcionando normalmente.
Solo necesitas ingresar el código así:

def trapezoid_area(base_up, base_down, height=3): 
return 1/2 * (base_up + base_down) * height

Es muy simple establecer un valor predeterminado para un parámetro, solo necesitamos asignar un valor al parámetro al definir el parámetro . Esto puede ser un poco similar a la forma de pasar parámetros, ¡pero no lo olvides! ¡Esto es lo que haces cuando lo defines! De esta manera, solo necesitamos pasar dos parámetros para proceder normalmente:

trapezoid_area(1, 2)

Debe preguntarse, si establece el valor predeterminado, ¿no se fijaría la altura de todos los trapecios en 3? 2 Sin embargo, no lo es. La idea del valor predeterminado es hacer que el uso de funciones sea lo más simple y laborioso posible. ahorro posible. Así como instalamos el software, habrá un directorio predeterminado, pero si desea instalarlo en otro lugar, puede optar por personalizarlo. El truco de la función de impresión visto antes es exactamente el mismo. El parámetro opcional sep of print (lo que significa que cada resultado impreso está separado por.) tiene un valor predeterminado de ' 'espacio, pero lo volvemos a pasar a '/n'. , el significado de nueva línea, en una palabra, es dividir cada número impreso con un símbolo de nueva línea. Llamemos a nuestros propios parámetros:

trapezoid_area(1, 2, height=15)

Simplemente pase el valor que queremos, es así de simple.
El valor predeterminado no es un conocimiento necesario para que domines el uso de parámetros, pero es un pequeño truco que puede ayudarnos a ahorrar tiempo. Esto se ve a menudo en proyectos reales:

requests.get(url, headers=header)

Nota: Este es el encabezado al solicitar el sitio web, se puede llenar o no

img.save(img_new, img_format, quality=100)

Nota: esto es cuando se agrega una marca de agua a la imagen, la calidad predeterminada de la marca de agua es 100

4.4 Diseña tus propias funciones

En este punto, deberíamos poder diseñar con confianza una función que satisfaga las necesidades de nuestro proyecto. Integraremos todo el conocimiento anterior para diseñar un filtro de palabras sensibles simple, pero antes de eso, conozcamos: una nueva función abierta una por una. .
Esta función es muy simple de usar, y solo necesita pasar dos parámetros para ejecutarse normalmente: la ruta completa y el nombre del archivo, y la forma de abrirlo.
Primero cree un archivo llamado text.txt en el escritorio. Los usuarios de Windows pueden hacer clic derecho en el escritorio para abrir el menú para crear, y los usuarios de Mac pueden abrir Pages para crear un archivo, hacer clic en el formato de exportación y seleccionar el formato txt. Ahora lo abrimos usando la función open:

open('/Users/Hou/Desktop/text.txt')	

Si eres usuario de Windows, debes escribir tu ruta así:

open('C://Users/Hou/Desktop/')	

Si escribe el código, el archivo debería haberse abierto en este momento, pero... Parece que no podemos verlo, así que conozcamos un nuevo método: escribir. En el capítulo uno, hemos mencionado cómo usar métodos (si está confundido acerca de la relación entre funciones y métodos, para proceder sin problemas, puedo decirle que los métodos son un tipo de función, pero en diferentes posiciones Eso es todo, el el principio de uso es muy similar a la función), aquí copiamos el uso de reemplazo en el Capítulo 3 para aprender a usar el método de escritura:

file = open('/Users/Hou/Desktop/text.txt','w')
file.write('Hello World')

Después de escribir, ejecutemos el programa para ver el efecto:
inserte la descripción de la imagen aquí
Después de dominar el uso básico de opdn y writd, podemos comenzar a diseñar la función. El requisito es este: pase los parámetros n, md y mse para controlar lo que está escrito el escritorio La función del nombre del archivo y el contenido es tdXt ard-td, y si no hay tal archivo grabable en el escritorio, entonces es necesario crear uno y escribirlo más tarde. Ahora hagámoslo ↓

1.def text_create(name, msg):
2.desktop_path = '/Users/Hou/Desktop/'
3.full_path = desktop_path + name + '.txt'
4.file = open(full_path,'w')
5.file.write(msg)
6.file.close()
7.print('Done')
8.text_create('hello','hello world') # 调用函数

Expliquemos este código línea por línea.
La primera línea: define el nombre y los parámetros de la función;
la segunda línea: sabemos desde el principio que la función opdn necesita abrir una ruta completa, por lo que la primera es la ruta del escritorio; la
tercera línea: qué nombre le damos el archivo, es para El parámetro de entrada más la ruta del escritorio más el sufijo es la ruta completa del archivo;
la cuarta línea: abra el archivo, 'w'el parámetro representa el modo de escritura, lo que significa: si no hay nadie, cree un text con el nombre en la ruta, si lo hay, agregue el contenido de texto sobrescrito;
la quinta línea: escriba el parámetro entrante mse, es decir, el contenido; la sexta línea: cierre el texto.
De esta manera, hemos completado la primera parte del filtro de palabras confidenciales. Por cierto, esta función es la función que mencionamos anteriormente que no necesita rdtUrn para funcionar. La última impresión es solo para mostrar que todas las declaraciones anteriores se han ejecutado, solo un recordatorio. A continuación, implementamos la segunda parte, el filtrado de palabras confidenciales. Los requisitos son los siguientes: defina una función como función tdXt a Itdr, pase los parámetros worc, adnaordc worc y ah-nedc worc para lograr el filtrado, la palabra confidencial adnaordc worc tiene como valor predeterminado ' I-md', la palabra de reemplazo
ah-nedc worc por defecto es 'Awdsomd'. Ahora continúa:

def text_filter(word,censored_word = 'lame',changed_word = 'Awesome'): return word.replace(censored_word, changed_word)
text_filter('Python is lame!')	# 调用函数

Esta función es mucho más simple, en la primera línea, definimos la función configurando los parámetros predeterminados, y en la segunda línea, devolvemos directamente el resultado procesado por rdpI-ad. Ahora que las dos funciones se han completado, de acuerdo con el principio de bajo riesgo, puede intentar llamar a la siguiente función para ver el resultado de retorno.
Ahora tratamos de resolver un problema más complicado combinando las dos funciones: crear una función llamada creación de texto censurado, la función es crear un texto en el escritorio donde se puede ingresar texto, pero si la información contiene palabras confidenciales, se filtrará por predeterminado y escrito en el archivo. Entre ellos, el parámetro de nombre de archivo del texto es n_me, y el parámetro de información es msg. Puede intentar escribirlo usted mismo primero y luego compararlo después de escribir:

def censored_text_create(name, msg): clean_msg = text_filter(msg) text_create(name,clean_msg)
censored_text_create('Try','lame!lame!lame!') # 调用函数

Usamos la primera función para filtrar el mensaje entrante y almacenarlo en una variable llamada cle_n msg, y luego pasamos el parámetro de nombre de archivo n_me y el texto filtrado cle_n msg como parámetros. En la creación de texto de la función, obtendremos el texto filtrado como un resultado.
Cuando hayas terminado, ¡tienes un filtro de texto!
En este capítulo solo he usado las matemáticas para ilustrar cómo funciona la función, pero si realmente necesitas resolver muchos problemas matemáticos, aquí hay una referencia básica para ti. Forma, en cuanto a cómo usarlo, solo pruébalo. Debes atreverte a intentarlo, después de todo, la computadora no explotará por una línea de tu código.
inserte la descripción de la imagen aquí

Capítulo 5 Ciclo y Juicio

5.1 Control lógico y lazo

5.1.1 Juicio Lógico - Verdadero y Falso

El juicio lógico es la parte más interesante del lenguaje de programación.Si desea realizar una función o programa complejo, el juicio lógico es esencial. La estructura if-else es un método de control lógico común. Cuando escribes una declaración de este tipo, significa que le dices a la computadora cuándo hacerlo o qué no hacer. Después de aprender el contenido de los capítulos anteriores, es posible que ya se esté preparando para el control lógico y esté ansioso por probarlo, pero antes de eso, debemos comprender el criterio más básico del juicio lógico: el tipo booleano.
Antes de comenzar, me gustaría enfatizar que si dudas de tu propia capacidad lógica y te sientes intimidado por el contenido de este capítulo, puedo decir con seguridad que nadie es "ilógico", tal como podemos hacerlo en la extremadamente compleja realidad. tome cualquier acción en el mundo, todo lo que necesita es algo de conocimiento y habilidad en el juicio.
Solo hay dos tipos de datos booleanos, Verdadero y Falso (tenga en cuenta que la primera letra está en mayúscula). Los humanos juzgan los hechos por su autenticidad, pero en el mundo de las computadoras, la autenticidad corresponde a 1 y 0.
A continuación, abrimos la línea de comando/terminal para ingresar al entorno de Python, escribir estos códigos o seleccionar directamente Python Console en PyCharm, lo que facilitará la visualización de los resultados. En esta sección de Verdadero y Falso, todos ingresamos el código en la línea de comando/entorno de terminal.

1>2
1<2<3
42 != '42'
'Name' == 'name' 'M' in 'Magic' 
number = 12
number is 12

inserte la descripción de la imagen aquí

Cada vez que ingresamos una línea de código, obtendremos el resultado inmediatamente. Las expresiones de estas líneas de código son diferentes, pero los resultados devueltos son solo dos tipos booleanos, True y FaIse, por lo que llamamos a cualquier expresión que pueda generar un valor booleano. valor una expresión booleana Fórmula (Boolean Expressions). inserte la descripción de la imagen aquí
Se puede ver que los métodos o fórmulas anteriores que pueden generar valores booleanos no son lo mismo, así que expliquemos el significado y el uso de estos símbolos de operación.

5.1.2 Operación de comparación (Comparación)

Para los operadores de comparación, como su nombre lo indica, si la comparación es verdadera, devuelve Verdadero, y si no lo es, devuelve Falso.
inserte la descripción de la imagen aquí
Además de algunos hechos matemáticamente obvios, las operaciones de comparación también admiten expresiones más complejas, como:
comparación de múltiples condiciones. Primero asigne un valor a la variable y compare el tamaño bajo múltiples condiciones:

middle = 5
1 < middle < 10

Comparación de variables. Almacena los resultados de dos operaciones en diferentes variables y compáralas:

two = 1 + 1
three = 1 + 3 two < three

Comparación de cadenas. De hecho, es para comparar si las cadenas en los lados izquierdo y derecho son completamente consistentes.El siguiente código es inconsistente porque hay una distinción estricta entre mayúsculas y minúsculas en Python:

'Eddie Van Helen' == 'eddie van helen'

Compare los resultados producidos por dos funciones: ambos lados del operador de comparación primero llamarán a la función y luego compararán, y el resultado es equivalente a 10 > 19:

abs(-10) > len('length of this word')

Nota: abs() es una función que devuelve el valor absoluto del argumento de entrada.

5.1.3 Algunos problemas menores en las operaciones de comparación

Los objetos de diferentes tipos no se pueden comparar usando "<, >, <=, >=", pero '= =' y '!=', como cadenas y números: Cabe señalar que aunque los puntos flotantes y los números enteros son tipos
inserte la descripción de la imagen aquí
diferentes , pero no afecta la operación de comparación: es
inserte la descripción de la imagen aquí
posible que tenga una pregunta, "¿Por qué 1 = 1 debe escribirse como 1 = = 1 2", como se mencionó anteriormente, los símbolos en Python son muy similares a los de las matemáticas en muchos lugares , pero no exactamente lo mismo. "=" representa la asignación en Python, no el familiar "igual". Entonces, "1 = 1" no funciona y no te devuelve un valor booleano. Usar la expresión "==" puede entenderse como expresar que los valores de dos objetos son iguales. Esta es una sintaxis convencional, solo recuérdala.
Se comparan cadenas, puntos flotantes y enteros.Todavía hay un tipo que no se ha comparado: el tipo booleano, así que experimentemos ahora:

True > False
True + False > False + False

¿Cómo entender tal resultado? 2 ¿Todavía recuerdas lo que dije antes, Verdadero y Falso son como 1 y 0 para la computadora, si escribes Verdadero + Verdadero + Falso en la línea de comando para verificar los resultados, no es difícil para encontrar que True = 1 , False = 0 Es decir, el código anterior es en realidad equivalente a:

1 > 0
1 + 0 > 0 + 0

En cuanto a por qué este es el caso, no lo analizamos, solo recuérdelo.
La última pequeña pregunta, no se sorprenda si ve una expresión como 1<>3 en otros libros de texto, en realidad es equivalente a 1!=3, solo conózcalo, para que no sepa "Cuatro formas de escribir hinojo" .

5.1.4 Operadores de membresía y operadores de identidad (Membresía & 1identify 0perators)

Las palabras clave para los operadores de pertenencia e identidad están en y es. El significado de poner entre dos objetos es probar si el primero existe en la colección después de entrar. Cuando se trata de colecciones, primero introduzcamos un tipo de colección simple y fácil de entender: lista (Lista).
Cadenas, flotantes, enteros, tipos booleanos, variables e incluso otra lista se pueden almacenar en una lista. Las listas son estructuras de datos muy útiles. Pasaremos más tiempo explicando el uso de las listas más adelante. Aquí hay una breve introducción. .
Crear una lista es como crear una variable, dándole un nombre:

album = []	

En este punto, la lista está vacía, solo ponemos algo en ella, creando así una lista no vacía:

album = ['Black Star','David Bowie',25,True]	

Todos los elementos de esta lista los guardamos al principio, luego, cuando se crea la lista, ¿qué debo hacer si quiero agregarle contenido nuevamente? 2 Use el método de agregar de la lista para agregar nuevos elementos a la lista. list, y use este método para agregar elementos de se ordenan automáticamente al final de la lista:

album.append('new song')	

Luego está el índice de la lista. Si ha dominado bien el índice de la cadena en los capítulos anteriores, creo que no debería ser difícil comprender el nuevo conocimiento. La función del siguiente código es imprimir el primer y último elemento de la lista:

print(album[0],album[-1])	

A continuación, usamos in para comprobar si la cadena 'Black Star' está en el álbum de lista. Si existe, mostrará True, si no existe, mostrará False:

'Black Star' in album	

¿Es muy simple?2 Como vimos antes, a in le sigue un objeto en forma de colección, y la cadena satisface las características de esta colección, por lo que puede usarse para probar.
A continuación, expliquemos is y is not, que son operadores booleanos que representan el operador de identificación, e in y not in son operadores booleanos que representan la relación de atribución (operador de membresía).
Cualquier objeto en Python debe cumplir con los tres puntos de identidad (Identidad), tipo (Tipo) y valor (Valor), que son indispensables. El símbolo del operador is se utiliza para comparar identidades. Intente ingresar este código:
inserte la descripción de la imagen aquí
encontrará que cuando las dos variables son consistentes, devolverá True después de la comparación.
De hecho, cualquier objeto en Pxthon puede juzgar su valor booleano, excepto ), Fone y todas las secuencias y colecciones vacías (listas, diccionarios, colecciones) cuyo valor booleano sea Balse, los demás son True, podemos usar la función bool( (para juez:

bool(0)	#False
bool([])	#False
bool('') #False 
bool(False) #False 
bool(None)  #False

Algunas personas pueden no entender por qué un objeto es igual a Fone. ¿Recuerda el ejemplo del filtro de palabras confidenciales en el capítulo de funciones? Todavía se puede usar sin escribir retorno al definir la función, pero si llama a la función e intenta almacenar el valor de retorno y inexistente en una variable, el resultado real de la asignación de la variable será Fone.
una variable, pero no sabe a qué valor debería ser igual, puede hacer esto:

a_thing = None

5.1.5 Operadores booleanos (<Operadores booleanos)

inserte la descripción de la imagen aquí
Y y o se usan a menudo para tratar con condiciones compuestas, similares a 0 3 n 3 1, es decir, dos condiciones se cumplen al mismo tiempo.

1 < 3 and  2 < 5	#True
1 < 3 and  2 > 5	#False 1 < 3 or  2 > 5	#True
1 > 3 or  2 > 5	#False

5.2 Control de condiciones

El control condicional es en realidad el uso de if...else. Primero observe la estructura básica del control condicional:
inserte la descripción de la imagen aquí

Línea 1: Defina la función, no se requieren parámetros; Línea 2: Utilice la entrada para obtener la cadena ingresada por el usuario y guárdela en la contraseña variable; Líneas 3 y 4: Establezca las condiciones, si la cadena ingresada por el usuario coincide con
la preestablecido Cuando las contraseñas 12345 y 12345 son iguales, imprima el texto 'Inicio de sesión exitoso 1';
líneas 5 y 6: por el contrario, todos los resultados de entrada que no sean iguales a la contraseña preestablecida imprimirán mensajes de error y llamarán a la función nuevamente para dejar el usuario ingrese la contraseña nuevamente; Línea 7: Ejecute la función.
Línea 8: Llamar a la función

Vale la pena mencionar que si la expresión booleana detrás de if es demasiado larga o difícil de entender, puede asignar un valor a una variable para almacenar el valor booleano Tr.e o FaIue devuelto por la expresión booleana. Por lo tanto, el código anterior se puede escribir de la siguiente manera:
inserte la descripción de la imagen aquí
en general, al diseñar un programa, es necesario considerar la integridad de la lógica y el diseño preventivo para situaciones que pueden causar problemas a los usuarios. En este momento, habrá múltiples juicios condicionales.
El juicio de condiciones múltiples también es muy simple, solo agregue eIif entre if y eIue, el uso es consistente con if. Y el juicio de las condiciones también se lleva a cabo secuencialmente. Primero, verifique si las condiciones son verdaderas. Si es verdadero, ejecute el siguiente código. Si no es verdadero, verifique si las siguientes condiciones son verdaderas. Si no es verdadero , ejecute la instrucción correspondiente a eIue.
inserte la descripción de la imagen aquí
A continuación, usamos la instrucción elif para agregar una función de restablecimiento de contraseña a la función que acabamos de diseñar:
inserte la descripción de la imagen aquí

Línea 1: Cree una lista para almacenar contraseñas de usuario, contraseñas iniciales y otros datos (simulación simplificada de la base de datos real); Línea 2: Defina
la función;
Línea 3: Use la entrada para obtener la cadena ingresada por el usuario y almacenarla en el contraseña variable;
Línea 4: cuando la contraseña ingresada por el usuario es igual al último elemento en la lista de contraseñas (es decir, la última contraseña establecida por el usuario), el inicio de sesión es exitoso; Líneas 5-9: cuando la contraseña
ingresada por el usuario es igual a la lista de contraseñas Cuando el primer elemento de la lista (es decir, la "contraseña" para restablecer la contraseña) activa el cambio de contraseña y guarda la contraseña modificada en la última de la lista, convirtiéndose en la última contraseña de usuario; línea 10: por el contrario, todo no es igual al
preestablecido Configure el resultado de entrada de la contraseña, todo se ejecutará para imprimir mensajes de error y vuelva a llamar a la función para permitir que el usuario ingrese la contraseña nuevamente; línea
11 : llamar a la función.
En el código anterior, puede ver claramente el bloque de código (Bloque de código). La generación de bloques de código se debe a la sangría, es decir, los códigos con la misma cantidad de sangría en realidad trabajan juntos para lograr el mismo nivel de cosas, que es un poco como listas de tareas en diferentes niveles cuando se editan documentos.

5.3 Bucle

5.3.1 El bucle for

Primero veamos un ejemplo, ingrese el código:

for every_letter in 'Hello world': 
print(every_letter)

inserte la descripción de la imagen aquí
Para entender el bucle for más profundamente, trate de pensar en esta pregunta, ¿cómo imprimir el resultado de esta manera?
inserte la descripción de la imagen aquí

songslist = ['Holy Diver', 'Thunderstruck', 'Rebel Rebel']
for song in songslist:
if song == 'Holy Diver': 
print(song,' - Dio')
elif song == 'Thunderstruck':
print(song,' - AC/DC')
elif song == 'Rebel Rebel': 
print(song,' - David Bowie')

En el código anterior, cada elemento de la lista de canciones se extrae uno por uno y se compara con las tres condiciones, y si es cierto, se muestra el contenido correspondiente.

5.3.2 Bucles anidados

También existe un bucle común en programación, que se llama bucle anidado (Nested Loop), de hecho, este tipo de bucle no es complicado y es muy práctico. Todos hemos aprendido la tabla de multiplicar, también conocida como la "tabla del nueve-nueve", y luego la implementaremos con bucles anidados:
inserte la descripción de la imagen aquí

5.3.3 bucle while

Hay dos tipos de bucles en Python, el primero es un bucle for que ya hemos presentado, y el segundo es un bucle whiIe. Lo mismo es que pueden hacer una cosa repetitiva en un bucle, la diferencia es que el bucle for se detendrá cuando se agote la secuencia iterable, y whie se detendrá cuando la condición no sea verdadera, por lo que la función de whie se puede resumir en una frase Es decir: mientras se cumplan las...condiciones, seguir haciendo... .
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
Además, otra forma de detener el bucle while es cambiar la condición que hace que el bucle sea verdadero . Para explicar este ejemplo, lo implementamos sobre la base de la función de inicio de sesión anterior y agregamos una nueva función a la función de inicio de sesión: si la contraseña se ingresa incorrectamente más de 3 veces, está prohibido ingresar la contraseña nuevamente.
inserte la descripción de la imagen aquí
Solo hay tres diferencias entre este código y los anteriores:
Líneas 4-5: agregue el bucle whiIe, si la condición de intentos> 0 es verdadera, entonces puede ingresar la contraseña, para ejecutar el juicio lógico de si la contraseña es correcta o no; Línea
20 Línea ~ 21: cuando la contraseña se ingresa incorrectamente, el número de intentos se puede reducir en 1;
Línea 23 ~ 24: Cuando no se establece la condición del ciclo whiIe, significa que el número de intentos se agota y se notifica que la cuenta de usuario está bloqueada.
Aquí, while puede entenderse como una versión de bucle if, y puede usarse la estructura while-eIse, y hay una segunda capa de juicio lógico en el bloque de código while, que en realidad constituye una lógica anidada (Condición anidada).

5.3.4 Ejercicios completos

Básicamente hemos aprendido el uso del juicio lógico y los bucles, y ahora estamos empezando a hacer algo interesante: diseñar un pequeño juego para adivinar el tamaño, este pequeño juego en Wenquxing me acompañó durante el tiempo aburrido en la escuela primaria.
Antes de eso, agreguemos algunos conocimientos necesarios primero.
Primero, cree una lista, coloque números y luego use la función sum() para sumar todos los enteros en la lista, y luego imprima, el resultado es 6, que debería ser fácil de entender: primero, construyamos una función que pueda tira
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
los dados tira los dados. De hecho, esta función no necesita ingresar ningún parámetro.Después de llamar, devolverá una lista que almacena los resultados de tres puntos sacudidos.

1import  random
2def  roll_dice(numbers=3, points=None): 3print('<<<<< ROLL THE DICE! >>>>>')
4if  points  is  None:
5●	points = []
6while  numbers  > 0:
7●	point = random.randrange(1,7)
8●	points.append(point)
9●	numbers = numbers  - 1
10return  points

Línea 2: cree una función, establezca dos parámetros predeterminados como opcionales, números: el número de dados,
puntos: una lista de los puntos de los tres tamices; línea 3: informe al usuario para que comience a tirar los dados;
líneas 4-5: Si no se especifican puntos en el parámetro, entonces cree una lista vacía para puntos;
Líneas 6-9: agite los dados tres veces, y disminuya 1 cada vez que se agiten los números, hasta que sea menor o igual a 0, el ciclo se detiene; línea 10: devuelve la
lista de resultados de.

A continuación, usamos una función para convertir puntos en tamaños, y usamos sentencias if para definir qué es "grande" y qué es "pequeño": Línea 1: Crea una función, cuyo parámetro necesario es el número total de puntos
inserte la descripción de la imagen aquí
del dados;
Líneas 2 a 3: Establezca los criterios para juzgar "grande" y "pequeño";
Líneas 4 a 7: Devuelva diferentes resultados bajo diferentes condiciones.
Finalmente, cree una función para iniciar el juego, permita que el usuario ingrese el tamaño de la suposición y defina qué es una suposición correcta y qué es una suposición incorrecta, y genere los resultados correspondientes de ganancia o pérdida.
inserte la descripción de la imagen aquí
Línea 1: Crea una función sin ningún parámetro especial;
Línea 2: Informa al usuario que el juego ha comenzado;
Línea 3: Especifica cuál es la entrada correcta;
Línea 4: Almacena la cadena ingresada por el usuario en tu _eoh_d;
Líneas 5, 13-15: Si cumple con la especificación de entrada, continúe hacia abajo, si no, informe al usuario y comience de nuevo; Línea 6: Llame a la función roii ch_d y nombre la lista devuelta como pohnts; Línea 7: Sume los puntos;
Línea
8 : Establezca las condiciones para la victoria: el resultado que elija es consistente con el resultado generado por la computadora;
Líneas 9-12: Si se establece, le informará de la victoria; de lo contrario, le informará del fracaso;
Línea 16: Llame a la función para hacer que el programa se ejecute.
Después de completar este pequeño juego, puedes intentar adivinar el tamaño con el programa que diseñaste. Al mismo tiempo, también domina el método de mezclar bucles y juicios condicionales, e inicialmente tiene la capacidad de diseñar programas más complejos.

Capítulo 6 Estructura de datos

6.1 Estructura de datos

Al igual que en el mundo real, no necesitamos desesperadamente un contenedor para almacenar cosas hasta que tengamos suficientes, por lo que insisto en poner las estructuras de datos al final, hasta que haya dominado las habilidades suficientes para crear más. Si tiene más datos, prestará atención al papel de la estructura de datos. Estos contenedores que almacenan grandes cantidades de datos se denominan estructuras de datos incorporadas (BuiIt-in Data Structure) en Python.
Los sitios web, las aplicaciones móviles e incluso los mensajes de texto de teléfonos móviles que usamos todos los días se basan en estructuras de datos para el almacenamiento. Los datos en ellos se almacenan en una forma específica en la estructura de datos y se muestran cuando los usuarios los necesitan.
inserte la descripción de la imagen aquí
Python tiene cuatro estructuras de datos: listas, diccionarios, tuplas y conjuntos. Cada estructura de datos tiene sus propias características y tiene un uso único. Para evitar caer en los detalles prematuramente, primero entendamos estas cuatro estructuras de datos como un todo:inserte la descripción de la imagen aquí

6.2 lista (lista)

Primero, comenzamos con listas y explicamos cada estructura de datos en profundidad. Las características más destacables que tienen las listas
son:

1. Cada elemento de la lista es variable
2. Los elementos de la lista están ordenados, es decir, cada elemento tiene una posición
3. La lista puede contener cualquier objeto en Python.

Los elementos de la lista son mutables, lo que significa que podemos agregar, eliminar y modificar elementos de la lista. Cada elemento de la lista corresponde a una posición, consultamos el valor correspondiente a la posición ingresando la posición, intenta ingresar:

Weekday =['Monday','Tuesday','Wednesday','Thursday','Friday'] 
print(Weekday[0])

La tercera característica es que las listas pueden contener todos los objetos en Python, como puede ver en el siguiente ejemplo:inserte la descripción de la imagen aquí

6.3 Adición, supresión, modificación y consulta de la lista

Para las operaciones de datos, los más comunes son los cuatro tipos de adición, eliminación, modificación y consulta. Comenzando con el método de inserción de la lista, ingrese:

fruit = ['pineapple','pear']
fruit.insert(1,'grape') 
print(fruit)

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
A continuación, experimentemos con la tabla periódica de elementos, a continuación:

periodic_table = ['H','He','Li','Be','B','C','N','O','F','Ne'] print(periodic_table[0])
print(periodic_table[-2]) 
print(periodic_table[0:3]) 
print(periodic_table[-10:-7]) 
print(periodic_table[-10:])
print(periodic_table[:9])

Encontrará que el índice de la lista es el mismo que la cadena, es muy simple, ¿verdad? Pero si es al revés, si desea verificar la ubicación de un valor específico, debe usar otro método, de lo contrario, se informará un error:inserte la descripción de la imagen aquí

6.4 Diccionarios

De hecho, muchos conceptos en el mundo de la programación se basan en prototipos de la vida real. La estructura de datos del diccionario es como el diccionario en el mundo real. Utiliza el contenido del nombre para construir datos, y en Pyteol corresponden a claves ( hay)- Valor (vPkua), que habitualmente se denomina par clave-valor. inserte la descripción de la imagen aquí
Las características del diccionario se resumen de la siguiente manera:
inserte la descripción de la imagen aquí
Presumiblemente, los informes de errores repetidos le harán recordar profundamente estas dos características: la clave y el valor tienen una correspondencia uno a uno, y la clave es inmutable.
Al mismo tiempo, los valores clave en el diccionario no se repetirán. Incluso si hace esto, el mismo valor clave solo puede aparecer una vez:

a = {
    
    'key':123,'key':123}
print(a)

6.5 Adición, eliminación, modificación y consulta de diccionarios

Primero, creamos un diccionario de acuerdo con la relación de mapeo, siguiendo con el ejemplo anterior:

NASDAQ_code = {
    
    'BIDU':'Baidu','SINA':'Sina'}	

inserte la descripción de la imagen aquí

6.6 tuplas

Las tuplas en realidad se pueden entender como una versión estable de la lista, porque las tuplas son inmutables, por lo que ninguno de los métodos de la lista se puede usar en las tuplas, pero las tuplas se pueden ver e indexar de la misma manera que La lista es lo mismo que :

letters = ('a','b','c','d','e','f','g') 
letter[0]

6.7 Colección

Los conjuntos están más cerca del concepto de conjuntos en matemáticas. Los elementos de cada colección son objetos arbitrarios no ordenados y que no se repiten. Podemos juzgar la afiliación de los datos a través de la colección y, a veces, también podemos restar los elementos repetidos en la estructura de datos a través de la colección. inserte la descripción de la imagen aquí
Las colecciones no se pueden segmentar ni indexar. Además de realizar operaciones de colección, se pueden agregar y eliminar elementos de la colección:

a_set = {
    
    1,2,3,4} 
a_set.add(5)
a_set.discard(5)

6.8 Algunos trucos con estructuras de datos

6.8.1 Bucles Múltiples

El uso de muchas funciones está estrechamente relacionado con el uso de estructuras de datos. Hemos aprendido el uso básico de la lista anteriormente, pero a menudo encontramos más problemas en la operación real. Por ejemplo, al ordenar tablas o archivos, se ordenarán por letras o fechas, y existen funciones similares en Python:

num_list = [6,2,7,4,1,3,5] 
print(sorted(num_list))

¿Qué tal, es increíble? La función sorted ordena los elementos de cada lista por orden de longitud, tamaño y alfabeto inglés. Esta función se usa a menudo en la visualización de datos, y hay un punto muy importante, la función ordenada no cambia la lista en sí, puede entenderla como copiar la lista primero y luego ordenarla en orden.
La lista se puede ordenar en orden inverso después de usar el parámetro predeterminado reverse:

sorted(num_list,reverse=True)	

En el proceso de ordenar la lista, ¿qué debo hacer si necesito dos listas al mismo tiempo? En este momento, se puede usar la función zip, por ejemplo:

for a,b in zip(num,str): 
print(b,'is',a)

inserte la descripción de la imagen aquí

6.8.2 Derivación

Ahora veamos la derivación (comprensión de lista) en la estructura de datos. Tal vez hayas visto su otro nombre llamado comprensión de lista. Aquí solo necesitas saber que estos dos son en realidad una sola cosa. arriba.
Ahora tengo 10 elementos para cargar en la lista, la forma general de escribir es esta:

a = []
for i in range(1,11): 
a.append(i)

Lo siguiente se reemplaza por un método de comprensión de lista:

b	=	[i	for	i	in	range(1,11)]

El método de análisis de listas no solo es muy conveniente, sino que también es muy superior al primero en términos de eficiencia de ejecución. Cuando comparamos el tiempo empleado por dos métodos diferentes de operación de listas, no es difícil encontrar una gran diferencia en su eficiencia:

import time

a = []
t0 = time.clock()
for i in range(1,20000): a.append(i)
print(time.clock() - t0, "seconds process time")

t0 = time.clock()
b = [i for i in range(1,20000)] 
print(time.clock() - t0, "seconds process time")

inserte la descripción de la imagen aquí
El uso de la comprensión de listas también es fácil de entender, lo que puede verse simplemente como dos partes. La expresión detrás de la línea punteada roja es la expresión familiar del bucle for, y la que está delante de la línea punteada se puede considerar como el elemento que queremos poner en la lista. En este ejemplo, el elemento puesto en la lista es el elemento mismo que se repite más tarde.

list = [item for item in iterable]

Para entender mejor esta oración, sigamos viendo algunos ejemplos:
inserte la descripción de la imagen aquí

6.8.3 Obtener el índice de un elemento mientras se recorre una lista

Ahora que tenemos un alfabeto, ¿cómo podemos obtener la posición específica de cada elemento como se muestra en la figura al indexar?
inserte la descripción de la imagen aquí

6.9 Proyectos integrales

Para entender profundamente cómo usar la lista, al final de este capítulo, haremos una estadística de frecuencia de palabras. Si necesita el texto de Walden Lake, puede descargarlo aquí: http://pan.baidu.com/s/1o75GKZ4 , abrir el texto con PyCharm y guardarlo nuevamente después de la descarga, esto es para evitar problemas de codificación.
Haga algunos preparativos con anticipación y aprenda algunos conocimientos necesarios.

lyric = 'The night begin to shine, the night begin to shine' 
words = lyric.split()

Ahora usamos el método split para separar cada palabra en la cadena para obtener palabras individuales:

['The', 'night', 'begin', 'to', 'shine']	

Lo siguiente son las estadísticas de frecuencia de palabras, usamos el método de conteo para contar palabras repetidas:

path = '/Users/Hou/Desktop/Walden.txt'
with open(path,'r') as text: 
words = text.read().split() 
print(words)
for word in words:
print('{}-{} times'.format(word,words.count(word)))

Salió el resultado, pero siempre me sentí un poco extraño, después de una cuidadosa observación, llegué a la conclusión:

  1. Algunas palabras con signos de puntuación se contaron por separado;
  2. Algunas palabras muestran el número de ocurrencias más de una vez;
  3. Dado que Python distingue entre mayúsculas y minúsculas, las palabras en mayúsculas se cuentan por separado.
    Ahora ajustemos nuestro método estadístico de acuerdo con estos puntos y hagamos un preprocesamiento de las palabras:
1.import string
2.path = '/Users/Hou/Desktop/Walden.txt' 3.with open(path,'r') as text:
4.words = [raw_word.strip(string.punctuation).lower() for raw_word in text.read().split()]
5.words_index = set(words)
6.counts_dict = {
    
    index:words.count(index) for index in words_index}

7.for word in sorted(counts_dict,key=lambda x: counts_dict[x],reverse=True):
8.print('{} -- {} times'.format(word,counts_dict[word]))

inserte la descripción de la imagen aquí

El Capítulo 7 comienza a usar bibliotecas de terceros

7.1 Increíbles bibliotecas de terceros

Si usa un teléfono móvil como metáfora de un lenguaje de programación, entonces Python es un teléfono inteligente. Así como una gran cantidad de aplicaciones para teléfonos móviles aparecen en las plataformas iOs y Android, también existen varias bibliotecas de terceros que brindan una gran comodidad a los desarrolladores de Python.
Cuando quiera crear un sitio web, puede elegir marcos web como Django con funciones completas y Flask liviano; cuando quiera escribir un juego pequeño, puede usar el marco PyGame; cuando quiera hacer un rastreador, puede usar scrapy Framework; cuando quiera hacer un análisis estadístico de los datos, puede usar el marco de datos de Pandas... tantos recursos ricos pueden ayudarnos a hacer lo que queremos hacer de manera eficiente y rápida, y no hay necesidad de reinventar la rueda. Entonces, ¿cómo encontrar la biblioteca correspondiente según tus necesidades?
Puede buscar por categoría en el sitio web awesome-python.com , que contiene una biblioteca de terceros más completa. Por ejemplo, cuando queremos encontrar una biblioteca de rastreadores, podemos consultar la categoría Rastreo web para ver el sitio web y la introducción de la biblioteca de terceros correspondiente: puede ingresar al sitio web de la biblioteca para ver una introducción más detallada y confirmar que
inserte la descripción de la imagen aquí
el biblioteca es compatible con python 2 o python 3, pero las bibliotecas más utilizadas ya son compatibles con ambos.
Además, también puede buscar directamente a través de motores de búsqueda, por ejemplo:
inserte la descripción de la imagen aquí
si puede intentar buscar en inglés, encontrará un mundo más grande, como discusiones de alta calidad en stackoverlow.
inserte la descripción de la imagen aquí

7.2 Instalar bibliotecas de terceros

No importa qué biblioteca desee instalar, el método es básicamente universal. Comencemos a presentar el método de instalación de bibliotecas de terceros.

7.2.1 La forma más fácil: instalar en PyCharm

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

7.2.2 La forma más directa: instalar en terminal/línea de comandos

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

7.2.3 La forma más primitiva: instalación manual

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

7.3 Uso de bibliotecas de terceros

Ingrese el nombre de la biblioteca en PyCharm y se le solicitará automáticamente que se complete:
inserte la descripción de la imagen aquí
después de ingresarlo, encontrará que está en un estado gris import pandas. Esto se debe a que la biblioteca no se ha utilizado en el programa, no porque la biblioteca no se haya utilizado. se ha instalado (si desea verificar si la biblioteca está instalada, puede usar el método PyCharm o pip mencionado anteriormente para confirmar). Esto concluye el tutorial sobre el uso de la biblioteca.

Supongo que te gusta

Origin blog.csdn.net/weixin_45529272/article/details/128044581
Recomendado
Clasificación