[Conocimientos básicos de Python] Función 3.input ()

Prefacio

En el estudio anterior, aprendimos a usar la función print() para emitir comandos simples a la computadora, comenzamos a entrar en contacto con diferentes tipos de datos en Python y aprendimos a usar sentencias de juicio condicional if para implementar la lógica primaria de comunicación. con la computadora.

Después de estos estudios, ¿estás un paso más cerca de comprender Python? ¿Alguna vez ha empezado a sentir que la fría computadora del pasado parece haberse vuelto amigable al comunicarse con usted?

Sin embargo, no basta con dominar la codificación Python. Si queremos ir más allá, debemos dominar la lógica del código de Python, usar [datos] correctos y [lógica] razonable para construir comandos y, finalmente, debemos [responder] a la computadora e [ingresar] nuestra propia información.

Y esta acción [de respuesta] de transmitir información es nuestro enfoque hoy: la función input(), que completará su primera comunicación interactiva con Python y producirá una magia increíble.

¿Entonces, Qué esperas? ¡Comencemos el viaje mágico rápidamente!

función de entrada ()

En el curso de hoy, recibirás una carta de admisión del Colegio Hogwarts de Magia y Hechicería, esta carta de admisión te llevará a utilizar la función input() para abrir un nuevo capítulo de "comunicación bidireccional" con la computadora.

Ahora es el momento de que elijas. Ejecute el botón [Ejecutar] en el lado izquierdo del bloque de código a continuación. En la [Terminal], primero [ingrese] el número que seleccionó y luego presione la tecla Enter.

import time

print('亲爱的同学:')
time.sleep(1)

print('我们愉快地通知您,您已获准在霍格沃茨魔法学校就读。')
time.sleep(2)

print('随信附上所需书籍及装备一览。')
time.sleep(1)

print('学期定于九月一日开始。')
time.sleep(1)

print('鉴于您对魔法世界的不熟悉,')
time.sleep(1)

print('我们将指派魔咒学老师——吴枫教授带您购买学习用品。')
time.sleep(2)

print('我们将于七月三十一日前静候您的猫头鹰带来的回信。')
time.sleep(2)

print('校长(女)米勒娃·麦格谨上')
time.sleep(1)

print('那么,您的选择是什么? 1 接受,还是 2 放弃呢?')
time.sleep(2)

choice=input('请输入您选择的数字:')

if choice =='1':
    print('霍格沃茨欢迎您的到来。')

else:
    print('您可是被梅林选中的孩子,我们不接受这个选项。')

resultado de la operación:

亲爱的同学:
我们愉快地通知您,您已获准在霍格沃茨魔法学校就读。
随信附上所需书籍及装备一览。
学期定于九月一日开始。
鉴于您对魔法世界的不熟悉,
我们将指派魔咒学老师——吴枫教授带您购买学习用品。
我们将于七月三十一日前静候您的猫头鹰带来的回信。
校长(女)米勒娃·麦格谨上
那么,您的选择是什么? 1 接受,还是 2 放弃呢?
请输入您选择的数字:1
霍格沃茨欢迎您的到来。

Mira, esta es tu primera comunicación interactiva con la computadora usando la función input().

La clave para lograr una verdadera comunicación interactiva hombre-máquina es: hay marcha y hay marcha. Por ejemplo, si el director te pregunta si quieres venir a Hogwarts para aprender magia, debes ingresar un comando de pregunta en el programa: ¿Quieres venir a Hogwarts?

Después de que el programa reciba la orden, inmediatamente mostrará la pregunta del director palabra por palabra en la pantalla de su computadora: ¿Quieres venir a Hogwarts?

Luego, el proceso en el que los seres humanos usan el teclado para proporcionar instrucciones a la computadora, y luego usan la computadora para mostrar las preguntas en el monitor y esperar la respuesta del humano se implementa a través de la función input().

Insertar descripción de la imagen aquí

Entonces, ¿cuál es el uso específico de la función input() y la lógica detrás de ella? En este nivel, derrotaré la función input() una por una desde cuatro ángulos.

Uso de la función input()

Primero, echemos un vistazo a cómo se usa la función input() a través de un fragmento de código:


input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:')

La función input() es la función de entrada. Para el ejemplo anterior, requiere que ingreses el nombre de la casa a la que deseas ir en las siguientes cuatro opciones [Gryffindor; Slytherin; Ravenclaw; Hufflepuff] entre paréntesis: la respuesta.

Entonces, cuando escribe una pregunta entre corchetes de la función, la función input() mostrará la pregunta tal como está en la pantalla y esperará su respuesta a esta pregunta en el área de la terminal.

Pero ¿por qué ingresamos la respuesta en la terminal? ¿Está bien no entrar?

De hecho, podemos pensar en la función input() como una puerta que conecta el mundo real y el mundo del código.

Cuando nos pasan una pregunta desde el mundo del código, pero no la respondemos, la puerta input() que espera la entrada siempre estará abierta, esperando que usted envíe su respuesta.

Cuando ingresemos la información, la puerta input() se cerrará y continuaremos ejecutando los siguientes comandos.

A continuación, resumamos cómo usar la función input():

Insertar descripción de la imagen aquí
A continuación, experimentemos la magia de la función input() por nosotros mismos:
1. Agregue el código

input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:')

Cópielo en su propio cuadro de código local;
2. Después de hacer clic en Ejecutar, ingrese su elección en la terminal de la derecha;
3. Presione la tecla Enter después de ingresar la respuesta.

¿Qué tal? Después de ingresar la respuesta y presionar la tecla Enter, ¿no hay nada más excepto la información que ingresó? Pero el programa no reporta ningún error ¿A qué se debe?

Hemos enfatizado repetidamente que el código ejecuta comandos línea por línea, por lo que incluso si la función input () pasa y la puerta está cerrada, dado que no hay otros comandos bajo la función input (), naturalmente no habrá resultados.

Sin embargo, las respuestas que ingresamos no se pierden, la computadora las almacena en el programa.

Entonces, ¿qué pasa si quiero encontrar la respuesta que acabo de ingresar del océano de programas y usarla para producir un resultado, como por ejemplo expresar que la universidad me da la bienvenida?

请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字: 拉文克劳
#提出的问题

拉文克劳学院欢迎你,小萌新!
#显示的结果

No nos apresuremos a codificar todavía. De acuerdo con las viejas reglas, primero solucionemos la lógica del pensamiento. Primero, para que las universidades estén listas para recibirte, necesitan saber qué universidad has elegido, por lo que primero deben recopilar información sobre tu universidad favorita.

Entonces, el primer paso en nuestro pensamiento es utilizar la función input() para recopilar información:

input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字: ')
#运用input函数搜集信息

Sin embargo, cuando quiero unir los datos recopilados con ['¡Bienvenido a la universidad, pequeño y lindo novato!'] e imprimir los resultados, surge un problema. Aunque recopilé cierta información usando la función input(), ¿cómo recupero esta información del océano de programas y realizo la unión de datos?

Esto implica el segundo punto de conocimiento de la función input(): la asignación de los resultados de la función.

Asignación del resultado de la función input()

En primer lugar, podemos asignar valores a las variables, de modo que cuando queramos extraer datos, solo necesitemos imprimir el nombre de la variable directamente para despertar la memoria de los datos del programa.

Esta lógica de asignación también funciona en la función input(). También podemos lograr el propósito de extraer los resultados de entrada en cualquier momento mediante la asignación. Pero a nivel lógico, tenemos que dar un giro.

Por ejemplo, tome nuestra siguiente cadena de código como ejemplo:

name = input('请输入你的名字:')
#函数赋值

Aunque parece asignar un valor a la función input(), de hecho, asignamos el resultado de la ejecución de la función input() (la información recopilada) al nombre de la variable.

En términos sencillos, lo que ponemos en el cuadro de nombre no es la pregunta formulada en la función input(), sino las respuestas de otras personas que recopilamos a través de la función input().

De esta manera, no importa lo que escribas en la terminal, no importa cuántas veces cambie tu respuesta. Siempre que sea una respuesta a la pregunta formulada por la función input(), se almacenará en la variable. Mientras espera que imprima la variable, la respuesta se extrae y se muestra en la pantalla.

En el mundo del código, esta información/respuestas/datos que se muestran en el terminal se pueden llamar valores de entrada: el contenido que ingresamos a la función.

Ahora, intentémoslo nosotros mismos:

Asigne el resultado de input('Ingrese el nombre de la casa a la que desea ir entre las siguientes cuatro opciones [Gryffindor; Slytherin; Ravenclaw; Hufflepuff]: ') al nombre, luego imprima el nombre de la variable para ver si Aparece la respuesta que ingresó. [Puntos clave: asignación, función input(), función print()]

name=input('请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:')
print(name+'学院欢迎你!')

resultado de la operación:

请在以下四个选项【格兰芬多;斯莱特林;拉文克劳;赫奇帕奇】中,输入你想去的学院名字:格兰芬多哈
格兰芬多哈学院欢迎你!

Justo ahora, la información que ingresamos en la terminal (el nombre de la universidad (cada uno ingresa contenido diferente) es el valor de entrada.

Al mismo tiempo, para extraer el valor de entrada en cualquier momento y de forma cómoda, necesitamos asignar el resultado de la función input() al nombre de la variable.

Cuando hayamos allanado el camino para recopilar información y asignado valores a la información obtenida, podemos pasar al último paso e imprimir el resultado final.

A continuación, muestre otra ola de operaciones: 1. Para solicitar información, seleccione el objeto mágico que más desea tener entre las siguientes opciones [Espejo de Erised; Giratiempo; Escoba voladora; Capa de invisibilidad]:; 2. Agregue el resultados Asigna el valor a la variable magic 3. Imprime el resultado magic+' es la magia que más quiero tener! '[Puntos clave: asignación, función input(), empalme de variables, función print()]

Respuesta de referencia:

magic=input('请在以下选项【厄里斯魔镜;时间转换器;飞天扫帚;隐形斗篷】中,选择出你最想拥有的魔法物品:')
print(magic+'是我最想拥有的魔法!')

resultado de la operación:

请在以下选项【厄里斯魔镜;时间转换器;飞天扫帚;隐形斗篷】中,选择出你最想拥有的魔法物品:隐形斗篷
隐形斗篷是我最想拥有的魔法!

Hay un punto importante aquí: cuando entendemos el código, el orden de pensamiento en nuestro cerebro es recopilar información primero y luego asignar el resultado de la función input () a la variable.

Sin embargo, para escribir especificaciones y evitar que falte información, primero debemos seguir el formato de escritura del código y asignar valores a los resultados de la función input().

Insertar descripción de la imagen aquí
Según el conocimiento que hemos aprendido anteriormente, ¿cómo utilizar la función input()?

Primero, debemos asignar un valor al resultado de la función input(), luego usar la función input() para recopilar información y finalmente usar la función print() para generar el resultado.

Usemos otra imagen para resumirlo intuitivamente.
Insertar descripción de la imagen aquí

Ahora que dominamos los escenarios de uso integrales de la función input(), echemos un vistazo al código de la carta de Hogwarts al comienzo de este nivel.

print('那么,您的选择是什么? 1 接受,还是 2 放弃呢?')

choice = input('请输入您的选择:')
#变量赋值

if choice == '1':
#条件判断:条件1
    print('霍格沃茨欢迎您的到来。')
#条件1的结果

else:
#条件判断:其他条件
    print('您可是被梅林选中的孩子,我们不接受这个选项。')
#其他条件的结果

Entonces, ¿cómo se escribió este conjunto de códigos?

Desde una perspectiva de pensamiento, en pocas palabras: te doy dos opciones, tú eliges una y luego te muestro el resultado correspondiente.

Por lo tanto, el primer paso del código es asignar un valor y hacer preguntas a través de la función input().

choice = input('请输入您的选择:')
#变量赋值

En el segundo paso, debemos hacer un juicio condicional basado en la respuesta: si la respuesta es 1, se mostrará el resultado de la condición 1; si se seleccionan otras opciones, se mostrarán los resultados de otras condiciones.

choice = input('请输入您的选择:')
#变量赋值

if choice == '1':
#条件判断:条件1
    print('霍格沃茨欢迎您的到来。')
#条件1的结果

else:
#条件判断:其他条件
    print('您可是被梅林选中的孩子,我们不接受这个选项。')
#其他条件的结果

El código está terminado, pero surge la pregunta: ¿por qué la variable de elección bajo la condición if es la cadena '1'? Si no es un formato de cadena, sino un número entero 1, ¿cuál será el resultado?

A continuación, copie el código anterior y cambie la condición if de '1' en formato de cadena a 1 en formato de número entero. Después de hacer clic en Ejecutar, ingrese 1 en la terminal y observe los resultados de la ejecución [Consejo: haga clic en Ejecutar → Ingrese 1]

choice=input('请输入你的选择:')
if choice==1:
    print('霍格沃茨欢迎您的到来')
else:
    print('您可是被梅林选中的孩子,我们不接受这个选项')

resultado de la operación:

请输入你的选择:1
您可是被梅林选中的孩子,我们不接受这个选项

¿Qué tal? Ingresó 1 y el resultado mostrado es el resultado bajo la condición else: 'Usted es el niño seleccionado por Merlín, no aceptamos esta opción. '?

¿Por qué es esto? ¿Lo que ingresamos es el número 1 en la opción condicional? ¿Por qué no pueden aparecer los resultados correspondientes?

Aquí llegamos al tercer punto de conocimiento de la función input():

Tipo de datos de la función input()

Ahora, primero analicemos este grupo de códigos línea por línea desde la lógica del lenguaje informático:

choice = input('请输入您的选择:')
#变量赋值

if choice == 1:
#条件判断:条件1
    print('霍格沃茨欢迎您的到来。')
#条件1的结果

else:
#条件判断:其他条件
    print('您可是被梅林选中的孩子,我们不接受这个选项。')
#其他条件的结果

Entonces, primero echemos un vistazo a la declaración de asignación en la primera línea de código.

choice = input('请输入您的选择:')
#变量赋值

Primero, veámoslo en su conjunto. Lo que este código significa es que utiliza la función input() para recibir datos y asignarlos a la variable de elección.

En segundo lugar, analicémoslo para ver qué representa cada parte de esta línea de código:

Insertar descripción de la imagen aquí
Para la función input(), no importa qué respuesta ingresemos, ya sea que ingrese el número entero 1234 o la cadena "La capa de invisibilidad es la magia que más quiero tener", el valor de entrada de la función input() (respuesta recopilada) , siempre se convertirá [obligatorio] al tipo [cadena]. (Reglas fijas de Python3)

¿No creen? ¿Compruébalo con la función type() que aprendimos en el primer nivel?

choice = input('请输入1或2:')
print(type(choice))

resultado de la operación:

请输入12:1
<class 'str'>

¿No es así? El número entero [1] o [2] que ingresamos se convertirá a la fuerza en una cadena de ['1'] o ['2'].

Por lo tanto, no importa lo que ingresemos en el área de la terminal, el valor de entrada de la función input() debe ser [cadena].

De esta forma, dado que usamos el operador de asignación [=] para asignar el resultado de cadena de la función input() a la variable elección, esta variable también debe ser de tipo cadena.

Insertar descripción de la imagen aquí
Ahora, hemos determinado que el tipo de datos de la variable elegida es cadena. A continuación, veamos el código subyacente.

Primero veamos la declaración condicional if [if elección==1] en el primer bloque de código y desarmémosla:

Insertar descripción de la imagen aquí
Con base en el conocimiento del juicio condicional aprendido en el Nivel 2, podemos interpretar la condición if en la primera línea como: si la variable elegida es igual al número entero 1, entonces ejecute el resultado de esta condición if.

Insertar descripción de la imagen aquí
¿Encontraste algún problema esta vez? ¿Recuerda el tipo de datos de la opción de variable que mencionamos cuando desmantelamos la función input()?

En la primera asignación de variable, el valor de entrada de la función input() es una cadena, y '1' también es una cadena; pero cuando se trata del juicio de condición if, la condición if se convierte en [elección == 1] - 1 ha desaparecido Las comillas son de tipo entero.

Insertar descripción de la imagen aquí

Eso es todo, debido a que la información que ingresamos es siempre una cadena, la elección es un tipo de cadena y 1 es un tipo entero, por supuesto que no pueden ser iguales, la condición [elección == 1] no se puede establecer y solo podemos realizar la siguiente operación más - —Imprimir "Tú eres el niño elegido por Merlín. No aceptamos esta opción".

Ahora, por favor muestra tu magia. Cambie la declaración de error de la condición if en el siguiente código a la correcta igual al tipo de cadena y ejecútela.

choice = input('请输入您的选择:')
#变量赋值

if choice == 1:
#条件判断:条件1
    print('霍格沃茨欢迎您的到来。')
#条件1的结果

else:
#条件判断:其他条件
    print('您可是被梅林选中的孩子,我们不接受这个选项。')
#其他条件的结果

Respuesta de referencia:

choice=input('请输入你的选择:')
if choice=='1':
    print('霍格沃斯欢迎您')
else:
    print('您可是被梅林选中的孩子,我们不接受这个选项')

resultado de la operación:

请输入你的选择:1
霍格沃斯欢迎您

Ahora, sabemos cómo ejecutar el código modificando el tipo de datos de la condición if. ¿Lo has aprendido?

Entonces, supongamos que hay un fragmento de código como el siguiente:

age = 59

choice = input('请你猜一下斯内普教授的年龄:')

if choice == age:
    print('猜对惹~你好厉害! ヽ✿゜▽゜)ノ~~~')

elif choice < age:
    print('斯内普的提示:你猜小了(;´д`)ゞ。。。。')

else:
    print('斯内普的提示:乃猜大了惹(>﹏<)~~')

Si hace clic en Ejecutar e ingresa datos, inmediatamente recibirá un mensaje de error y lo frotarán en el suelo. Entonces, ¿dónde está la fuente del error en el código del profesor Snape?

Lo desmontamos línea por línea. En la declaración de asignación de la primera línea de código, la variable edad es de tipo entero y la variable elegida en la segunda línea es de tipo cadena. Estas dos variables no se pueden comparar debido a diferentes tipos.

¿Qué tal? ¿Respondiste correctamente? A continuación, usemos una imagen para profundizar, esto será muy útil en el futuro y también es un punto de conocimiento muy importante:

Insertar descripción de la imagen aquí
En nuestro ejemplo, sólo había dos opciones. Pero suponiendo que tenga 1, 2, 3, 4... 365 opciones, independientemente de si la conversión del tipo de datos es correcta o no, escribir comillas simples una por una lleva demasiado tiempo.

Entonces, necesitamos un método más simple y que ahorre más trabajo para cambiar los tipos de datos de todos los valores de entrada a números enteros a la vez.

Conversión forzada del resultado de la función input()

Pero maestro, ¿no me acaba de decir que la información recopilada por la función input() es siempre una cadena? ¿También se puede cambiar a un número entero?

Así es, el valor de entrada de la función input() puede convertirse en un número entero bajo ciertas circunstancias. Entonces, ¿recuerdas cómo convertir una cadena en un número entero?

¿Bien? int () es una conversión de tipo forzada de punto de conocimiento en el Nivel 1, que puede convertir por la fuerza una cadena en un número entero.

Con la función int(), podemos convertir el contenido de entrada en un número entero desde la fuente de la función input().

choice = int(input('请输入您的选择:'))
#将输入值强制转换为整数,并赋值给变量choice

Sin embargo, parece que esta cadena de código convierte toda la función input().

Pero, de hecho, realizamos una conversión forzada sobre el resultado obtenido por la función input() y asignamos el resultado de la conversión forzada a un cuadro de variable llamado elección.

De esta manera, incluso si la condición if es un número entero, el programa puede ejecutarse con precisión.

Entonces, ¿cuándo usaremos la conversión forzada del resultado de la función input()?

La idea es simple, cuando la respuesta que quieres es un número, como por ejemplo la edad:

age = int(input('猜一猜巫师的『法定成年年龄』是几岁,请输入:'))
#将输入的岁数(字符串),强制转换为整数

if age > 17:
#当年龄(整数)大于17(整数)时
    print('哈哈,居然比这个年龄还要小呢!')
#打印if条件下的结果

elif age == 17:
#当年龄(整数)等于17(整数)时
    print('正确!我猜你是个巫师啦~')
#打印if条件下的结果

else:
#当年龄(整数)小于17(整数)时
    print('呜呜,这个年龄~我还是个宝宝呢,正确答案是17岁哦')
#打印else条件下的结果

Otro ejemplo es cuando la información que se debe ingresar es tiempo, salario u otros números:

money = int(input('你一个月工资多少钱?'))
#将输入的工资数(字符串),强制转换为整数

if money >= 10000:
#当工资数(整数)大于等于10000(整数)时
    print('土豪我们做朋友吧!')
#打印if条件下的结果

else:
#当工资数(整数)小于10000(整数)时
    print('我负责赚钱养家,你负责貌美如花~')
#打印else条件下

A continuación, agite sus alas invisibles y agregue otra condición al código de salario mensual anterior: [Cuando el salario sea mayor que 5,000 y menor que 10,000]. Resultado de impresión: [Todos somos fabricantes de ladrillos. . . ] y escriba el código completo después de agregar las condiciones en el área siguiente. [Consejo clave: cuando coexistan tres condiciones, utilice declaraciones if...elif...else...]

Respuesta de referencia:

money = int(input('你一个月工资多少钱?'))
#将输入的工资数(字符串),强制转换为整数

if money >= 10000:
#当工资数(整数)大于等于10000(整数)时
    print('土豪我们做朋友吧!')
#打印if条件下的结果

elif 5000 < money < 10000:
#当工资数(整数)大于5000(整数)小于10000(整数)时
    print('我们都是搬砖族。。。')
#打印elif条件下的结果

else:
#当工资数(整数)小于等于5000(整数)时
    print('我负责赚钱养家,你负责貌美如花~')
#打印else条件下的结果

resultado de la operación:

你一个月工资多少钱?8000
我们都是搬砖族。。。

Finalmente, resumamos los puntos de conocimiento sobre la coerción del tipo de datos de la función input():

Insertar descripción de la imagen aquí
Entonces, hemos introducido todos los puntos de conocimiento de la función input(), el enfoque de este nivel. Finalmente, clasifiquemos los puntos clave de la función input().

Resumen de los puntos de conocimiento de la función input()

Insertar descripción de la imagen aquí
Ahora, recuerde con atención. En este punto, ¿sabemos cómo usar la función input() y combinar las variables, asignaciones, juicios condicionales y conversiones de tipo forzadas que aprendimos antes con la función input()? ¿de nuevo? ¿Has completado la comunicación interactiva con la computadora?

Revisión completa

Al principio, nos familiarizamos con la función más simple y más utilizada en el mundo de Python: la función print().

Aunque esta función parece simple, si profundiza, encontrará que esta función de impresión más simple también tiene sus propios secretos: contiene la lógica de operación más básica en el mundo de la programación.

Insertar descripción de la imagen aquí
Sin embargo, si desea lograr el propósito de la comunicación interactiva con la computadora, también necesita dominar el lenguaje de comunicación de la computadora.

Sólo cuando la computadora comprenda lo que estamos diciendo podrá darnos la respuesta correcta.

Insertar descripción de la imagen aquí

Al igual que nosotros los humanos, el funcionamiento de las computadoras también requiere lógica formal, por lo que en el nivel 2 dominamos la lógica de cómo comunicarnos con las computadoras.

Insertar descripción de la imagen aquí

Con lenguaje y lógica, podemos comunicarnos interactivamente con las computadoras.

Luego, llegamos al nivel actual y aprendimos la función input().

Insertar descripción de la imagen aquí
Sin embargo, después de aprender estos puntos de conocimiento, ¿cómo podemos escribir un código nosotros mismos, como un código como la carta de Hogwarts? ¿Cuál es el formato general del grupo de códigos?

Insertar descripción de la imagen aquí
Mirando hacia atrás, después de pasar por estos cuatro niveles, ¿te das cuenta de que has aprendido tanto sin siquiera darte cuenta? Estuve expuesto a un mundo completamente nuevo.

¡Vamos, eventualmente te convertirás en el jefe de tus sueños!

Supongo que te gusta

Origin blog.csdn.net/qq_41308872/article/details/132687615
Recomendado
Clasificación