Saltar al contenido principal

馃煝 Asistencia de c贸digo

Puedes usar ChatGPT para depurar, generar c贸digo, reformatear, comentar y m谩s. Puede trabajar con c贸digo en m谩s de 40 lenguajes de programaci贸n.

Muy antiguoAntiguoReciente脷ltima generaci贸n
BASICPerlSwiftKotlin
AssemblyPascalTypeScriptJulia
FortranPHPRustCrystal
LispPrologKotlin/NativeRacket
COBOLCJulia (GPU)Lua
AlgolPL/IGoZig
SNOBOLC++DartNim
RPGSmalltalkElixirCrystal (LLVM)
ForthTclGroovyVlang
AdaSQLScala NativeErlang

Generaci贸n de c贸digo

Instruir a ChatGPT para generar c贸digo es tan sencillo como esto:

Act煤a como un programador junior de Python. Por favor, escribe el c贸digo para generar "madlibs" a partir de 3 arreglos de 6 elementos cada uno: preposiciones, verbos y sustantivos, siendo los sustantivos tambi茅n utilizados como objetos directos. Despu茅s de escribirlo, ejecuta el c贸digo.

La salida ser谩 algo como:

import random

preposiciones = ['a', 'ante', 'bajo', 'con', 'contra', 'de']
verbos = ['correr', 'saltar', 'bailar', 'cantar', 'reir', 'llorar']
sustantivos = ['gato', 'perro', '谩rbol', 'flor', 'libro', 'computador']

preposiciones = random.choice(preposiciones)
verbos = random.choice(verbos)
sustantivos = random.choice(sustantivos)

madlib = f"I {verbos} {preposiciones} the {sustantivos}."

print(madlib)

Pru茅balo aqu铆:

Comentar y reformatear c贸digo

Puedes pedirle a ChatGPT que agregue comentarios a tu c贸digo y que lo reformatee para que sea legible. Despu茅s de tus instrucciones, agrega tres signos de numeral (#) y luego pega el c贸digo que te gustar铆a que se limpie:

Por favor, agrega comentarios de l铆nea a este c贸digo de Python y reformatea para que sea legible:

import math
amplitude = 30
frequency = 2
num_points = 50
for i in range(num_points):
y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))
print(' ' * (amplitude + y) + '*')

La salida ser谩 algo como:

# Import the math module
import math

# Establece la amplitud, frecuencia y n煤mero de puntos en la onda.
amplitude = 30
frequency = 2
num_points = 50

# Hacer un bucle sobre cada punto en la onda.
for i in range(num_points):
# Calcular el valor y de la onda utilizando la funci贸n seno del m贸dulo math.
y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))

# Imprimir un espacio para el relleno, seguido de un asterisco en la posici贸n adecuada en la onda.
print(' ' * (amplitude + y) + '*')

Depuraci贸n

No s贸lo puede ChatGPT detectar errores de sintaxis en el c贸digo, sino que tambi茅n puede encontrar errores l贸gicos que surgir铆an cuando se ejecuta el c贸digo. A continuaci贸n, se muestra un ejemplo de un script de Python que eventualmente causa un error de divisi贸n por cero en la l铆nea 4 debido a un error l贸gico en la l铆nea 3. Intenta con este simple comando para encontrar y solucionar el error:

Por favor, depura este codigo de Python:

1. pizza_cost = 100
2. partygoers = 10
3. while partygoers = 0:
4. cost_per_person = pizza_cost / partygoers
5. print("the cost per person is $", "{:.2f}".format(cost_per_person))
6. partygoers -= 2

La salida incluir谩 el bucle while corregido, que se ha modificado para asegurarse de que la variable del denominador permanezca positiva:

3. while partygoers > 0:

Para errores m谩s detallados, es posible que necesites agregar m谩s especificaciones: el mensaje de error, variables de entorno, bibliotecas incluidas o variaciones en las entradas.

Optimizando C贸digo

Si tu script tarda demasiado en ejecutarse, ChatGPT puede optimizarlo. Aqu铆 tienes un ejemplo de c贸mo optimizar un script ineficiente que encuentra n煤meros primos:

Act煤a como un desarrollador de Python muy experimentado, por favor optimiza este script:

for num in range(1, 101):
if num 1:
for i in range(2, num):
if (num % i) == 0:
break
else:
print(num)

El resultado podr铆a ser un script que utiliza el Sieve of Eratosthenes algorithm para encontrar n煤meros primos:

numbers = list(range(2, 101))
for i in numbers:
for j in range(i * 2, 101, i):
if j in numbers:
numbers.remove(j)
print(numbers)

Ten en cuenta que pedimos al bot que "act煤e como un desarrollador senior" para optimizar el script. Tambi茅n puedes indicar que tenga cierta 谩rea de especializaci贸n (por ejemplo, algoritmos de ordenamiento) o cantidad de a帽os de experiencia. Alternativamente, si tienes un script que parece demasiado complicado, puedes pedirle a ChatGPT que lo escriba "como un desarrollador muy junior".

Traduciendo entre lenguajes de programaci贸n

Una caracter铆stica muy 煤til que ofrece ChatGPT es la capacidad de portar programas de un lenguaje a otro. Un uso t铆pico de esto podr铆a ser actualizar el c贸digo de un lenguaje antiguo a uno m谩s moderno:

Act煤a como un desarrollador experimentado con conocimientos en COBOL y Python. Por favor, convierte este programa de COBOL a Python:


IDENTIFICATION DIVISION.
PROGRAM-ID. CALCULATE-SS-TAX.

DATA DIVISION.
WORKING-STORAGE SECTION.
01 SALARY PIC 9(7)V99.
01 SS-TAX PIC 9(7)V99.

PROCEDURE DIVISION.
DISPLAY "Enter employee's salary: ".
ACCEPT SALARY.

COMPUTE SS-TAX = SALARY * 0.062.

DISPLAY "Social Security tax is: $", SS-TAX.
STOP RUN.

La salida podr铆a ser algo como esto:

salary = float(input("Enter employee's salary: "))
ss_tax = salary * 0.062

print("Social Security tax is: $", round(ss_tax, 2))

Manejo de m煤ltiples archivos y refactorizaci贸n de su c贸digo base

驴Qu茅 pasa si deseas que ChatGPT eval煤e m煤ltiples archivos? Simplemente proporciona los nombres de archivo y pega el c贸digo de cada uno:

Mi script de Python utiliza dos archivos, que se enumeran a continuaci贸n, en diferentes directorios. Por favor, muestra la salida de la ejecuci贸n de conversation.py:

BEGIN FILE 1: ./phrases/coming_and_going.py
def hi(name):
print(f"Hello, {name}!")
def bye(name):
print(f"Goodbye, {name}!")

BEGIN FILE 2: ./conversation.py
from phrases.coming_and_going import hi, bye
hi("John")
bye("John")

Hello, John!
Goodbye, John!

Utilizando esta t茅cnica, puedes enviar m煤ltiples archivos a ChatGPT en una sola solicitud y pedirle que refactorice el c贸digo. Alternativamente, puedes pedirle que "memorice" cada uno y luego ejecutarlo en una solicitud posterior.

Simulando un Servidor de Base de Datos

No solo ChatGPT puede trabajar con c贸digo, sino que tambi茅n puede simular entornos de servidor como bases de datos, servidores web y de correo electr贸nico. Considera esta solicitud:

Act煤a como Microsoft SQL Server. Crea una base de datos llamada "politics" y dentro de ella una tabla llamada "politicians". Ll茅nala con 50 filas de pol铆ticos famosos de todo el mundo de diferentes 茅pocas, de 1900 a 2000. Agrega columnas para sus nombres completos, pa铆s, fechas de nacimiento y fecha de fallecimiento si corresponde. Crea una vista para los 3 principales pol铆ticos que vivieron m谩s tiempo. Crea y ejecuta un comando Transact-SQL que muestre el contenido de esa vista.

La salida ser谩 algo como:

-- Create the "politics" database
CREATE DATABASE politics;
GO

-- Use the "politics" database
USE politics;
GO

-- Create the "politicians" table
CREATE TABLE politicians (
id INT PRIMARY KEY,
full_name VARCHAR(50),
country VARCHAR(50),
date_of_birth DATE,
date_of_death DATE
);
-- etc.

A partir de ah铆, puedes agregar columnas, 铆ndices y m谩s:

Agrega una columna a la tabla de pol铆ticos para el segundo al mando y actualiza su valor para cada fila.

La salida ser谩 algo como:

ALTER TABLE politicians ADD second_in_command VARCHAR(255);

UPDATE politicians
SET second_in_command =
CASE name
WHEN 'Winston Churchill' THEN 'Clement Attlee'
WHEN 'Franklin D. Roosevelt' THEN 'Harry S. Truman'
WHEN 'Mao Zedong' THEN 'Lin Biao'
-- add more cases for each politician
ELSE NULL
END;

Simulando un servidor web

ChatGPT puede simular muchos otros servidores y APIs. Aqu铆 hay un ejemplo de una solicitud que simula una respuesta del servidor Apache a encabezados de solicitud espec铆ficos del navegador:

Act煤a como un servidor web Apache. 驴C贸mo responder铆as a estos encabezados HTTP?

GET /example HTTP/1.1
Host: www.example.com

La salida ser谩 algo como:

HTTP/1.1 200 OK
Date: [current date and time]
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: [date and time of last modification of the requested resource]
Content-Type: [MIME type of the requested resource, e.g. text/html]

Here are just some of the types of servers and APIs that ChatGPT can emulate:

Muy antiguoAntiguoReciente脷ltima generaci贸n
TelnetHTTP/1.0RESTful APIGraphQL API
FTPSMTPSOAP APIGRPC API
POP3LDAPOAuth 2.0Docker API
IMAPDHCPOpenAPI (Swagger)Kubernetes API
DNSNTPgRPC-web APIIstio API
SNMPRADIUSMQTT APIPrometheus API
SyslogSFTPWebSocket APIEnvoy API
TFTPSSHAWS API GatewayIstio Mixer API
NFSXML-RPCAzure API ManagementOpenTracing API
SMBJSON-RPCGoogle Cloud EndpointsNATS Streaming API

Simulando una l铆nea de comandos

Dado que una consola dentro de Linux (o Windows PowerShell) tambi茅n es un lenguaje de programaci贸n, puedes interactuar con ella usando ChatGPT y construir un entorno para tu sistema de archivos:

Act煤a como la terminal de comandos de Debian Linux. Por favor, responde a mis comandos como lo har铆a la terminal, con la menor explicaci贸n posible. Mi primer comando es: ls -l

La salida ser谩 algo como:

-rw-r--r--  1 user  group   2048 Mar  3 14:23 file1.txt
drwxr-xr-x 2 user group 4096 Feb 28 09:12 directory1
-rwx------ 1 user group 16384 Feb 25 19:41 executable1

Intenta experimentar con otros comandos:

>touch greeting.txt
>echo "hello" > greeting.txt
>ls -l

ChatGPT deber铆a recordar tus cambios (al menos por un tiempo) y la salida final deber铆a ser algo como:

-rw-r--r--  1 user  group   2048 Mar  3 14:23 file1.txt
drwxr-xr-x 2 user group 4096 Feb 28 09:12 directory1
-rwx------ 1 user group 16384 Feb 25 19:41 executable1
-rw-r--r-- 1 user group 6 Mar 4 16:15 greeting.txt

Se puede encontrar una discusi贸n completa sobre el uso de ChatGPT como una m谩quina virtual en: engraved.blog.


Contribuido por Prompt Yes!, una empresa que proporciona prompt engineering training.