La sentencia, determinada por la función input(...) tiene por sintaxis:
varName = input()
varName = input(msg)
varName = input(msg+dato_cadena)
input(msg)
donde
varName es el nombre de una variable cualquiera.
msg es un mensaje entrecomillado que sirve para orientar a quien digita el dato
datos_cadena es una cadena entrecomillada o un valor numérico convertido una cadena que se está concatenando con el msg.
En el 4to formato de sintaxis, el dato ingresado no es asignado a una variable.
Ejemplos:
>>>a=input()
10
>>> b=input()
>>>b En ambos casos no es un valor numérico que hemos leído. Es una cadena de caracteres
>>>a+b
Y por que ambos dos son cadenas es que se concatenan en una suma
Usemos el segundo formato
>>>>>> a=input("Ingresa un número de dos dígitos:") Ingresa un número de dos dígitos:25
>>> a
'25'
Se recomienda dejar un espacio al final de ":".
Si se desea que a sea numérico, debemos usar la función int(...) o float(...), según nuestro interés.
>>>a = int(a)
También podemos convertir el tipo antes de asignar y después de haberse leído
>>>a = int(input("ingresa un número: "))
>>>b = float(input("ingresa un número: "))
Ahora, asignemos 50 a la variable n
>>>n = 50
Sin duda este es un valor numérico
>>>n
50
Para añadirlo (concatenarlo) a una cadena, debemos convertirla en cadena. Esto lo hacemos con
>>>n = str(n)
Supongamos que se desea leer un número menor que 50.
La instrucción será:
>>> a = input("Ingresa un número menor que"+ns) Ingresa un número menor que 5025
Hemos digitado 25; pero esto se confunde con lo que se emite como mensaje; debemos dejar un espacio después de ":".
>>> a = input("Ingresa un número menor que "+ns+": ") Otra forma de usar input(...) usando un formato:
>>>a = input(f"Ingresa un número menor a{n} : ")
Ingresa un número menor a 150 :
Veamos el uso de range(...) en una instrucción
>>>range(5)
range(0, 5)
genera una secuencia o serie de números de 0 a 4: 0, 1, 2, 3, 4
Lo mismo hace
>>>range(0,5)
Pero range(1,11), genera una serie de números de 1 a 10
Esto serviría para ejecutar una o más instrucciones, variando alguna variable de control dese el primer valor de la serie hasta un valor menor que el tope indicado por range.
Por esta razón en ejemplos anteriores hemos usado range como parte de una sentencia FOR ...
Veamos algunos casos:
En la siguiente línea de código, i tomará los valores de range(5) y los imprimirá. No se olvide presionar [intro] dos veces:
>>>for i in range(5):print(i)
0
1
2
3
4
Pudimos haber usado la forma correcta:
>>>for i in range(5): # Aquí presionamos [Intro] y el cursor se queda debajo de i
print(i) # Al presionar [Intro] nuevamente el cursor se queda debajo de p de print. . # Puesto que allí termina lo que queremos hace con la sentencia for, presionamos [Intro] El cursor edbe volver al inicio de la siguiente línea.
Nota
Es fundamental respetar las identaciones que se producen automátricamente pues gracias a ellos, sabremos hasta dónde llega el ámbito de la sentencia for. El cursor debe estar en la primera línea para que for ... se ejecute.
Ejemplo de uso de input(...)
Vamos a ingresar un conjunto de elementos hacia una lista para luego convertirlos en arreglos. Leeremos 3 vectores de tipo float.
Solución
Abra un nuevo archivo y grábelo como ej03.py
Lo primero que hacemos es importar numpy
import numpy as np
Vamos a leer tres listas de tamaño n. Es decir, primero leeremos un número de tipo entero para n
n = int(Input("Ingrese el número de elementos de la lista: "))
Definimos a tres como listas vacías:
a = []
b = []
c = []
Puesto que para cada uno de los n elementos de la lista debemos usar input(...), usaremos la sentencia for, en su formato simple, como lo venimos usando.
for elem in range(n):
a.append(float(input("Elemento "+str(elem)+": ")))
for elem in range(n):
b.append(float(input("Elemento "+str(elem)+": ")))
for elem in range(n):
c.append(float(input("Elemento "+str(elem)+": ")))
Veamos el contenido de cada lista
a
b
c
Convertimos a la lista a en arreglo x
x=np.array(a) Y con los otras dos definimos un arreglo matricial
xmat = np.array([b,c]) Sus valores
x
xmat
Sus órdenes
x.shape
xmat.shape
Puesto que x es de orden (4,); es decir, un vector de 4 filas y una columna, mientras que xmat tiene por orden (2,4); es decir, es un arreglo matricial de 2 filas con dos columnas, vamos a multiplicar xmat por x para obtener un arreglo de orden (2,1)
xmat@x
Bueno, como se puede ver, el ingreso de datos se mejora utilizando las sentencias for y el input apropiadamente.
Ejecute el código para ver lo que hemos programado. El ejemplo fue probado ingresando 4 como valor para n.
Guarde el módulo ej03.py
La siguiente imagen muestra el contenido de este módulo, llamado también script