想划水、如何让 AI 替我打工,并让我快速学 Python?

简介: 想划水、如何让 AI 替我打工,并让我快速学 Python?


AI 不会淘汰程序员,但市场会淘汰不会使用 AI 的程序员。 -- 鲁迅

掌握自动化工具对程序员的意义:

  • 高效率产出,提升核心竞争力(卷死你们)
  • 可以将更多的精力用于划水喝水和抬头看路

今天的神器是:Amazon CodeWhisperer。 ---- 一种采用机器学习(ML)的服务,可以根据开发人员用自然语言编写的注释和集成式开发环境(IDE)中的代码生成代码建议,帮助开发人员提高工作效率,可以为您的应用程序提供代码审查、安全扫描和性能优化。

AI 技术发展日新月异,正掀起新的编程范式变革。从代码生成到智能编程助手,AI 技术进一步提高开发效率和代码质量,推动软件开发的快速发展。为帮助开发者更快、更安全地构建应用程序,亚马逊云科技推出的 AI 编程助手 Amazon CodeWhisperer,有效提高开发人员生产力。

为了让更多开发者体验这前沿智能编程工具,探索高效、智能的编程范式,拥抱 AI 新变革“用 AI 助力,提升编程效率 ———— Amazon CodeWhisperer 探索之旅”活动乘风启航!

CodeWhisperer 经过数十亿行代码的训练,可以根据评论和现有代码实时生成从代码片段到全函数的代码建议。 除了代码生成,还可用于引用追踪和安全扫描等。

一、安装插件

Step 1 环境准备

Pycharm 下载地址(最好用的 Python 客户端,没有之一),支持 Windows、macOS、Linux

https://www.jetbrains.com.cn/pycharm/download/?section=mac

当然,对功能有所追求的小伙伴,可以选择 专业付费版,满足日常使用的话,免费社区版 足矣。

Step 2 插件安装

演示环境: mac * PyCharm

西红柿演示的是 PyCharm,VSCode, IntelliJ 等 IDE 中也类似操作即可。在 Windows, Mac, Linux 等主流操作系统同样支持。

Step 3 插件注册

选择左下角:"AWS Toolkit" > "Devoloper Tools" > "Start"

个人用户登录,输入你的邮箱。

Step 4 注册成功

注册后,可以看到如图效果,就可以开始编程拉。

二、AI 代码生成和学习

效果 1:写注释自动生成代码

输入注释:
# example Python class for a simple calculator

弹窗 3 种状态:

  • Insert Code : 插入推荐的代码
  • Previous : 上一个推荐方案
  • Next: 下一个推荐方案

只需要选择: 回车,自动生成了计算器的方法,包括:加、减、乘、除

# example Python class for a simple calculator
class SimpleCalculator:
    def add(self, a, b):
        return a + b
    def subtract(self, a, b):
        return a - b
    def multiply(self, a, b):
        return a * b
    def divide(self, a, b):
        return a / b

效果 2:自动补齐代码 - 列表

Python 列表是一种有序、可变、可以包含任意类型数据的集合。它是 Python 中最常用的数据类型之一,可以用于存储和操作多个数据元素。

创建列表: 方括号 [] 来创建一个空列表,或者在方括号中包含一些元素来创建一个具有初始值的列表。

例如: test_list = [] 创建一个空列表
test_list = [1, 2, 3, 4, 5]
test_list.append(6)
输出:
[1, 2, 3, 4, 5, 6]

输入: test_list = [1,2

输出: test_list = [1,2,3,4,5,6,7,8,9,10]

效果 3:自动补齐代码 - for 循环

循环语句可以分为有限循环语句和无限循环语句两种。

Python for 循环是一种用于遍历可迭代对象(如列表、元组、字符串等)的循环结构。在 Python 中,for 循环语句的组成要素包括关键字 for、迭代变量和可迭代对象。

for i in test_list:
    if i == 5:
        print('我是five')
        break

效果 4:自动补齐代码 - 条件判断

Python 中的条件判断语句为“if 语句”。与 C 语言中 if 语句的书写不同之处在于:python 中 else if 可以写成 elif,而 C 语言不能。

if 语句是从上到下进行判断的。

test_list = [1, 2, 3, 4, 5]
for i in test_list:
    if i == 3:
        print('我是3')
    elif i == 4:
        print('我是4')

三、基于 Amazon CodeWhisperer 的 Python 学习

3.1 变量和数据类型

变量和数据类型:Python中有多种数据类型,如整数(int)、浮点数(float)、字符串(str)、列表(list)、元组(tuple)、字典(dict)等。

Python中的常见数据类型包括:

  • 数字类型:包括整型(int)、浮点型(float)、复数型(complex)等。
  • 字符串类型:用单引号或双引号括起来的字符序列,如'hello'、"world"等。
  • 列表类型:用方括号括起来的有序元素集合,如[1, 2, 3]、['apple', 'banana', 'cherry']等。
  • 元组类型:与列表类似,但是元组的元素不能修改,如(1, 2, 3)、('apple', 'banana', 'cherry')等。
  • 集合类型:无序的不重复元素集合,如{1, 2, 3}、{'apple', 'banana', 'cherry'}等。
  • 字典类型:用花括号括起来的键值对集合,如{'name': 'Alice', 'age': 25}等。

3.2 控制结构

控制结构:包括条件语句(if-elif-else)、循环语句(for、while)等。

Python中的控制结构包括条件语句、循环语句等,用于控制程序的执行流程。

条件语句

条件语句用于根据条件的真假来选择不同的代码块执行。在Python中,条件语句使用if、elif和else关键字来实现。

语法:
Copyif condition1:
    # code block 1
elif condition2:
    # code block 2
else:
    # code block 3

其中,condition1、condition2为判断条件,如果满足条件则执行相应的代码块。

示例:
Copyage = 18
if age < 18:
    print("未成年")
elif age >= 18 and age < 60:
    print("成年")
else:
    print("老年")
循环语句

循环语句用于重复执行一段代码。在Python中,循环语句使用for和while关键字来实现。

语法:
for item in iterable:
    # code block
while condition:
    # code block

其中,iterable为可迭代对象,item为每次迭代时取出的元素;condition为循环条件,当条件满足时执行循环体中的代码块。

示例:
# for循环
for i in range(5):
    print(i)
# while循环
count = 0
while count < 5:
    print(count)
    count += 1

3.3 函数

函数:使用def关键字定义函数,可以实现代码的复用。

Python函数是一段可重用的代码块,用于执行特定的任务。函数可以接收输入参数并返回结果。在Python中,函数使用def关键字定义,后跟函数名和括号内的参数列表。函数体由缩进的代码块组成。

以下是一个简单的Python函数示例:

def greet(name):
    return "Hello, " + name + "!"
print(greet("World"))

在这个示例中,定义了一个名为greet的函数,它接受一个名为name的参数。函数返回一个字符串,其中包含问候语和传递给函数的名称。西红柿通过调用greet函数并传递"World"作为参数来测试这个函数。输出结果应该是"Hello, World!"。

3.4 类和对象

类和对象:使用class关键字定义类,通过实例化创建对象。

类(Class)

类是一种抽象的概念,用于描述具有相同属性和方法的对象的集合。在Python中,可以使用class关键字来定义一个类。例如:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def say_hello(self):
        print("Hello, my name is", self.name)

这个例子中,我们定义了一个名为Person的类,它有两个属性name和age,以及一个方法say_hello。

对象(Object)

对象是类的实例,也就是具体的实体。在Python中,可以通过调用类来创建一个对象。例如:

p = Person("Tom", 20)

这个例子中,我们创建了一个名为p的Person对象,并给它传递了两个参数"Tom"和20。

对象可以访问类中定义的属性和方法。例如:

Copyp.name = "Jerry"
p.age = 25
p.say_hello()

这个例子中,我们给p对象分别设置了name、age属性,并调用了say_hello方法。输出结果为:"Hello, my name is Jerry"。

3.5 文件操作

文件操作:使用open()函数打开文件,read()、write()等方法进行文件的读写操作。

Python提供了许多内置函数和模块来处理文件操作。以下是一些常用的文件操作函数和模块:

打开文件:使用open()函数打开文件,并返回一个文件对象。例如:

file = open("example.txt", "r")

这个例子中,我们打开了一个名为example.txt的文件,并以只读模式("r")打开它。

读取文件:使用read()方法读取文件中的所有内容。例如:

content = file.read()
print(content)

这个例子中,我们读取了文件的全部内容,并将其打印出来。

写入文件:使用write()方法将文本写入文件中。例如:

Copyfile = open("example.txt", "w")
file.write("Hello, world!")
file.close()

这个例子中,我们以写入模式("w")打开了一个名为example.txt的文件,并将字符串"Hello, world!"写入其中。

关闭文件:使用close()方法关闭已打开的文件。例如:

Copyfile.close()

3.6 异常处理

异常处理:使用try-except语句捕获和处理异常。

在Python中,异常处理是一种机制,用于处理程序运行时可能出现的错误或异常情况。当程序执行过程中遇到错误时,Python解释器会引发一个异常,如果没有适当的处理机制,程序将会终止并显示错误信息。为了避免这种情况的发生,我们可以使用异常处理来捕获和处理这些异常。

Python中的异常处理通常使用try-except语句来实现。try块包含可能引发异常的代码,而except块则包含处理异常的代码。如果try块中的代码引发了异常,那么try块后面的代码将被跳过,Python解释器将查找与该异常匹配的except块,并执行其中的代码。

以下是一个简单的Python异常处理示例:

x = 1 / 0
except ZeroDivisionError:
    print("除数不能为零")

在这个例子中,我们尝试执行一个除以零的操作,这会引发一个ZeroDivisionError异常。由于我们在try块后面使用了except块来捕获这个异常,因此当异常发生时,程序不会终止,而是执行except块中的代码,打印出"除数不能为零"。

除了使用特定的异常类型来捕获异常外,我们还可以使用一个通用的except块来捕获所有类型的异常。例如:

# some code that may raise an exception
except Exception as e:
    print("发生了一个错误:", e)

在这个例子中,我们使用了一个通用的except块来捕获所有类型的异常,并将异常对象存储在变量e中。然后,我们可以打印出异常的信息。

3.7 列表推导式

Python列表推导式是一种快速创建列表的方法,它使用一种简洁的语法结构来生成一个新的列表。列表推导式通常包括一个可迭代对象(如列表、元组、集合等)和一个表达式,该表达式用于计算新列表中的每个元素。

列表推导式的语法如下:

[expression for item in iterable if condition]

其中:

  • expression:用于计算新列表中每个元素的表达式。
  • item:从可迭代对象中获取的每个元素。
  • iterable:一个可迭代对象,如列表、元组、集合等。
  • condition:可选的条件表达式,用于过滤满足条件的元素。

例如,我们可以使用列表推导式创建一个包含1到10之间所有偶数的列表:

even_numbers = [x for x in range(1, 11) if x % 2 == 0]
print(even_numbers)  # 输出:[2, 4, 6, 8, 10]

在这个例子中,我使用了range(1, 11)作为可迭代对象,x表示从可迭代对象中获取的每个元素,x % 2 == 0作为条件表达式,用于过滤出偶数。

四、AI 引用追踪

代码引用追踪是一种调试技术,它可以帮助开发人员确定程序中变量和函数的引用关系。在程序运行时,每个变量和函数都可能被其他代码引用或调用。

通过代码引用追踪,开发人员可以查看这些引用关系,从而更好地理解程序的执行过程和逻辑。

代码引用追踪通常用于调试复杂的程序,特别是在处理大量数据或执行复杂算法时。它可以帮助我们找到程序中的错误和瓶颈,并提供有关如何优化代码的建议。此外,代码引用追踪还可以帮助我们更好地理解代码的执行时间和内存使用情况,从而更好地优化程序的性能。

五、AI 安全扫描

代码安全扫描是一种检查代码中安全漏洞的方法。它可以帮助企业确保其代码库中的代码不包含潜在的安全漏洞,从而保护企业的数据和资产。

代码安全扫描可以通过 Amazon CodeWhisperer 自动化工具来完成,它可以检查代码中的常见漏洞,如 SQL 注入、跨站点脚本(XSS)和跨站请求伪造(CSRF)等。此外,代码安全扫描还可以帮助开发人员识别和修复其代码中的错误和不规范之处。

六、使用心得

通过初步使用,已经爱不释手了,主要体现在以下几点:

  • 使用流畅:Amazon CodeWhisperer 使用体验流畅,能够通过注释生成代码,或者通过 AI 技术,推荐我将要写的代码。 这对于初学者非常友好,能够快速学习常用的接口调用方式和语法,简直是快速上手学习 Python 的神器。
  • 文档和学习资源丰富:Amazon CodeWhisperer 提供了详细且丰富的文档和学习资源,甚至包括视频,对开发者友好,并且提供了高级操作的教程,如:自动化代码测试等。
  • 多语音和平台的支持:除了西红柿的演示环境:mac _ pycharm _ Python。CodeWhisperer 支持多达 15 种开发语言,同样可以自动生成代码等等。
  • 语法错误检测:CodeWhisperer 可以检测你的代码中的潜在语法错误,并给出相应的提示和修复建议。
  • 实时代码建议:CodeWhisperer 可以根据你输入的代码片段,提供实时的代码建议和自动完成功能,让你更快地编写代码。

总之,CodeWhisperer 是一款非常实用的代码编辑器插件,可以助我提高编程效率和代码质量。如果你也是一名开发者,可以考虑使用 CodeWhisperer 来搞点事情了。

相关文章
|
1月前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
1426 4
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
9天前
|
人工智能 C语言 Python
AI师傅+通义灵码=零基础小白上手python真·不是梦
作为一名不懂编程的设计师,我一直渴望掌握AI辅助设计。在快刀青衣的推荐下,我尝试了AI师傅和通义灵码,成功写出了第一个Python程序,并理解了编程的基本概念。通过AI师傅的引导和通义灵码的帮助,我顺利完成了Coursera上的Python课程,获得了两张证书。这种学习方式让编程变得不再遥不可及,为我的未来学习打开了新大门。
|
24天前
|
人工智能 文字识别 Java
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
尼恩,一位拥有20年架构经验的老架构师,通过其深厚的架构功力,成功指导了一位9年经验的网易工程师转型为大模型架构师,薪资逆涨50%,年薪近80W。尼恩的指导不仅帮助这位工程师在一年内成为大模型架构师,还让他管理起了10人团队,产品成功应用于多家大中型企业。尼恩因此决定编写《LLM大模型学习圣经》系列,帮助更多人掌握大模型架构,实现职业跃迁。该系列包括《从0到1吃透Transformer技术底座》、《从0到1精通RAG架构》等,旨在系统化、体系化地讲解大模型技术,助力读者实现“offer直提”。此外,尼恩还分享了多个技术圣经,如《NIO圣经》、《Docker圣经》等,帮助读者深入理解核心技术。
SpringCloud+Python 混合微服务,如何打造AI分布式业务应用的技术底层?
|
1月前
|
数据采集 人工智能 自然语言处理
Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股)AI Agent
金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent
|
1月前
|
人工智能 开发者 Python
python读取word文档 | AI应用开发
在RAG系统中,构建知识库时需读取多种外部文档,其中Word文档较为常见。本文介绍如何使用`python-docx`库读取Word文档(.docx格式)中的标题、段落、表格和图片等内容。首先通过`pip install python-docx`安装库,然后利用提供的接口提取所需信息。尽管该库功能强大,但在识别标题样式时需自定义逻辑,并且仅提供图片的URI而非直接加载。示例代码展示了读取文本、识别标题、读取表格及获取图片URI的方法。【10月更文挑战第2天】
71 2
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
python如何实现AI问答与举例
python如何实现AI问答与举例
33 0
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
神经网络深度剖析:Python带你潜入AI大脑,揭秘智能背后的秘密神经元
【9月更文挑战第12天】在当今科技飞速发展的时代,人工智能(AI)已深入我们的生活,从智能助手到自动驾驶,从医疗诊断到金融分析,其力量无处不在。这一切的核心是神经网络。本文将带领您搭乘Python的航船,深入AI的大脑,揭秘智能背后的秘密神经元。通过构建神经网络模型,我们可以模拟并学习复杂的数据模式。以下是一个使用Python和TensorFlow搭建的基本神经网络示例,用于解决简单的分类问题。
47 10
|
2月前
|
Unix Shell Linux
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
nohup python -u ai_miniprogram_main.py > ../iwork.out 2>&1 & 这句命令是做什么的?
18 1
|
2月前
|
机器学习/深度学习 人工智能 TensorFlow
深入骨髓的解析:Python中神经网络如何学会‘思考’,解锁AI新纪元
【9月更文挑战第11天】随着科技的发展,人工智能(AI)成为推动社会进步的关键力量,而神经网络作为AI的核心,正以其强大的学习和模式识别能力开启AI新纪元。本文将探讨Python中神经网络的工作原理,并通过示例代码展示其“思考”过程。神经网络模仿生物神经系统,通过加权连接传递信息并优化输出。Python凭借其丰富的科学计算库如TensorFlow和PyTorch,成为神经网络研究的首选语言。
45 1
|
3月前
|
数据采集 人工智能 自然语言处理
从零开始学AI:Python完整操作教程
本教程详尽介绍了利用Python进行人工智能操作的核心方法与应用场景,涵盖数据预处理、模型训练与评估全过程。通过源码解析和实战案例(如房价与股票价格预测),读者将学会构建与测试AI模型,并理解其优缺点。教程还探讨了AI在智能客服与医疗诊断等领域的应用,以及如何通过单元测试确保代码质量。通过本教程,初学者能够快速掌握AI基本技能,为未来的技术发展奠定坚实基础。
382 4
从零开始学AI:Python完整操作教程
下一篇
无影云桌面