WiSpace Dev
Запись блога пользователя «WiSpace Dev»
Привет! Сегодня я расскажу вам о ИИ который заменит работу программистов! Конечно же это не так, но ИИ может заменить программиста в рутинных задачах, например написании функции по вычислению факториала или создания простого графического приложения.
Все знают о GitHub Copilot и ChatGPT от OpenAI который недавно научился писать код по одному лишь описанию, но я расскажу о CodeSquire, статьи о котором я не нашел на популярных форумах и вообще, его довольно редко упоминают. К сожалению, я так и не понял как использовать его в Visual Studio Code, но зато вы можете свободно использовать его в Google Colab, BigQuery или JupyterLab. Для этого нужно зарегестрироваться на их сайте и установить расширение в Chrome.
После чего вы можете начать писать код (или написать комментарий с описанием действий) к примеру в Google Colab, а далее ИИ предложит продолжение комментария или кода, вам останется лишь нажать Tab.
Допустим скормим ему такой комментарий: "function that calculates the factorial of n", он предложит такой код:
def factorial(n): if n == 0: return 1 else: return n * factorial(n-1)
Давайте изменим комментарий и попросим его использовать цикл while: "function that calculates the factorial of n using while", вот такой код он написал:
def factorial_while(n): factorial = 1 while n > 0: factorial *= n n -= 1 return factorial
Давайте импортируем tkinter и попросим написать его простейшее графическое приложение с вводом числа и вычислением его факториала. Самое крутое что ИИ уже понимает что я хочу по функции factorial_while и импорту tkinter'а! Вот такой комментарий мы написали совместно с codesquire: "simple tkinter app that input a number and outputs the factorial of that number". Код написанный ИИ:
class Factorial_while(tk.Tk): def __init__(self): super().__init__() self.title("Factorial using while") self.geometry("300x100") self.resizable(False, False) self.label = tk.Label(self, text="Enter a number:") self.label.pack() self.entry = tk.Entry(self) self.entry.pack() self.button = tk.Button(self, text="Calculate", command=self.calculate) self.button.pack() self.label_result = tk.Label(self, text="") self.label_result.pack() self.mainloop() def calculate(self): try: n = int(self.entry.get()) factorial = factorial_while(n) self.label_result.configure(text=factorial) except ValueError: self.label_result.configure(text="Please enter a number") except ZeroDivisionError: self.label_result.configure(text="Please enter a number greater than 0") except: self.label_result.configure(text="Something went wrong") finally: self.entry.delete(0, tk.END) self.entry.focus() Factorial_while()
Код обсалютно рабочий, к тому же ИИ решил использоавть класс, хоть я и не просил об этом.
Заключение: CodeSquire крутой ИИ, который может помочь в написании простой программы или выполнить рутинные задачи в сложной программе, например выделить какие-то значение из базы данных через sqlite3. К сожалению, как я понял, данный ИИ работает только с Python и SQL и не может писать код например на JavaScript.
Полный исходный код:
import tkinter as tk
def factorial_while(n): factorial = 1 while n > 0: factorial *= n n -= 1 return factorial
class Factorial_while(tk.Tk): def __init__(self): super().__init__() self.title("Factorial using while") self.geometry("300x100") self.resizable(False, False) self.label = tk.Label(self, text="Enter a number:") self.label.pack() self.entry = tk.Entry(self) self.entry.pack() self.button = tk.Button(self, text="Calculate", command=self.calculate) self.button.pack() self.label_result = tk.Label(self, text="") self.label_result.pack() self.mainloop() def calculate(self): try: n = int(self.entry.get()) factorial = factorial_while(n) self.label_result.configure(text=factorial) except ValueError: self.label_result.configure(text="Please enter a number") except ZeroDivisionError: self.label_result.configure(text="Please enter a number greater than 0") except: self.label_result.configure(text="Something went wrong") finally: self.entry.delete(0, tk.END) self.entry.focus() Factorial_while()
Удачи!