InsCode再进步,AI 辅助编程帮你打开思路

news2024/12/23 22:08:22

文章目录

    • 一、前言
    • 二、使用 AI 辅助完成代码
      • 1. 基于模板创建项目
      • 2. 使用 AI 辅助开拓思路
      • 3. 使用 AI 辅助生成代码
      • 4. 使用 AI 辅助优化代码
    • 三、InsCode AI Chat 的使用建议
    • 四、总结

一、前言

你好,我是小雨青年,一名独立开发的程序员。

在之前的文章中,我们简要介绍了 InsCode的基本功能,请看这篇 不再空谈,用 InsCode 展示你的编程实力 。

而现在已经过了一段时间,InsCode 带来了全新的进化,InsCode AI Chat 能够让你通过聊天的方式帮你优化代码。

image-20230510230021004

二、使用 AI 辅助完成代码

下面我们就从实践出发,基于 InsCode 的 AI辅助编程,写Python实现的计算器。

1. 基于模板创建项目

这里我们全程使用平台进行编程,从创建项目开始,基于现有模板创建项目的方式,可以帮我们快速构建基础环境。

image-20230510222558236

在填写表单一些基础信息之后,我们点击创建项目。

我们等项目创建完成之后,就会自动进入项目的主界面。在什么代码都不动的情况下,直接点击运行按钮,这时页面右侧会直接运行项目,如果你的项目是 web 应用,则会打开网页预览窗口。

image-20230510222514000

2. 使用 AI 辅助开拓思路

我们可以在编辑器中按下快捷键 Ctrl + L ,呼出InsCode AI Chat,你可以在这里和 Ai 进行文本交互。

比如,在本案例中,我们需要列举几个排序算法,那么,我不想自己思考,我想交给Ai,就可以这样问。

我要用python实现一个交互式的能运行加减乘除的计算器,你有实现思路吗?

如下图所示,我们就可以从 Ai 中得到答案。

image-20230510222815999

Ai 给出了一个实现思路,可能是因为主题比较简单,它甚至在最后直接输出了完整的项目代码。

这个实现的思路和我预期不太一样,那我会给他一些提示,比如,我希望用户依次输入数字、运算符、数字,之后自动输出结果,那么就会是下图所示。

image-20230510223214168

提示:在实际项目中,我们可以使用 Ai 不断优化解决问题的方案,通过丰富需求细节得到自己想要的答案。

3. 使用 AI 辅助生成代码

在InsCode中,我们可以通过写注释的方式让 Ai 帮助生产部分代码。

具体操作为,首先在代码编辑器写出注释,然后选中注释后右键菜单选择完成代码。

实现一个交互式的能运行加减乘除的计算器,用户依次输入数字、运算符、数字,之后自动输出结果

这个操作实现了将注释和“继续完成以上代码”发给InsCode AI Chat,之后 AI 会根据当前的项目环境,输出代码和详细解释。

image-20230510223507868

这就相当于是一位有问必答的编程老师,你的问题越是准确,那么你得到的答案越准确。

image-20230510223757007

我们得到的完整代码如下。

# 实现一个交互式的能运行加减乘除的计算器,用户依次输入数字、运算符、数字,之后自动输出结果
while True:
    num1 = float(input("请输入第一个数字:"))
    operator = input("请输入运算符:(+,-,*,/或exit退出)")
    num2 = float(input("请输入第二个数字:"))

    if operator == "+":
        result = num1 + num2
        print("计算结果:", result)
    elif operator == "-":
        result = num1 - num2
        print("计算结果:", result)
    elif operator == "*":
        result = num1 * num2
        print("计算结果:", result)
    elif operator == "/":
        if num2 == 0:
            print("除数不能为0,请重新输入")
        else:
            result = num1 / num2
            print("计算结果:", result)
    elif operator == "exit":
        break
    else:
        print("无效的运算符,请重新输入")

4. 使用 AI 辅助优化代码

从目前发展的趋势来看,我们实际的项目代码必然不会是完全由 Ai 生成。

你还可以把 InsCode AI Chat 当成一位结对编程的同事,帮助你优化代码。

还是以上面的代码为例,我们人为去掉除数不能为零的判断。再选中这部分代码,右键选择优化代码

image-20230510224811912

我们可以看到,AI 通过另一种方式解决的除数为零的问题。

image-20230510224708105

在此代码中,我们定义了一个名为 calculator 的函数,其中包含了一个 while 循环来实现程序的持续运行,同时利用 try-except 来处理可能出现的错误,例如输入无效数字或除数为零。

在函数体内,我们首先输入两个数字和运算符,然后使用 if-elif-else 语句判断运算符的类型,进行相应的计算并输出结果。当输入无效的运算符时,我们会提示用户重新输入。除此之外,当输入无效数字或除数为零时会有对应的错误提示。

最后,在 main.py 文件中调用 calculator 函数来执行计算器程序。

提示:目前 AI 生成代码的风格并不统一,如果你要在实际项目中与运用,则需要注意代码风格问题。

image-20230510225311995

这次生成的完整代码如下。

def calculator():
    while True:
        try:
            num1 = float(input("请输入第一个数字:"))
            operator = input("请输入运算符:(+,-,*,/或exit退出)")
            if operator == "exit":
                break
            num2 = float(input("请输入第二个数字:"))

            if operator == "+":
                result = num1 + num2
            elif operator == "-":
                result = num1 - num2
            elif operator == "*":
                result = num1 * num2
            elif operator == "/":
                result = num1 / num2
            else:
                print("无效的运算符,请重新输入")
                continue

            print("计算结果:", result)
        except ValueError:
            print("无效的数字,请重新输入")
        except ZeroDivisionError:
            print("除数不能为0,请重新输入")


if __name__ == '__main__':
    calculator()


三、InsCode AI Chat 的使用建议

根据我的体验,建议你这样使用 InsCode AI Chat 。

  1. 尽量拆分问题,精确清晰的问题能提升输出的代码质量;
  2. 反复使用代码优化功能,AI 给出的代码不能保证第一次是最优的,建议不断带着问题优化代码,以提升代码质量;
  3. 使用右键的辅助功能,这样可以让 AI 基于现在所处的项目使用的编程语言分析代码和需求
  4. 不要完全相信 AI 的代码,尽量做参考

四、总结

InsCode AI Chat 功能的加入,使得在校学生可以更容易地学习编程。

只要你的问题足够清晰,就会得到相对满意的结果,当然问题描述需要的是我们的深入思考。

当怎么做变得唾手可得,那么为什么做就变得越来越珍贵。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/516107.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Ubuntu22.04安装PyTorch1.13.0 GPU版本

目录 一、电脑相关信息 1. 电脑显卡环境: 二、安装Pytorch1.13.0/cu117(GPU版本) 1. 准备:新建虚拟环境 2. 用conda在线安装pytorch1.13.0/cu117(pytorch1.13.0 torchvision0.14.0 pytorch-cuda11.7)…

博客管理系统前端分析

目录结构博客列表页&#xff1a;所有页面共同的样式代码&#xff1a;博客详情页博客登录页博客编辑页 目录结构 博客列表页&#xff1a; 页面效果&#xff1a; 代码&#xff1a; <!-- 博客列表页 --> <!DOCTYPE html> <html lang"en"> <head…

计算机视觉的深度学习 Lecture4:Optimization 笔记 EECS 498.008

数值计算梯度 问题是慢&#xff0c;每个都要注意做步长&#xff0c;求除法。 应该用求导方法解决。 SGD通过每次抽取一部分&#xff08;mini-batch&#xff09;来计算梯度&#xff0c;而不是遍历整个数据集来求梯度&#xff0c;大大增大了求梯度速度&#xff0c;并且性能不…

TCP 协议特性详解

TCP 协议特性总结 TCP协议特点TCP协议段格式TCP原理确认应答&#xff08;安全机制&#xff09;超时重传&#xff08;安全机制&#xff09;连接管理&#xff08;安全机制&#xff09;(面试高频题)三次握手四次挥手 滑动窗口&#xff08;效率机制&#xff09;流量控制&#xff08…

【LeetCode】数据结构题解(8)[链表中的入口节点]

链表中的入口节点 1.题目来源2.题目描述3.解题思路4.代码展示 1.题目来源 链表中的入口节点 2.题目描述 给定一个链表&#xff0c;返回链表开始入环的第一个节点。 从链表的头节点开始沿着 next 指针进入环的第一个节点为环的入口节点。如果链表无环&#xff0c;则返回 null…

08-HTML-样式和语意标签

1、<style> 标签用于为 HTML 文档定义样式信息。type 属性是必需的&#xff0c;定义 style 元素的内容。唯一可能的值是 "text/css"。style 元素位于 head 部分中。 2、<div> 可定义文档中的分区或节&#xff08;division/section&#xff09;。<div&…

Unity Audio -- (4)为声音添加特殊效果

本节我们使用声音混响区域&#xff08;audio reverb zone&#xff09;实现一些特殊效果。 什么是混响区域&#xff08;audio reverb zone&#xff09; 不同障碍物对声波的反射和吸收能力不同&#xff0c;坚硬平整表面反射声波能力强&#xff0c;松软多孔的表面吸收声波能力强。…

yolov5环境搭建(Anaconda-py3.9、PyTorch-CPU、yolov5-4.0、PyCharm)

1.环境准备 Windows 10Anaconda&#xff08;基于Python3.9&#xff09;&#xff0c;已配置好环境变量yolov5相关的代码、权重文件等&#xff0c;已经打包整理好&#xff0c;可以通过百度网盘绿色下载。链接: https://pan.baidu.com/s/1okVkfpqjI5wD6PigK-AH0w?pwdyscw 提取码…

RabbitMQ发布/订阅(交换机)

目录 RabbitMQ发布/订阅(交换机)介绍Fanout&#xff08;广播&#xff09;声明队列和交换机publisher 消息发送consumer消息接收 Direct&#xff08;定向&#xff09;consumer消息接收,基于注解声明队列和交换机publisher 消息发送总结 Topic&#xff08;通配符&#xff09;publ…

【腾讯云Finops Crane集训营】利用云原生成本优化项目实现降本增效泰酷辣~

Crane 是一个基于 FinOps 的云资源分析与成本优化平台。在保证客户应用运行质量的前提下实现极致的降本。 文章目录 一、 前言&#x1f350;二、 Crane开源项目简介&#x1f34e;2.1. Crane整体框架&#x1f352;2.2. Crane主要功能&#x1f345; 三、Crane实验前期准备&#x…

Cesium入门之二:引用Cesium并创建第一个三维地球

这一节我们来引入Cesium并创建第一个三维地图程序 Cesium的引入 1、新建一个文件夹&#xff0c;命名为first_cesium,在该文件夹下新建一个Build文件夹&#xff0c;将上一节我们下载的Cesium文件夹下Build文件夹---->Cesium文件夹下的文件全部拷贝到first_cesium---->Bu…

关于阿里云的图像搜索的创建和使用

大家好哇&#xff0c;我又来了&#xff0c;这次我们来聊下关于阿里云的图像搜索功能的创建和使用。 https://free.aliyun.com/?crowdpersonal 1、我们可以通过上面的链接进入到阿里云云产品免费试用页面&#xff0c;这里主要是阿里云为新手用户提供的免费体验的权益&#xff…

Cesium入门之一:Cesium本地运行

Cesium简介 Cesium是一个开源的、面向三维地球和地图的JavaScript库&#xff0c;它是基于Apache2.0许可的开源程序&#xff0c;可以免费的用于商业用途&#xff1b; Cesium下载 Cesium的官网地址是&#xff1a;https://cesium.com/platform/cesiumjs/&#xff0c;由于Cesium…

ChatGPT 提示语——AI提示词玩家,提示词就是和AI沟通语言的桥梁!

前言&#xff1a; 众所周知&#xff0c;在AI的世界里&#xff0c;提示词就是和AI沟通语言的桥梁&#xff0c;提示关键词常用于AI对话及AI绘画等相关场景&#xff0c;通过准确的使用关键词&#xff0c;你就能更好的让AI辅助自己的工作&#xff0c;其中的成分重要性不言而喻&…

MySQL---基本操作DQL(上)(基本查询语法,算术运算符,比较运算符,逻辑运算符,位运算符)

1. 基本查询语法 select [all|distinct] <目标列的表达式1> [别名], <目标列的表达式2> [别名]... from <表名或视图名> [别名],<表名或视图名> [别名]... [where<条件表达式>] [group by <列名> [having <条件表达式>]] [o…

JAVA学习日记 (放假了,哈哈)

每日一题 1016. 子串能表示从 1 到 N 数字的二进制串 难度中等122收藏分享切换为英文接收动态反馈 给定一个二进制字符串 s 和一个正整数 n&#xff0c;如果对于 [1, n] 范围内的每个整数&#xff0c;其二进制表示都是 s 的 子字符串 &#xff0c;就返回 true&#xff0c;否…

时间轮的golang实践浅析

引言 下列代码模仿一段RPC请求的执行过程&#xff0c;执行后会有哪些问题&#xff1a; RPC代码示例答案&#xff1a;因为超时控制后未阻断后续请求&#xff0c;导致并发读写产生Panic思考&#xff1a;客户端发起 HTTP 请求后&#xff0c;如果在指定时间内没有收到服务器的响应…

软件开发安全

软件开发安全 软件安全开发生命周期软件生命周期模型软件生命周期模型-瀑布模型软件生命周期模型-迭代模型软件生命周期模型-增量模型软件生命周期模型-快速原型模型软件生命周期模型-螺旋模型软件生命周期模型-净室模型软件安全重要性–软件危机 软件安全问题产生-内因软件安全…

51单片机(十一)DS1302实时时钟

❤️ 专栏简介&#xff1a;本专栏记录了从零学习单片机的过程&#xff0c;其中包括51单片机和STM32单片机两部分&#xff1b;建议先学习51单片机&#xff0c;其是STM32等高级单片机的基础&#xff1b;这样再学习STM32时才能融会贯通。 ☀️ 专栏适用人群 &#xff1a;适用于想要…

2023年软考系统架构师新版专栏导读

目录 新的改变软考是不是内卷?老版教材删减章节建议学习计划专栏更文列表新的改变 软考今年改版啦 高级系统架构师考试在2022年12月底出了第二版教材,比第二版多出来140页,虽然看起来好像更难了,但是我认为改版是件好事,摒弃了一些过时的淘汰的技术,更新了一些新知识点,…