Tu país

Las herramientas que lo admiten usan tu país para la moneda local, el formato de los números, las unidades y el tamaño del papel. Tu elección se guarda solo en este navegador.

Escribe un nombre o un código de dos letras. Usa las flechas arriba y abajo para recorrer los países, Intro para elegir uno y Escape para cerrar.

Python  Módulo 1 – Primeros pasos: instalar, ejecutar y leer Python

El REPL de Python, los scripts y la opción -m

Explora valores en el intérprete interactivo de Python, ejecuta scripts, órdenes de una línea y módulos con python3, -c y -m, y lee argumentos con sys.argv.

Lección gratis, respuestas Pro: 20 minutos
Gratis: la lección completa. Con un pase: las respuestas modelo de sus 2 preguntas de entrevista.

Qué vas a aprender

  • Usar el intérprete interactivo para explorar valores con help() y dir()
  • Predecir lo que imprime un script, comparado con las mismas líneas escritas en el intérprete
  • Ejecutar un script, un módulo con -m y una orden de una línea con -c
  • Leer los argumentos de la línea de órdenes con sys.argv

Antes de empezar

Qué vas a aprender · Antes de empezar

Qué vas a aprender

  • Usar el intérprete interactivo para explorar valores con help() y dir()
  • Predecir lo que imprime un script, comparado con las mismas líneas escritas en el intérprete
  • Ejecutar un script, un módulo con -m y una orden de una línea con -c
  • Leer los argumentos de la línea de órdenes con sys.argv

Antes de empezar

En esta página

Escribe 2 ** 100 en el indicador >>> de Python y responde al momento con los 31 dígitos; guarda la misma línea en un archivo, ejecuta el archivo y no aparece nada. Las dos veces es el mismo Python, ejecutado de dos formas distintas.

Hay tres formas de darle código a Python: escribirlo en el intérprete interactivo, guardarlo en un archivo y ejecutar el archivo, o pasarlo en la línea de órdenes. Cada una tiene su sitio, y saber en cuál estás explica muchas sorpresas del tipo “aquí funcionaba y allí no”.

El intérprete lee una línea, la ejecuta e imprime su valor

Ejecuta python3 (en Windows, py) sin nada detrás. Python imprime un pequeño encabezado y el indicador >>>: estás en el intérprete interactivo, también llamado El intérprete interactivo que inicia python3 cuando no le das ningún archivo: lee una línea en el indicador >>>, la evalúa, imprime el valor y espera a la siguiente línea., de leer, evaluar, imprimir y repetir (read, evaluate, print, loop). Escribe una expresión y pulsa Enter; Python la evalúa e imprime su valor:

Una sesión corta en el intérprete Consola de Python · repl_session.pycon
>>> 2 ** 100
1267650600228229401496703205376
>>> _ * 2
2535301200456458802993406410752
>>> name = "Asha"
>>> name.upper()
'ASHA'
>>> "upper" in dir(name)
True

Esta sesión se reprodujo con Python 3.14.8 en macOS 26 arm64 e imprimió exactamente lo que se muestra.

Las líneas que empiezan por >>> son lo que se escribió; las demás, lo que imprimió Python. Recorre la misma sesión, línea a línea, por el bucle que da nombre al intérprete:

Interactivo · etapa por etapa El bucle del intérprete, en la sesión de arriba Recorre las líneas de la sesión. Cada una da una vuelta al bucle, desde el indicador >>> hasta el siguiente indicador.
El bucle del intérprete, en la sesión de arriba, paso 8 de 8. Se ve: Leer la línea que escribes (>>> "upper" in dir(name)), Evaluarla (True o False), Imprimir el valor (True). Resaltado: Leer la línea que escribes.el siguiente indicador >>>Leer la línea que escribes>>> "upper" in dir(name)EvaluarlaTrue o FalseImprimir el valorTrue

El dibujo muestra la escena completa; sus 8 pasos aparecen abajo.

Todos los pasos en texto
  1. Leer 2 ** 100. Escribes 2 ** 100 y pulsas Enter. El intérprete lee la línea entera antes de hacer nada con ella.
  2. Evaluarla. Python calcula el valor: 2 elevado a 100, un número entero de 31 dígitos. Los números enteros de Python no tienen límite de tamaño, así que no se redondea nada.
  3. Imprimirlo y guardarlo en _. Una expresión tiene un valor, así que el intérprete lo imprime, con todos sus dígitos, y lo guarda en _ para la siguiente línea.
  4. Otra vuelta. De vuelta en el indicador, _ * 2 lee el último valor de _ y lo duplica, y el intérprete imprime el nuevo número de 31 dígitos.
  5. Una asignación no muestra nada. name = "Asha" es una sentencia, no una expresión: crea el nombre y no tiene ningún valor que mostrar, así que el siguiente indicador aparece enseguida.
  6. El texto aparece entre comillas. name.upper() da la cadena ASHA. El intérprete la muestra como la escribirías, 'ASHA', entre comillas, para que distingas el texto de un número.
  7. Preguntar por el objeto. dir(name) enumera los nombres que tiene una cadena, entre ellos sus métodos, e in pregunta si upper es uno de ellos. El intérprete muestra True.
  8. Salir del bucle. El bucle sigue hasta que lo dejas con exit, o con Ctrl-D en macOS y Linux (Ctrl-Z y después Enter en Windows). Todos los nombres que creaste se van con él.

Cuatro cosas en las que fijarte:

  • ** eleva un número a una potencia, así que 2 ** 100 es 21002^{100}. Los números enteros de Python no tienen límite de tamaño, así que el intérprete imprime los 31 dígitos en lugar de redondear el resultado.
  • El intérprete imprime por sí solo el valor de una expresión. Un script no: ahí necesitas print().
  • _ (un guion bajo) contiene el último valor que imprimió el intérprete, lo que te ahorra volver a escribirlo. Solo funciona en el intérprete.
  • dir(name) enumera los nombres que tiene un objeto, sus métodos y atributos; help(name.upper) muestra la documentación de uno de ellos. En una página de ayuda, pulsa q para volver al indicador.

El intérprete muestra cada valor como lo escribirías en el código, así que el texto va entre comillas, 'ASHA', y el texto '5' nunca parece el número 5. Una asignación como name = "Asha" no tiene ningún valor que mostrar, así que el siguiente indicador vuelve enseguida.

Para salir del intérprete, escribe exit (en el intérprete básico antiguo, exit()), o pulsa Ctrl-D en macOS y Linux, o Ctrl-Z y después Enter en Windows.

Nota de versión

Desde Python 3.13, el intérprete te deja editar un bloque entero de varias líneas y guarda tu historial. Python 3.14 añade colores de sintaxis y completa los nombres de módulos después de import cuando pulsas Tab. Si tu terminal tiene problemas con el intérprete nuevo, define la variable de entorno PYTHON_BASIC_REPL como 1 para tener el más sencillo.

El intérprete sirve para probar cosas. Todo lo que quieras conservar va en un archivo.

Punto de control

Comprueba: el intérprete interactivo y lo que imprime

  1. Pregunta 1 de 2 En el indicador >>>, name es "Asha". Escribes name.upper() y pulsas Enter. ¿Qué muestra el intérprete?

    Elige una respuesta.

    Ver la respuesta: pregunta 1 de 2

    Respuesta: 'ASHA', entre comillas

    El intérprete interactivo evalúa cada expresión y muestra su valor como lo escribirías, su repr, así que el texto aparece entre comillas: 'ASHA'. print() escribe el texto tal cual.

  2. Pregunta 2 de 2 En el intérprete escribes 7 * 6 y después _ + 1. ¿Qué muestra la segunda línea?

    Escribe un número.

    Una pista

    ¿Qué contiene _ después de la primera línea?

    Ver la respuesta: pregunta 2 de 2

    Respuesta: 43

    El intérprete muestra 42 y lo guarda en _. La segunda línea le suma 1 y muestra 43, que es lo que contiene _ después.

Un script se ejecuta de arriba abajo y solo imprime lo que tú imprimes

Un script es un archivo de código Python. python3 hello.py ejecuta el archivo hello.py de la carpeta actual, de la primera línea a la última, y termina. Añade -i (python3 -i hello.py) para quedarte en el intérprete interactivo cuando el script haya terminado, con todas sus variables todavía ahí para examinarlas.

La costumbre del intérprete de mostrar cada valor se queda en el intérprete. Aquí están las primeras líneas de la sesión guardadas como un archivo. Recórrelo y mira qué llega a la salida:

Interactivo · línea a línea Las líneas de la sesión como script Recorre el script y mira la salida. Las líneas 1 y 4 tienen valores, como los tenían en el intérprete; mira qué pasa con ellos.

Programa · bare_values.py

2 ** 100
print(2 ** 100)
name = "Asha"
name.upper()
print(name.upper())

Variables

Después de la línea 5: name vale 'Asha'.name'Asha'
  • cambiado en este paso

Impreso hasta ahora

1267650600228229401496703205376
ASHA

Cada paso se registró de una ejecución con Python 3.14.8 en macOS 26 arm64.

El dibujo muestra las variables cuando termina el programa, y los 6 pasos del programa aparecen abajo.

Línea ejecutada 5
Línea siguiente fin
Todos los pasos en texto
  1. Inicio. Todavía no se ha ejecutado ninguna línea, así que no hay variables. Python empieza por la línea 1.
  2. Línea 1. Se ejecuta 2 ** 100. Lo clave En el intérprete este valor aparecería enseguida. Un script lo calcula y lo descarta, porque nada pidió imprimirlo.
  3. Línea 2. print(2 ** 100) imprime 1267650600228229401496703205376.
  4. Línea 3. name = "Asha" asigna 'Asha' a name.
  5. Línea 4. name.upper() deja name como estaba. name.upper() da una cadena nueva, 'ASHA', y el script también la descarta. name no cambia.
  6. Línea 5. print(name.upper()) imprime ASHA. Era la última línea, así que el programa termina. Cinco líneas de código, dos líneas de salida: en un script, solo print() escribe algo.

Se ejecutaron cinco líneas y salieron dos: las líneas 1 y 4 calcularon sus valores y los descartaron, y print() escribió ASHA sin las comillas que muestra el intérprete. Pulsa Editar, envuelve la línea 4 en print() y vuelve a ejecutarlo: ahora imprime ASHA dos veces. Además, un script empieza sin ningún nombre, cada vez: una variable que creaste en el intérprete, o en la ejecución anterior, no existe en la siguiente.

Idea clave

El intérprete muestra el valor de cada expresión que escribes; un script solo muestra lo que escribe print(), y cada ejecución empieza sin ningún nombre.

Punto de control

Comprueba: lo que imprime un script y lo que conserva

  1. Pregunta 1 de 2 Un archivo contiene dos líneas, total = 2 + 3 y total * 2. ¿Qué imprime python3 cuando ejecuta el archivo?

    Elige una respuesta.

    Una pista

    ¿A cuál de las dos líneas habría respondido el intérprete?

    Ver la respuesta: pregunta 1 de 2

    Respuesta: Nada

    El intérprete muestra el valor de cada expresión; un script no. Envuelve la expresión en print(), así print(total * 2), para ver 10.

  2. Pregunta 2 de 2 En el intérprete escribes rate = 18, sales con exit y ejecutas un script cuya única línea es print(rate). ¿Qué pasa?

    Elige una respuesta.

    Ver la respuesta: pregunta 2 de 2

    Respuesta: Un NameError, porque el script empieza sin ningún nombre

    Una sesión del intérprete y un script empiezan cada uno sin nombres propios. Lo que el script necesite, tiene que crearlo él mismo. python3 -i script.py es la forma de conservar los nombres de un script para el intérprete después.

Una orden de una línea o un módulo pueden ejecutarse sin un script tuyo

Para un cálculo rápido, pasa el propio código con -c: python3 -c "print(2 ** 100)". Pon el código entre comillas para que el terminal se lo dé a Python en una sola pieza.

Nota de versión

Novedad de Python 3.14: primero se quita la sangría común al código que va después de -c, así que funciona un bloque con sangría pegado desde un archivo. Python 3.12 rechaza el mismo texto con IndentationError: unexpected indent.

python3 -m name encuentra el módulo llamado name, como lo haría import name, y lo ejecuta como un programa. Muchos módulos de la biblioteca estándar son útiles así:

  • python3 -m venv .venv crea un entorno virtual (una lección posterior).
  • python3 -m pip install … instala paquetes con pip.
  • python3 -m json data.json comprueba un archivo JSON y lo imprime con una sangría ordenada (nuevo en 3.14; python3 -m json.tool también funciona).
  • python3 -m http.server sirve los archivos de la carpeta actual en http://localhost:8000/ hasta que pulsas Ctrl-C. Otros dispositivos de tu red también pueden acceder, así que ejecútalo solo en una carpeta que no te importe compartir. Añadir --bind 127.0.0.1 lo limita a tu propia computadora.

Así que python3 se puede iniciar de cuatro formas, y el primer elemento de sys.argv, la lista de palabras de la línea de órdenes de la que trata la siguiente sección, le dice al programa cuál fue:

Escribes Python ejecuta sys.argv[0] es
python3 el intérprete interactivo '', una cadena vacía
python3 hello.py el archivo, de arriba abajo 'hello.py', tal como se escribió
python3 -c "code" el código entre las comillas '-c'
python3 -m name el módulo name la ruta completa del archivo del módulo

El módulo viene del mismo intérprete que el python3 que escribiste. Por eso python3 -m pip es la forma segura de instalar paquetes: los instala para ese Python, aunque una orden pip de tu PATH pertenezca a otro. Recorre ese caso en una computadora con dos Python:

Interactivo · paso a paso Una orden pip, dos Python Recorre dos instalaciones del paquete rich en una computadora con Python 3.12 y 3.14, y después el script que lo necesita.
Una orden pip, dos Python, paso 5 de 5. Se ve: pip install rich, Python 3.12 (tiene rich), python3 -m pip …, Python 3.14 (lo que ejecuta python3, tiene rich), python3 app.py. Resaltado: python3 app.py.pip install richel pip que PATH encuentra primeroPython 3.12tiene richpython3 -m pip …install richPython 3.14lo que ejecuta python3, tiene richpython3 app.pyimport richimport rich

El dibujo muestra la escena completa; sus 5 pasos aparecen abajo.

Todos los pasos en texto
  1. Dos Python en una computadora. Esta computadora tiene Python 3.12 y Python 3.14. python3 ejecuta 3.14, pero la orden pip que PATH encuentra primero se instaló con 3.12.
  2. pip install rich. pip instala en el Python al que pertenece, 3.12, e informa de que todo salió bien. La instalación no tiene ningún problema; fue al otro Python.
  3. El script no lo encuentra. python3 app.py ejecuta 3.14, cuyos paquetes no incluyen rich, así que import rich falla con ModuleNotFoundError.
  4. python3 -m pip. -m pip ejecuta el módulo pip del Python que escribiste. Por eso python3 -m pip install rich instala en 3.14, el Python que ejecuta tu script.
  5. Ahora la importación funciona. El mismo python3 app.py ya encuentra rich. Escribir python3 -m pip ata cada instalación al intérprete que va a ejecutar tu código.

La primera instalación fue a Python 3.12 porque el pip que el terminal encontró primero era suyo; nombrar el intérprete, python3 -m pip, envió la segunda adonde busca app.py.

Punto de control

Comprueba: ejecutar código con -c y módulos con -m

  1. Pregunta 1 de 2 pip --version dice que pip pertenece a Python 3.12, y python3 ejecuta Python 3.14. ¿Qué orden instala rich para que python3 app.py pueda importarlo?

    Elige una respuesta.

    Una pista

    ¿Qué orden nombra el intérprete que va a ejecutar app.py?

    Ver la respuesta: pregunta 1 de 2

    Respuesta: python3 -m pip install rich

    python3 -m pip ejecuta el módulo pip que pertenece al mismo intérprete que python3, así que instala donde va a buscar app.py. Una orden pip de PATH puede pertenecer a cualquier Python.

  2. Pregunta 2 de 2 ¿Qué imprime python3 -c "import sys; print(sys.argv)"?

    Elige una respuesta.

    Ver la respuesta: pregunta 2 de 2

    Respuesta: ['-c']

    sys.argv[0] dice qué ejecutó Python: el nombre del script tal como se escribió, '-c' para una orden de una línea, la ruta completa del archivo del módulo con -m, y una cadena vacía en el intérprete interactivo.

sys.argv contiene los argumentos, todos como cadenas

Las palabras que escribes después del nombre del script llegan al programa en sys.argv, una lista de cadenas. El elemento 0 es el nombre del script tal como lo escribiste; después van los argumentos:

Leer los argumentos de la línea de órdenes Python · args_demo.py
import sys

# A terminal fills sys.argv from the command line:  python3 args_demo.py Asha 3
# A browser has no command line, so when no arguments were given we set the same list here.
if len(sys.argv) <= 1:
    sys.argv = ["args_demo.py", "Asha", "3"]

print("Script name:", sys.argv[0])
print("Arguments:", sys.argv[1:])
print("Number of arguments:", len(sys.argv) - 1)

Salida

Script name: args_demo.py
Arguments: ['Asha', '3']
Number of arguments: 2

Salida registrada con Python 3.14.8 en macOS 26 arm64. Para ejecutarlo tú: mise exec python@3.14.8 -- python3 args_demo.py

Ejecútalo como python3 args_demo.py Ravi 5 extra y en su lugar imprime esos tres argumentos. Un navegador no tiene línea de órdenes, así que cuando el programa no recibe argumentos, como en un ejecutor del navegador, pone él mismo la lista, como la habría puesto un terminal. Recorre lo que hace un terminal con esa línea:

Interactivo · paso a paso De una línea de órdenes a sys.argv Recorre una línea de órdenes: python3 args_demo.py Ravi 5 extra. La columna de la izquierda es lo que escribiste; la de la derecha, la lista que recibe el programa.
De una línea de órdenes a sys.argv, paso 5 de 5. Se ve: args_demo.py, Ravi, 5, extra, sys.argv[0], sys.argv[1], sys.argv[2], sys.argv[3]. Resaltados: sys.argv[1], sys.argv[2], sys.argv[3].args_demo.pyel scriptRavi5extrasys.argv[0]'args_demo.py'sys.argv[1]'Ravi'sys.argv[2]'5'sys.argv[3]'extra'

El dibujo muestra la escena completa; sus 5 pasos aparecen abajo.

Todos los pasos en texto
  1. El terminal divide la línea. Escribes python3 args_demo.py Ravi 5 extra. El terminal divide la línea por los espacios; python3 es el programa que inicia, y el resto de las palabras se le pasan a él.
  2. El elemento 0 es el script. Python ejecuta args_demo.py y pone el nombre del script, tal como lo escribiste, en sys.argv[0].
  3. Siguen los argumentos. Cada palabra después del script pasa a ser el siguiente elemento de la lista, por orden: de sys.argv[1] a sys.argv[3].
  4. Cada elemento es una cadena. sys.argv[2] es el texto 5, no el número. int(sys.argv[2]) lo convierte en el número 5 antes de cualquier cálculo.
  5. Contar los argumentos. La lista tiene cuatro elementos, así que el programa recibió len(sys.argv) - 1 = 3 argumentos, que es lo que imprime la ejecución registrada de abajo.

Cada palabra se convirtió en un Una palabra escrita después del nombre de un programa, como Ravi en python3 greet.py Ravi. Python le pasa los argumentos al programa como cadenas, en la lista sys.argv., por orden, como texto. Aquí está el mismo programa, ejecutado exactamente con esas tres palabras después de su nombre:

args_demo.py con tres argumentos Python · terminal/args_demo.py
import sys

# A terminal fills sys.argv from the command line:  python3 args_demo.py Asha 3
# A browser has no command line, so when no arguments were given we set the same list here.
if len(sys.argv) <= 1:
    sys.argv = ["args_demo.py", "Asha", "3"]

print("Script name:", sys.argv[0])
print("Arguments:", sys.argv[1:])
print("Number of arguments:", len(sys.argv) - 1)

Salida

Script name: args_demo.py
Arguments: ['Ravi', '5', 'extra']
Number of arguments: 3

Salida registrada con Python 3.14.8 en macOS 26 arm64. Para ejecutarlo tú: mise exec python@3.14.8 -- python3 args_demo.py Ravi 5 extra

Atención

Todos los argumentos son cadenas, incluso 3. Conviértelo antes de hacer cálculos: int(sys.argv[2]). Para programas con opciones y texto de ayuda, el módulo argparse (que este curso trata más adelante) hace el análisis por ti.

Punto de control

Comprueba: los argumentos de la línea de órdenes en sys.argv

  1. Una pregunta Ejecutas python3 greet.py Ravi 5. ¿Qué es sys.argv[2]?

    Elige una respuesta.

    Ver la respuesta: una pregunta

    Respuesta: '5', una cadena

    sys.argv es ['greet.py', 'Ravi', '5']. La posición 2 contiene el texto '5'; conviértelo con int() antes de hacer cálculos.

Compilador de Python en línea (en inglés) Prueba los ejemplos del intérprete como script: envuelve cada expresión en print().

Practica: leer un nombre y un número

Escribe parse_args(argv), que lee un nombre y un número opcional de una lista como sys.argv y se detiene con un mensaje de uso cuando la línea de órdenes está mal. Sus pruebas de ejemplo prueban un nombre que falta, un número que no es un número y argumentos que sobran:

Ejercicio · Fácil · Python

Leer un nombre y un número de la línea de órdenes

Un programa lee sus argumentos de sys.argv; una función que recibe esa lista como parámetro es más fácil de probar. Escribe parse_args(argv) para un programa que se usa como greet.py NAME [COUNT], donde los corchetes indican que el número se puede omitir.

  • argv es una lista como sys.argv: primero el nombre del programa y después los argumentos, todos ellos cadenas.
  • Devuelve una tupla (name, count) con count como número entero: parse_args(["greet.py", "Asha", "3"]) devuelve ("Asha", 3).
  • Cuando se omite el número, es 1: parse_args(["greet.py", "Ravi"]) devuelve ("Ravi", 1).
  • Cuando falta el nombre, sobran argumentos o el número no es un entero de al menos 1, lanza SystemExit con el mensaje usage: greet.py NAME [COUNT].

raise SystemExit("usage: greet.py NAME [COUNT]") detiene un programa con ese mensaje, como lo hace sys.exit() con un mensaje.

Código inicial · greet.py

def parse_args(argv):
    """Return (name, count) from a list like sys.argv, or stop with the usage message."""
    name = argv[1]
    count = argv[2]
    return name, count
Las pruebas de ejemplo · test_greet.py
from greet import parse_args

USAGE = "usage: greet.py NAME [COUNT]"


def exits_with_usage(argv):
    """True when parse_args(argv) stops the program with the usage message."""
    try:
        parse_args(argv)
    except SystemExit as stop:
        return str(stop.code) == USAGE
    return False


def test_name_and_count():
    """reads the name and the count as a number"""
    assert parse_args(["greet.py", "Asha", "3"]) == ("Asha", 3)
    assert parse_args(["greet.py", "Mei", "1"]) == ("Mei", 1)


def test_count_defaults_to_one():
    """uses 1 when the count is left out"""
    assert parse_args(["greet.py", "Ravi"]) == ("Ravi", 1)


def test_missing_name():
    """stops with the usage message when the name is missing"""
    assert exits_with_usage(["greet.py"])


def test_bad_count():
    """stops with the usage message for a count that is not a whole number of at least 1"""
    assert exits_with_usage(["greet.py", "Asha", "three"])
    assert exits_with_usage(["greet.py", "Asha", "0"])
    assert exits_with_usage(["greet.py", "Asha", "-2"])


def test_too_many_arguments():
    """stops with the usage message when there are extra arguments"""
    assert exits_with_usage(["greet.py", "Asha", "3", "extra"])
Una pista

Comprueba cuántos elementos tiene argv antes de leerlos: len(argv) es 2 solo con un nombre y 3 con un nombre y un número. "3".isdigit() es True y "three".isdigit() es False, así que comprueba el texto antes de llamar a int() con él.

Las pruebas de ejemplo se ejecutan en este dispositivo, en tu navegador (Pyodide): no se envía nada a mysmartcopilot.com. La primera ejecución descarga Python (unos 13.5 MB), que se guarda para las siguientes. Una comprobación en tu navegador es una orientación para ti, no la prueba de que el código sea correcto con cualquier entrada.

Después responde las preguntas sobre el intérprete, los scripts, -c, -m y sys.argv. Lo que menos dominas se pregunta primero, y cada opción viene con el motivo de que sea correcta o no:

Práctica que se adapta a ti

Practica esta lección

13 preguntas sobre 4 ideas de esta lección. Cada respuesta se explica al momento, y lo que aciertas se guarda en este navegador.

  1. Pregunta 1 de 13 En el intérprete interactivo, ¿qué contiene _ (un guion bajo)?

    Elige una respuesta.

    Ver la respuesta: pregunta 1 de 13

    Respuesta: El último valor que imprimió el intérprete

    El intérprete guarda en _ el último valor que imprimió, así que _ * 2 lo usa sin volver a escribirlo. Es algo solo del intérprete: en un script, _ no tiene ningún significado especial.

  2. Pregunta 2 de 13 En el intérprete, name es "Asha". ¿Qué llamada enumera los métodos y atributos que tiene name?

    Elige una respuesta.

    Ver la respuesta: pregunta 2 de 13

    Respuesta: dir(name)

    dir(name) enumera los nombres que tiene un objeto, sus métodos y atributos; después, help(name.upper) muestra la documentación de uno de ellos. En una página de ayuda, q te devuelve al indicador.

  3. Pregunta 3 de 13 El intérprete imprime 2 ** 100 entero. ¿Cuántos dígitos tiene?

    Escribe un número.

    Ver la respuesta: pregunta 3 de 13

    Respuesta: 31 dígitos

    2 ** 100 es 1267650600228229401496703205376, 31 dígitos. Los números enteros de Python crecen todo lo que haga falta, así que el intérprete imprime todos los dígitos en lugar de redondear el resultado.

  4. Pregunta 4 de 13 En el intérprete, "Asha" muestra 'Asha' mientras que print("Asha") muestra Asha. ¿Por qué la diferencia?

    Elige una respuesta.

    Ver la respuesta: pregunta 4 de 13

    Respuesta: El intérprete muestra un valor como lo escribirías, mientras que print() escribe el texto tal cual

    El intérprete muestra el valor de una expresión como lo escribirías en el código, su repr, así que una cadena aparece entre comillas y '5' se ve distinto de 5. print() escribe el texto para quien lo lee, sin comillas.

  5. Pregunta 5 de 13 ¿Qué hace python3 -i report.py?

    Elige una respuesta.

    Ver la respuesta: pregunta 5 de 13

    Respuesta: Ejecuta report.py y después abre el intérprete interactivo con las variables del script todavía ahí

    -i ejecuta el script de arriba abajo y después te da el indicador >>> en el mismo intérprete, con todos los nombres que creó el script. Sirve cuando un script termina con un error y quieres mirar sus variables.

  6. Pregunta 6 de 13 Este es bare_values.py, ejecutado como script con python3 bare_values.py. ¿Qué imprime?

    Lee el código y elige una respuesta.

    2 ** 100
    print(2 ** 100)
    name = "Asha"
    name.upper()
    print(name.upper())
    Ver la respuesta: pregunta 6 de 13

    Respuesta: 1267650600228229401496703205376 ASHA

    Un script ejecuta todas las líneas pero solo imprime lo que escribe print(): el número de la línea 2 y ASHA de la línea 5.

  7. Pregunta 7 de 13 El script de un compañero termina con la línea monthly_total(orders) y “no imprime nada”, aunque la función devuelve 4850. ¿Qué le sugieres?

    Elige una respuesta.

    Ver la respuesta: pregunta 7 de 13

    Respuesta: Imprimir el valor, print(monthly_total(orders)), porque un script no muestra nada que no se le pida imprimir

    El intérprete muestra el valor de cada expresión; un script solo muestra lo que escribe print(). La solución es print(...), o ejecutar el script con -i y mirar el valor en el intérprete después.

  8. Pregunta 8 de 13 ¿Qué órdenes ejecutan el módulo json de la biblioteca estándar como programa sobre data.json?

    Elige todas las respuestas correctas.

    Ver la respuesta: pregunta 8 de 13

    Respuesta:

    • python3 -m json.tool data.json
    • python3 -m json data.json

    -m ejecuta un módulo por su nombre de importación. python3 -m json funciona desde Python 3.14, y python3 -m json.tool también funciona. Sin -m, python3 json busca un archivo llamado json, y -c espera código Python.

  9. Pregunta 9 de 13 python3 -m http.server se está ejecutando en una carpeta. ¿Quién puede descargar sus archivos?

    Elige una respuesta.

    Ver la respuesta: pregunta 9 de 13

    Respuesta: Cualquier dispositivo que pueda llegar a esta computadora por el puerto 8000, porque el servidor escucha en todas las interfaces de red

    Por defecto, http.server escucha en todas las interfaces por el puerto 8000 y sirve la carpeta actual. --bind 127.0.0.1 lo limita a tu propia computadora.

  10. Pregunta 10 de 13 Solo quieres ver una página web en tu propio navegador, en una computadora portátil conectada al Wi-Fi de una cafetería. ¿Qué orden te sirve?

    Elige una respuesta.

    Ver la respuesta: pregunta 10 de 13

    Respuesta: python3 -m http.server --bind 127.0.0.1

    -m http.server ejecuta el módulo, y --bind 127.0.0.1 hace que escuche solo en la dirección de loopback. Usa el valor por defecto, todas las interfaces, solo cuando otro dispositivo tenga que llegar a él, y solo en una carpeta que quieras compartir.

  11. Pregunta 11 de 13 ¿Qué imprime args_demo.py cuando se ejecuta sin argumentos, como en un navegador?

    ¿Qué imprime este programa? Elige una respuesta.

    import sys
    
    # A terminal fills sys.argv from the command line:  python3 args_demo.py Asha 3
    # A browser has no command line, so when no arguments were given we set the same list here.
    if len(sys.argv) <= 1:
        sys.argv = ["args_demo.py", "Asha", "3"]
    
    print("Script name:", sys.argv[0])
    print("Arguments:", sys.argv[1:])
    print("Number of arguments:", len(sys.argv) - 1)
    Ver la respuesta: pregunta 11 de 13

    Respuesta: imprime

    Script name: args_demo.py
    Arguments: ['Asha', '3']
    Number of arguments: 2

    Sin argumentos, el programa asigna ["args_demo.py", "Asha", "3"] a sys.argv. El elemento 0 es el nombre del script, sys.argv[1:] contiene los argumentos, y todos los argumentos son cadenas, así que el 3 se imprime como '3'.

  12. Pregunta 12 de 13 Ejecutas este archivo como python3 show.py 3. ¿Qué imprime?

    Lee el código y elige una respuesta.

    import sys
    print(type(sys.argv[1]).__name__)
    Ver la respuesta: pregunta 12 de 13

    Respuesta: str

    Todos los argumentos de la línea de órdenes llegan al programa como cadenas, aunque parezcan números, así que el tipo es str. Conviértelo con int(sys.argv[1]) antes de hacer cálculos.

  13. Pregunta 13 de 13 greet.py ejecuta count = sys.argv[2] y después for i in range(count):. Ejecutado como python3 greet.py Asha 3, se detiene con un TypeError. ¿Cuál es la solución?

    Elige una respuesta.

    Ver la respuesta: pregunta 13 de 13

    Respuesta: count = int(sys.argv[2])

    Los argumentos de la línea de órdenes son cadenas, y range('3') lanza TypeError. Convierte una sola vez, donde se lee el argumento: count = int(sys.argv[2]), y compruébalo, como hace el ejercicio.

Preguntas de entrevista

Calentamiento (júnior): ¿qué diferencia hay entre ejecutar código en el REPL y ejecutarlo como script?

El REPL, el intérprete interactivo que inicia python3 sin archivo, lee una línea cada vez en el indicador >>>, la ejecuta e imprime el valor de cada expresión como lo escribirías, así que el texto aparece entre comillas. Conserva todos los nombres que creas, y el último valor en _, hasta que sales. Un script es un archivo que python3 file.py ejecuta de arriba abajo de una vez: solo imprime lo que escribe print(), y cada ejecución empieza de nuevo sin ningún nombre. Usa el REPL para probar una idea y para mirar valores con dir() y help(); pon en un script todo lo que quieras conservar o volver a ejecutar. python3 -i file.py ejecuta un script y después abre el REPL con sus variables todavía ahí.

Dos preguntas más difíciles parten de esta lección: un script cuya línea de órdenes falla en una tarea programada, y un python3 -m http.server iniciado en la carpeta equivocada. Decide tu primer paso antes de abrir cada una:

Las respuestas modelo se abren con cualquier pase: 79 ₹ por 1 semana (2,99 US$), un solo pago que nunca se renueva.

  1. De júnior a nivel medio

    python3 top.py marks.csv 5 imprime las cinco mejores notas, y funciona cuando lo ejecutas tú. Una tarea programada que omitió el número falla con IndexError, y una ejecución con el cinco escrito con letras falla con ValueError a mitad de su salida. ¿Cómo leerías los argumentos para que cualquier llamada mal hecha falle pronto y con claridad?

    Respuesta modelo, Pro. Las respuestas modelo se abren con cualquier pase; los precios están en el aviso de esta página. Primer paso y preguntas de seguimiento (en inglés)

  2. De júnior a nivel medio

    Para pasarle un PDF a un compañero por el Wi-Fi de la universidad, un estudiante ejecuta python3 -m http.server en su carpeta personal. ¿A qué pueden acceder ahora los demás en esa red, y cómo compartirías el archivo, si http.server sigue siendo la herramienta?

    Respuesta modelo, Pro. Primer paso y preguntas de seguimiento (en inglés)

Para recordar

  • python3 solo inicia el intérprete interactivo, que imprime cada valor; sal de él con exit o Ctrl-D (Ctrl-Z e Enter en Windows).
  • python3 file.py ejecuta un script, -i deja abierto el intérprete después, y -c "code" ejecuta una orden de una línea.
  • Un script solo imprime lo que escribe print(), y cada ejecución empieza sin nombres propios.
  • python3 -m module ejecuta un módulo con el mismo intérprete, y por eso python3 -m pip instala en el Python correcto.
  • sys.argv contiene el nombre del script y los argumentos, todos como cadenas.

Tarjetas · 3 tarjetas

Repaso rápido

Di la respuesta para ti antes de mirarla: recordarla es lo que hace que se quede.

  1. ¿Qué contiene _ en el intérprete interactivo?

    El último valor que imprimió el intérprete. Solo existe en el intérprete, no en los scripts.

  2. ¿Por qué python3 -m pip es más seguro que una orden pip sola?

    Ejecuta pip exactamente para ese intérprete, así que los paquetes se instalan para el Python que querías, aunque otro pip vaya primero en tu PATH.

  3. ¿De qué tipo son los elementos de sys.argv?

    Cadenas. sys.argv[0] es el nombre del script; convierte un argumento con int() antes de hacer cálculos con él.

Referencias

Herramientas relacionadas

Informar de un problema con esta lección (en inglés)

Respuestas rápidas y búsqueda de herramientas

Escribe para buscar herramientas o para obtener una respuesta rápida (en inglés), por ejemplo 18% of 2500. Usa las flechas arriba y abajo para recorrer los resultados, Intro para elegir y Escape para cerrar.