Перейти к основному содержанию

Запись блога пользователя «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()

Удачи!


для всего мира