编程新时代:Amazon CodeWhisperer 助您轻松驾驭代码世界

在这里插入图片描述

文章目录

    • 一、什么是 Amazon CodeWhisperer?
    • 二、个人无限免费使用
    • 三、安装配置
      • 3.1 手把手教你在pycharm配置
      • 3.2 同理在VSCODE安装
    • 三、Pycharm上测试
      • 3.1 根据注释写代码
      • 3.2 检查修复代码错误
      • 3.3 构建一个简单爬虫
    • 四、 VSCODE上测试
      • 4.1 个性化体验
      • 4.2 系统兼容性
      • 4.3 根据注释写代码
      • 4.4 尝试一门新的语言
      • 4.5 代码生成质量
    • 五、实战网络爬虫:抓取csdn热榜数据
    • 六、官方文档

一、什么是 Amazon CodeWhisperer?

Amazon CodeWhisperer 是一款由机器学习提供支持的代码生成器,可实时提供代码建议。当在 IDE 中编写代码时,CodeWhisperer 会根据你的注释和现有代码自动生成建议。

它支持 15 种编程语言,包括 Python、Java 和 JavaScript,以及您最喜欢的集成开发环境 (IDE),包括 VS Code、IntelliJ IDEA、AWS Cloud9、AWS Lambda 控制台、JupyterLab 和 Amazon SageMaker Studio。
在这里插入图片描述

以下是亚马逊的 CodeWhisperer 工具如何根据文本输入生成代码:
在这里插入图片描述
在PyCharm和VSCode中,Amazon CodeWhisperer都展现出了良好的使用流畅性。无论是插入代码,还是切换不同的功能,响应速度都非常快,没有出现任何卡顿或延迟,为用户提供了愉快的编程体验。

二、个人无限免费使用

值得一提的是,CodeWhisperer为个人开发者提供了免费的个人套餐。只需使用电子邮箱和AWS构建者ID进行简单注册和登录,个人开发者便可以在几分钟内开始享受CodeWhisperer带来的便利。个人套餐不仅提供了代码建议功能,还包括了引用跟踪和安全扫描等实用功能,充分满足了个人开发者在编程过程中的多方面需求。
在这里插入图片描述

接下来,我们将详细介绍如何在不同的编程环境中配置和使用CodeWhisperer。

三、安装配置

在PyCharm和VSCode中安装Amazon CodeWhisperer的过程非常简单直观,用户只需在插件市场搜索并安装“AWS Toolkit”即可,无需复杂的配置。这使得用户能够快速上手,无需花费过多时间在安装和配置上。

3.1 手把手教你在pycharm配置

在PyCharm和VSCode中安装Amazon CodeWhisperer的过程非常简单直观,用户只需在插件市场搜索并安装“AWS Toolkit”即可,无需复杂的配置。这使得用户能够快速上手,无需花费过多时间在安装和配置上。

让我们来看一下Amazon CodeWhisperer。我将在PyCharm中演示如何使用它(除此之外,它还支持其他编辑器,如VS等)。首先,需要下载插件:AWS Toolkit。进入设置:

Your Image

进入设置后,我们可以看到插件市场的界面是非常直观的,搜索“AWS Toolkit”后,点击“install"进行安装。

在这里插入图片描述
选择”apply",再点击“OK":

再点击重启即可:

安装并重启后,我们可以在AWS Toolkit视图(菜单View/Tool Windows/AWS Toolkit)中看到CodeWhisperer的选项,这表明我们已经成功安装并可以开始使用了。
在这里插入图片描述
接着,点击"Developer Tools"tab⻚⾯,选择“CodeWhisperer/Start",如下图所示:
在这里插入图片描述
弹出界面,点击”open and Copy Code“
在这里插入图片描述
粘贴并提交:
在这里插入图片描述
接下来需要登陆自己的账户:
在这里插入图片描述
输入密码:
在这里插入图片描述
此时会弹出界面”Allow AWS Toolkit for JetBrains to access your data?“,如下所示,点击”Allow":
在这里插入图片描述
显示“AWS Toolkit for JetBrains can now access your data.You can close this window and start using AWS Toolkit for JetBrains.”,代表可以正常连接了,配置成功!
在这里插入图片描述
返回pycharm可以看到,已经开启:
在这里插入图片描述

3.2 同理在VSCODE安装

在VSCode中,我们同样可以在插件市场中轻松找到并安装“AWS Toolkit”。安装流程与在PyCharm中类似,非常简单直观。
在这里插入图片描述
选择第二个:
在这里插入图片描述
继续:
在这里插入图片描述
点击允许:
在这里插入图片描述
配置成功:
在这里插入图片描述

安装成功后,VSCode界面也显示了CodeWhisperer的相关选项,这意味着我们可以开始在VSCode中使用CodeWhisperer了。
在这里插入图片描述

三、Pycharm上测试

在PyCharm中使用Amazon CodeWhisperer也表现出了很好的操作便捷性。用户只需根据自己的需求编写注释,CodeWhisperer就会自动弹出代码建议,用户可以轻松选择并插入代码。这一流程简单明了,即便是编程新手也能够快速上手。

3.1 根据注释写代码

在PyCharm中,我们可以轻松地根据注释生成代码。例如,我写了个注释“抓取亚马逊商城关于iphone15价格", Amazon CodeWhisperer会自动弹出建议代码的界面,我们可以选择合适的代码进行插入。
在这里插入图片描述
它们分别代表“插入代码”,“上一个选项”,“下一个选项”。因为它会自动为我们提供可参考的代码,选择一个合适的代码点击插入即可。

每次插入代码后,按一下键盘空格,便可以继续插入代码,根据提示不断插入代码即可。

这个功能非常实用,尤其是在完成算法题时,通过不断“空格”和”Insert Code“,我们可以轻松几秒钟完成代码。

下面我们来完成一个算法作业:

# 输出:按照从小到大排序后的列表。
#
# 示例:
# 输入:[5, 3, 8, 2, 1]
# 输出:[1, 2, 3, 5, 8]

通过不断“空格”和”lnsert Code“,轻松几秒钟完成代码如下:

def ipserch(arr):for i in range(len(arr)):  # 冒检for j in range(i, len(arr)):if arr[i] > arr[j]:arr[i], arr[j] = arr[j], arr[i]  # 位置修�]return arrif __name__ == "__main__":arr = [5, 3, 8, 2, 1]print(ipserch(arr))

运行结果完全正确,如图所示:
在这里插入图片描述
来完成一个作业习题:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?请用python实现。如下所示:
在这里插入图片描述
直接给出标准答案,简直太棒了!

3.2 检查修复代码错误

在使用Amazon CodeWhisperer时,我也对其在代码安全性方面的表现进行了测试和评估。CodeWhisperer不仅能够生成高质量的代码,还具备识别的能力,下面演示为一个简单的识别修复代码。

这是我开始的代码,刻意在这留了一个错误:
在这里插入图片描述
执行CodeWhisperer自动修复:
在这里插入图片描述

3.3 构建一个简单爬虫

在构建网络爬虫时,我们只需在注释中写明需求,Amazon CodeWhisperer就能为我们生成相应的代码,极大地提高了开发效率。

# 写一个爬虫,模拟打开百度,输入“川川菜鸟”并回车 
# 然后点第一个页面进去查看  
# 用selenium框架 

得到如下:

from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(3)
driver.find_element_by_id("kw").send_keys("川川菜鸟") # 输入内容
driver.find_element_by_id("su").click() # 点击搜索

接下来继续把需求写在注释中,不断写清楚注释即可,得到对应代码:

from selenium import webdriver
import time
from selenium.webdriver.common.by import Bydriver = webdriver.Chrome()
driver.get("https://www.baidu.com")
time.sleep(3)
driver.find_element(By.ID,'kw').send_keys("川川菜鸟")  # 输入内容
driver.find_element(By.ID,'su').click()  # 点击
# 鼠标滑动180度
js = 'document.documentElement.scrollTop=180'
driver.execute_script(js)
time.sleep(3)

四、 VSCODE上测试

与在PyCharm中类似,VSCODE上的Amazon CodeWhisperer同样操作简便。通过快捷键“Alt+c"运行CodeWhisperer后,用户可以轻松地根据注释生成代码,检查代码错误,并尝试新的编程语言。这种便捷的操作方式大大降低了用户的上手难度,提高了编程效率。

4.1 个性化体验

在使用过程中,Amazon CodeWhisperer展现出了很好的个性化体验。它能够记忆我的编程风格,并根据我的习惯提供合适的代码建议,这让我感到非常舒适,也极大地提高了我的编程效率。

4.2 系统兼容性

我在Windows系统上分别测试了Amazon CodeWhisperer在PyCharm和VSCode中的表现,发现其在这两种IDE中都能够稳定运行,与IDE完美整合,表现出了良好的系统兼容性。

4.3 根据注释写代码

如下所示,首先让它根据我的要求写一个函数,然后写一个示例。

# 写一个求两数和
def add(a,b):return a+b
# 给个示例
print(add(1,2))

4.4 尝试一门新的语言

通过Amazon CodeWhisperer的帮助,我尝试学习了C++,并成功完成了一些基础练习。这个工具为我提供了丰富的示例代码和实时建议,使我能够快速入门新的编程语言。
在这里插入图片描述
输入3个数,求最大值:

在这里插入图片描述

4.5 代码生成质量

在使用Amazon CodeWhisperer的过程中,我特别注意到了它生成的代码质量。无论是在完成算法题目还是构建网络爬虫应用时,CodeWhisperer生成的代码都表现出了很高的标准。

符合编程规范:
生成的代码结构清晰,命名规范,符合Python和C++的编程规范,这使得代码易于理解,也方便了后续的代码维护。例如,在生成排序算法和网络爬虫代码时,函数命名清晰,逻辑结构合理,代码间的缩进和空行也都符合规范,显示出了CodeWhisperer对编程规范的遵循。

可读性:
CodeWhisperer生成的代码具有很高的可读性。代码逻辑清晰,注释充分,即便是对于编程新手,也能够快速理解代码的功能和运作机制。这一点在我尝试学习新的编程语言C++时表现得尤为明显,CodeWhisperer的代码建议帮助我快速理解了C++的语法和结构。

可维护性:
生成的代码模块化程度高,函数划分合理,这使得代码具有很好的可维护性。即使在后期需要对代码进行修改和扩展,也能够轻松进行,大大提高了开发效率。

五、实战网络爬虫:抓取csdn热榜数据

提供注释如下:

# 使用selenium爬取热榜
# 热榜地址:https://blog.csdn.net/rank/list
# 获取标题、浏览量、评论数量、收藏数量

初次执行,自动插入相关模块,不用手动敲了,省时间

from selenium import webdriver
import time
import csv
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

继续执行CodeWhisperer,写出一个请求函数用来打开网页:

def get_data(url):driver = webdriver.Chrome()driver.get(url)time.sleep(5)

我们目标是获取到对应数据,因此添加注释,执行CodeWhisperer

# 打开热榜地址

插入代码如下:
在这里插入图片描述
打开后又做什么呢?获取标题标题、浏览量、评论数量、收藏数量,因此分别添加注释如下,执行CodeWhisperer

#添加等待10秒

如下所示:
在这里插入图片描述
继续不断添加注释:

# 等待直到页面加载完成# 获取所有的文章元素# 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量

执行CodeWhisperer,如下所示:
在这里插入图片描述
其中获取所有元素需要人工调整,定位查看,复制出来即可:
在这里插入图片描述
接下来需要遍历获取所有内容,添加注释:

 # 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量

执行CodeWhisperer,插入代码如下:
在这里插入图片描述
同理,定位元素部分需要手动调整,这里可以看一个标题定位例子,其它同理:
在这里插入图片描述
继续执行CodeWhisperer完成一些剩余的代码,此时完整代码如下:

def get_data(url):driver = webdriver.Chrome()driver.get(url)# 添加等待wait = WebDriverWait(driver, 10)try:# 等待直到页面加载完成wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.hostitem.floor")))# 获取所有的文章元素product_elements = driver.find_elements(By.CSS_SELECTOR, "div.hostitem.floor")# 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量with open('output.csv', mode='w', newline='', encoding='utf-8') as file:writer = csv.writer(file)writer.writerow(["Title", "View", "Comment", "Collect"])  # 写入表头# 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量for index, product in enumerate(product_elements):title = product.find_element(By.CSS_SELECTOR, "div.hosetitem-title > a").textview = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(1)").textcomment = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(3)").textcollect = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(5)").text# 打印到控制台print(f"Product {index + 1}:")print(f"Title: {title}")print(f"View: {view}")print(f"Comment: {comment}")print(f"Collect: {collect}")# 写入到CSV文件writer.writerow([title, view, comment, collect])except Exception as e:print(f"An error occurred: {e}")finally:# 确保关闭WebDriver,释放资源driver.quit()

输出结果如下,只抓取到了25个数据:
在这里插入图片描述
我发现网页数据抓取我只获取到了25个,如果想要获取后面内容,需要往下翻才会加载25到50的数据,同理继续翻才能加载出25到75数据。为了加载更多的数据,需要模拟滚动页面才能完成。因此思路是:先滚动加载出全部数据,再进行抓取。

添加注释到获取所有的文章元素上面:

# 滚动页面以加载更多数据

如下:
在这里插入图片描述
此时我们可以看到已经完成全部数据抓取:
在这里插入图片描述
保存在csv文件如下:
在这里插入图片描述

通过CodeWhisperer的辅助,写代码时间真的省了好多,有更多时间摸鱼了~

完整代码如下:

# 书籍介绍·:https://chuanchuan.blog.csdn.net/article/details/133050678
# 使用selenium爬取热榜
# 热榜地址:https://blog.csdn.net/rank/list
# 获取标题、浏览量、评论数量、收藏数量from selenium import webdriver
import time
import csv
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as ECdef get_data(url):driver = webdriver.Chrome()driver.get(url)# 添加等待wait = WebDriverWait(driver, 10)try:# 等待直到页面加载完成wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, "div.hostitem.floor")))# 滚动页面以加载更多数据for _ in range(4):driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(5)# 获取所有的文章元素product_elements = driver.find_elements(By.CSS_SELECTOR, "div.hostitem.floor")# 创建或打开CSV文件,准备写入数据:浏览量、评论数量、收藏数量with open('output.csv', mode='w', newline='', encoding='utf-8') as file:writer = csv.writer(file)writer.writerow(["Title", "View", "Comment", "Collect"])  # 写入表头# 遍历所有文章元素,提取所需数据:浏览量、评论数量、收藏数量for index, product in enumerate(product_elements):title = product.find_element(By.CSS_SELECTOR, "div.hosetitem-title > a").textview = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(1)").textcomment = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(3)").textcollect = product.find_element(By.CSS_SELECTOR, "div.hosetitem-dec > span:nth-child(5)").text# 打印到控制台print(f"排名:{index + 1}")print(f"标题: {title}")print(f"浏览量: {view}")print(f"评论量: {comment}")print(f"收藏量: {collect}")# 写入到CSV文件writer.writerow([title, view, comment, collect])except Exception as e:print(f"An error occurred: {e}")finally:# 确保关闭WebDriver,释放资源driver.quit()url='https://blog.csdn.net/rank/list'
get_data(url)

六、官方文档

对于深入了解和掌握CodeWhisperer的用户来说,官方文档是一份极佳的学习资料。文档中详尽地列出了各项功能说明、操作截图以及实际演示,有助于用户全面而深入地理解和运用CodeWhisperer。更多的使用方法和相关操作,可参考官方文档:CodeWhisperer ,这里有详细的使用教程,有截图和演示,能帮助开发者更好的使用起来:
在这里插入图片描述
该网站提供了丰富的使用教程、实际截图和演示,助力开发者更加便捷高效地使用该工具。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【再识C进阶3(下)】详细地认识字符分类函数,字符转换函数和内存函数

前言 💓作者简介: 加油,旭杏,目前大二,正在学习C,数据结构等👀 💓作者主页:加油,旭杏的主页👀 ⏩本文收录在:再识C进阶的专栏&#x1…

vuereact质检工具(eslint)安装使用总结

1、ESLint ESLint工具主要类似java中的checkStyle和findbugs,是检查代码样式和逻辑规范的工具。 1.1、ESLint安装流程 打开VSCode软件,打开扩展中心,下载ESLint插件 图1.1 点击后面的install按进行安装,如图1.2所示&#xff1…

黑马VUE3视频笔记

目录 一、使用create-vue创建项目 二、setup选项 三、reactive和ref函数 1.reactive() 2.ref() 三、computed 四、watch ​五、生命周期函数 六、父传子、子传父 父传子defineProps 子传父defineEmits 七、模板引用 ref defineExpose 八、跨层传递普通数据 prov…

SpringBoot 学习(二)配置

2. SpringBoot 配置 2.1 配置文件类型 配置文件用于修改 SpringBoot 的默认配置。 2.1.1 properties 文件 **properties ** 是属性文件后缀。 文件名:application.properties 只能保存键值对。 基础语法:keyvalue namewhy注入配置类 Component //…

百度SEO优化不稳定的原因分析(提升网站排名的稳定性)

百度SEO优化不稳定介绍蘑菇号-www.mooogu.cn SEO不稳定是指网站在搜索引擎中的排名不稳定,随着时间的推移会发生变化。这种情况可能会出现在网站页面结构、内容质量、外链质量等方面存在缺陷或不合理之处。因此,优化SEO非常重要,可以提高网站…

Cruise 的界面和模型文件路径介绍

文章目录 打开 Cruise自带模型所在路径自带模型分类Cruise 中的模型路径解析打开用户手册建模界面介绍打开模型 打开 Cruise 最新的几个 Cruise 软件都是集成到一个平台上的,名为 AVL Advanced Simulation Desktop。 自带模型所在路径 User 选项卡下的模型&#x…

Spring实现简单的Bean容器

1.BeanDefinition,用于定义 Bean 实例化信息,现在的实现是以一个 Object 存放对象 public class BeanDefinition {/*** bean对象*/private Object bean;/*** 存放 (定义)Bean 对象*/public BeanDefinition(Object bean) {this.bea…

关于TUM数据集

2、验证回环检测算法,需要有人工标记回环的数据集。然而人工标记回环是很不方便的,我们会考虑根据标准轨迹计算回环。即,如果轨迹中有两个帧的位姿非常相近,就认为它们是回环。请根据TUM数据集给出的标准轨迹,计算出一…

怎么选择伪原创工具?伪原创工具推荐

什么是伪原创工具?伪原创工具是一种可以将已有文本进行修改、改写或重新组合,生成新的文本内容的工具。 伪原创工具的作用 节省时间和精力:手工创作内容需要耗费大量时间和精力,而伪原创工具可以在短时间内生成大量内容&#xf…

嵌入式中如何用C语言操作sqlite3(07)

sqlite3编程接口非常多,对于初学者来说,我们暂时只需要掌握常用的几个函数,其他函数自然就知道如何使用了。 数据库 本篇假设数据库为my.db,有数据表student。 nonamescore4嵌入式开发爱好者89.0 创建表格语句如下: CREATE T…

C++中实现雪花算法来在秒级以及毫秒及时间内生成唯一id

1、雪花算法原理 雪花算法(Snowflake Algorithm)是一种用于生成唯一ID的算法,通常用于分布式系统中,以确保生成的ID在整个分布式系统中具有唯一性。它的名称来源于雪花的形状,因为生成的ID通常是64位的整数&#xff0…

【数据结构】哈希表(详)

文章目录 前言正文一、基本概念二、基本原理1.哈希函数1.1直接定址法(常用)1.2除留余数法(常用)1.3 平方取中法(了解)1.4 折叠法(了解)1.5 随机数法(了解)1.6数学分析法(了解) 2.哈希冲突2.1 平均查找长度2…

QT配置MySQL数据库 ninja: build stopped: subcommand failed

QT配置MySQL数据库 我当前的软件版本:QT Creator 10.0.2 (community),MingW 6.4.3 (QT6),MySQL 8.0。 MySQL不配置支持的数据库有QList("QSQLITE", "QODBC", "QPSQL"),这个时候是不支持MYSQL数据…

No127.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…

箱讯科技成功闯入第八届“创客中国”全国总决赛—在国际物流领域一枝独秀

添加图片注释,不超过 140 字(可选) 2023年9月26日,第八届“创客中国”数字化转型中小企业创新创业大赛决赛在贵州圆满收官。 经过初赛、复赛、决赛的激烈角逐,箱讯科技与众多强劲对手同台竞技,最终凭借出…

Android gradle dependency tree change(依赖树变化)监控实现

文章目录 前言基本原理执行流程diff 报告不同分支 merge 过来的 diff 报告同个分支产生的 merge 报告同个分支提交的 diff 报告 具体实现原理我们需要监控怎样的 Dendenpency 变化怎样获取 dependency Treeproject.configurations 方式./gradlew dependenciesAsciiDependencyRe…

铁路用热轧钢轨

声明 本文是学习GB-T 2585-2021 铁路用热轧钢轨. 而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 1 范围 本标准规定了铁路用钢轨的订货内容、分类、尺寸、外形、质量及允许偏差、技术要求、试验方法、检 验规则、标志及质量证明书。 本标准适用于3…

iMovie for Mac v10.3.9(视频剪辑)

iMovie是一款视频剪辑软件,广泛应用于Mac和iOS设备。以下是关于iMovie软件的一些推荐信息: 简单易用。iMovie的设计简洁,操作简单,即使是没有剪辑经验的新手也可以轻松上手。软件内置了丰富的视觉效果、滤镜、绿幕抠图、分屏和画…

【腾讯云国际站】CDN内容分发网络特性介绍

为什么使用腾讯云国际站 CDN 内容分发网络? 当用户直接访问源站中的静态内容时,可能面临的体验问题: 客户离服务器越远,访问速度越慢。客户数量越多,网络带宽费用越高。跨境用户访问体验较差。 腾讯云国际站CDN 如何改…

Ctfshow web入门 XSS篇 web316-web333 详细题解 全

CTFshow XSS web316 是反射型 XSS 法一&#xff1a; 利用现成平台 法二&#xff1a; 自己搭服务器 先在服务器上面放一个接受Cookie的文件。 文件内容&#xff1a; <?php$cookie $_GET[cookie];$time date(Y-m-d h:i:s, time());$log fopen("cookie.txt"…