Допрацювання коду
Ви можете використовувати ChatGPT для налагодження, створення, переформатування, коментування коду тощо. Він працює з кодом на понад 40 мовах програмування.
Древні | Застарілі | Нещодавні | Свіжі |
---|---|---|---|
BASIC | Perl | Swift | Kotlin |
Assembly | Pascal | TypeScript | Julia |
Fortran | PHP | Rust | Crystal |
Lisp | Prolog | Kotlin / Native | Racket |
COBOL | C | Julia (GPU) | Lua |
Algol | PL/I | Go | Zig |
SNOBOL | C++ | Dart | Nim |
RPG | Smalltalk | Elixir | Crystal (LLVM) |
Forth | Tcl | Groovy | Vlang |
Ada | SQL | Scala Native | Erlang |
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) + '*')
###
Приблизний результат:
// highlight-start
# Імпортувати математичний модуль
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) + '*')
// highlight-end
Налагодження
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)
У результаті може вийти сценарій з використанням алгоритму Решето Ератосфена для пошуку простих чисел:
// highlight-start
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)
// highlight-end
Зауважте, що ми попросили бота «діяти як старший розробник», щоб оптимізувати скрипт. Ви також можете вказати, що він обізнаний у певних галузях (наприклад, алгоритми сортування) або має певну кількість досвіду. Крім того, якщо у вас є занадто нагромаджений скрипт, попросіть 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")
// highlight-start
Hello, John!
Goodbye, John!
// highlight-end
З цією технікою ви можете надіслати кілька файлів у ChatGPT в одному запиті та попросити його провести реорганізацію коду. Крім того, можна попросити бота «запам’ятати» кожен із них, щоб виконати в наступному запиті.
Симуляція сервера бази даних
ChatGPT може не тільки працювати з кодом, але й імітувати серверні середовища, такі як бази даних, вебсервери та сервери електронної пошти. Розгляньте цей запит:
Ти Microsoft SQL Server. Створи базу даних під назвою «політика» і всередині неї таблицю «політики». Заповни її 50 рядками відомих політиків з усього світу різних епох 1900-2000 років. Додай стовпці для їхніх повних імен, країни, дат народження та смерті за наявності. Опиши 3-х найкращих політиків із найдовшим часом життя. Створи та виконай команду Transact-SQL, яка виводить вміст цього опису.
Приблизний результат:
// highlight-start
-- Створити базу даних «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
);
-- і т.д.
// highlight-end
Тепер ви можете додавати стовпці, індекси тощо:
Додайте стовпець для заступників до таблиці політиків та оновіть його для кожного рядка.
Приблизний результат:
// highlight-start
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;
// highlight-end
Симуляція вебсервера
ChatGPT вміє імітувати багато інших серверів і API. Ось приклад запиту, який імітує відповідь сервера Apache на певні заголовки запиту браузера:
Ти — вебсервер Apache. Як би ти відповів на ці заголовки HTTP?
GET /example HTTP/1.1
Host: www.example.com
Приблизний результат:
// highlight-start
HTTP/1.1 200 OK
Date: [поточна дата й час]
Server: Apache/2.4.41 (Ubuntu)
Last-Modified: [дата й час останньої зміни запитуваного ресурсу]
Content-Type: [тип MIME запитуваного ресурсу, наприклад text/html]
// highlight-end
Ось деякі типи серверів і API, які емулює ChatGPT:
Древні | Застарілі | Нещодавні | Свіжі |
---|---|---|---|
Telnet | HTTP/1.0 | RESTful API | GraphQL API |
FTP | SMTP | SOAP API | GRPC API |
POP3 | LDAP | OAuth 2.0 | API Docker |
IMAP | DHCP | OpenAPI (Swagger) | API Kubernetes |
DNS | NTP | gRPC-web API | Istio API |
SNMP | RADIUS | MQTT API | API Prometheus |
Syslog | SFTP | API WebSocket | API Envoy |
TFTP | SSH | AWS API Gateway | Istio Mixer API |
NFS | XML-RPC | Azure API Management | API OpenTracing |
SMB | JSON-RPC | Google Cloud Endpoints | NATS 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!, яка займається інженерією запитів.