Перейти до основного вмісту

🟡 Допрацювання коду

Ви можете використовувати ChatGPT для налагодження, створення, переформатування, коментування коду тощо. Він працює з кодом на понад 40 мовах програмування.

ДревніЗастаріліНещодавніСвіжі
BASICPerlSwiftKotlin
AssemblyPascalTypeScriptJulia
FortranPHPRustCrystal
LispPrologKotlin / NativeRacket
COBOLCJulia (GPU)Lua
AlgolPL/IGoZig
SNOBOLC++DartNim
RPGSmalltalkElixirCrystal (LLVM)
ForthTclGroovyVlang
AdaSQLScala NativeErlang
Java

Генерування коду​

Доручити ChatGPT генерувати код так само просто:

Ти програміст-початківець Phyton. Напиши код для створення madlibs із 3 масивів по 6 елементів у кожному: прийменники, дієслова та іменники, причому іменники також у ролі додатків. Після написання, виконай код.

Приблизний результат:

import random

prepositions = ['at', 'in', 'on', 'with', 'under', 'over']
verbs = ['run', 'jump', 'dance', 'sing', 'laugh', 'cry']
nouns = ['cat', 'dog', 'tree', 'flower', 'book', 'computer']

preposition = random.choice(prepositions)
verb = random.choice(verbs)
noun = random.choice(nouns)

madlib = f"I {verb} {preposition} the {noun}."

print(madlib)

Спробуйте:

Коментування та переформатування коду​

Ви можете попросити ChatGPT додати коментарі до вашого коду та переформатувати його для читабельності. Після вашого запиту додайте три хеш-мітки, а потім вставте код, який хочете підчистити:

Додай рядкові коментарі до цього коду Python і переформатуй його для читабельності:  

import math
amplitude = 30
drequency = 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) + '*')
###

Приблизний результат:

# Імпортувати математичний модуль
import math

# Встановити амплітуду, частоту та кількість точок у хвилі
amplitude = 30
frequency = 2
num_points = 50

# Зациклити кожну точку на хвилі
for i in range(num_points):
# Обчислити значення «y» хвилі за допомогою функції синусоїдів з математичного модуля
y = int(round(amplitude * math.sin(2 * math.pi * frequency * i / num_points)))

# Вивести місце для результату з зірочкою у відповідних моментах хвилі
print(' ' * (amplitude + y) + '*')

Налагодження​

ChatGPT вміє виявляти в коді не тільки синтаксичні помилки, а й логічні, які можуть виникати під час виконання коду. Нижче наведено приклад скрипту Python, який, зрештою, видає помилку ділення на нуль у рядку 4 через логічну помилку у рядку 3. Створіть цей простий запит, щоб знайти та виправити помилку:

Налагодь цей код Python:  

1. pizza_cost = 100
2. partygoers = 10
3. while partygoers = 0:
4. cost_per_person = pizza_cost / partygoers
5. print("вартість на особу становить $", "{:.2f}".format(cost_per_person))
6. partygoers -= 2

Результат міститиме виправлений цикл while, який змінено для гарантії, що змінна знаменника залишиться додатною:

3. while partygoers > 0:

Для делікатніших помилок додайте більше уточнень: повідомлення про помилку, змінні середовища, включені бібліотеки або варіації вхідних даних.

Оптимізація коду​

Якщо ваш скрипт виконується надто довго, ChatGPT допоможе оптимізувати його. Ось приклад оптимізації неефективного скрипту для знаходження простих чисел:

Ти старший розробник Python. Оптимізуй цей скрипт:  

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

У результаті може вийти сценарій з використанням алгоритму Решето Ератосфена для пошуку простих чисел:

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)

Зауважте, що ми попросили бота «діяти як старший розробник», щоб оптимізувати скрипт. Ви також можете вказати, що він обізнаний у певних галузях (наприклад, алгоритми сортування) або має певну кількість досвіду. Крім того, якщо у вас є занадто нагромаджений скрипт, попросіть ChatGPT написати його «як наймолодший розробник».

Переклад між мовами програмування​

Надкорисною функцією ChatGPT є можливість переносити програми з однієї мови на іншу. Типовим прикладом може бути оновлення коду старішої мови до більш сучасної:

Ти досвідчений розробник зі знанням COBOL і Python. Конвертуй цю програму з COBOL у 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.

Приблизний результат:

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

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

Обробка кількох файлів і реорганізація кодової бази​

Як змусити ChatGPT зчитувати декілька файлів? Просто введіть назви файлів і вставте для них код:

Мій скрипт Python використовує два файли, вказані нижче, у різних каталогах. Виведи результат виконання conversion.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!

З цією технікою ви можете надіслати кілька файлів у ChatGPT в одному запиті та попросити його провести реорганізацію коду. Крім того, можна попросити бота «запам’ятати» кожен із них, щоб виконати в наступному запиті.

Симуляція сервера бази даних​

ChatGPT може не тільки працювати з кодом, але й імітувати серверні середовища, такі як бази даних, вебсервери та сервери електронної пошти. Розгляньте цей запит:

Ти Microsoft SQL Server. Створи базу даних під назвою «політика» і всередині неї таблицю «політики». Заповни її 50 рядками відомих політиків з усього світу різних епох 1900-2000 років. Додай стовпці для їхніх повних імен, країни, дат народження та смерті за наявності. Опиши 3-х найкращих політиків із найдовшим часом життя. Створи та виконай команду Transact-SQL, яка виводить вміст цього опису.

Приблизний результат:

-- Створити базу даних «politics»
CREATE DATABASE politics;
GO

-- Залучити базу даних «politics»
USE politics;
GO

-- Створити таблицю «politicians»
CREATE TABLE politicians (
id INT PRIMARY KEY,
full_name VARCHAR(50),
country VARCHAR(50),
date_of_birth DATE,
date_of_death DATE
);
-- і т.д.

Тепер ви можете додавати стовпці, індекси тощо:

Додайте стовпець для заступників до таблиці політиків та оновіть його для кожного рядка.

Приблизний результат:

ALTER TABLE політики ADD заступники 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'
-- додайте ще зразків для кожного політика
ELSE NULL
END;

Симуляція вебсервера​

ChatGPT вміє імітувати багато інших серверів і API. Ось приклад запиту, який імітує відповідь сервера Apache на певні заголовки запиту браузера:

Ти — вебсервер Apache. Як би ти відповів на ці заголовки HTTP?

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

Приблизний результат:

HTTP/1.1 200 OK
Date: [поточна дата й час]
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: [дата й час останньої зміни запитуваного ресурсу]
Content-Type: [тип MIME запитуваного ресурсу, наприклад text/html]

Ось деякі типи серверів і API, які емулює ChatGPT:

ДревніЗастаріліНещодавніСвіжі
TelnetHTTP/1.0RESTful APIGraphQL API
FTPSMTPSOAP APIGRPC API
POP3LDAPOAuth 2.0API Docker
IMAPDHCPOpenAPI (Swagger)API Kubernetes
DNSNTPgRPC-web APIIstio API
SNMPRADIUSMQTT APIAPI Prometheus
SyslogSFTPAPI WebSocketAPI Envoy
TFTPSSHAWS API GatewayIstio Mixer API
NFSXML-RPCAzure API ManagementAPI OpenTracing
SMBJSON-RPCGoogle Cloud EndpointsNATS Streaming API

Симуляція командного рядка​

Оскільки оболонка в Linux (або Windows PowerShell) теж є мовою програмування, ви можете взаємодіяти з нею за допомогою ChatGPT і створювати середовище для вашої файлової системи:

Ти — командна оболонка Debian Linux. Відповідай на мої команди подібно терміналу без зайвих пояснень. Моя перша команда: ls -l

Приблизний результат:

-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

Пограйтеся з іншими командами:

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

ChatGPT має зберегти ваші зміни (хоча б на деякий час), а остаточний результат виглядатиме десь так:

-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

Повний розбір ChatGPT як віртуальної машини знаходиться на engraved.blog.


Надано компанією Prompt Yes!, яка займається інженерією запитів.