每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门
Cursor AI自然语言编程入门
1. 自然语言编程概述
自然语言编程是一种革命性的编程方式,让开发者能够使用日常语言描述需求,由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。
2. 自然语言编程基础
2.1 工作原理流程图
2.2 指令模式对照表
指令类型 | 示例描述 | 适用场景 | 推荐用语 |
---|---|---|---|
函数生成 | “创建一个计算平均值的函数” | 单一功能实现 | “创建/生成/实现…” |
类定义 | “设计一个学生信息管理类” | 复杂数据结构 | “设计/定义/编写…” |
算法实现 | “实现冒泡排序算法” | 特定算法需求 | “实现/编写算法…” |
工具函数 | “编写文件读取函数” | 通用功能 | “编写/创建工具…” |
3. 实战示例讲解
3.1 基础函数生成
# 自然语言指令:创建一个计算数组平均值的函数
def calculate_array_average(numbers):"""计算给定数组的平均值Args:numbers (list): 需要计算平均值的数字列表Returns:float: 计算得到的平均值,如果列表为空返回0"""if not numbers:return 0return sum(numbers) / len(numbers)# 测试代码
test_numbers = [1, 2, 3, 4, 5]
average = calculate_array_average(test_numbers)
print(f"平均值: {average}") # 输出: 平均值: 3.0
3.2 类定义生成
# 自然语言指令:设计一个简单的银行账户管理类
class BankAccount:"""银行账户管理类,支持存款、取款和余额查询"""def __init__(self, account_number, initial_balance=0):self.account_number = account_numberself.balance = initial_balanceself.transaction_history = []def deposit(self, amount):"""存款操作"""if amount > 0:self.balance += amountself.transaction_history.append(f"存款: +{amount}")return Truereturn Falsedef withdraw(self, amount):"""取款操作"""if 0 < amount <= self.balance:self.balance -= amountself.transaction_history.append(f"取款: -{amount}")return Truereturn Falsedef get_balance(self):"""查询余额"""return self.balancedef get_transaction_history(self):"""获取交易历史"""return self.transaction_history# 使用示例
account = BankAccount("12345", 1000)
account.deposit(500)
account.withdraw(200)
print(f"当前余额: {account.get_balance()}") # 输出: 当前余额: 1300
print("交易历史:", account.get_transaction_history())
3.3 算法实现示例
# 自然语言指令:实现一个检查字符串是否为回文的函数
def is_palindrome(text):"""检查给定字符串是否为回文Args:text (str): 需要检查的字符串Returns:bool: 是回文返回True,否则返回False"""# 移除空格和转换为小写cleaned_text = ''.join(char.lower() for char in text if char.isalnum())return cleaned_text == cleaned_text[::-1]# 测试代码
test_cases = ["A man a plan a canal Panama","race a car","Was it a car or a cat I saw"
]for text in test_cases:result = is_palindrome(text)print(f"'{text}' 是回文: {result}")
4. 自然语言指令编写技巧
4.1 指令结构图
4.2 综合实践示例
# 自然语言指令:创建一个文件处理类,能够读取文本文件,统计词频,并输出结果
class TextAnalyzer:"""文本分析器:用于分析文本文件中的词频统计"""def __init__(self):self.word_count = {}self.total_words = 0def read_file(self, file_path):"""读取文本文件"""try:with open(file_path, 'r', encoding='utf-8') as file:text = file.read().lower()# 分词并统计words = text.split()self.total_words = len(words)for word in words:# 去除标点符号word = word.strip('.,!?()[]{}":;')if word:self.word_count[word] = self.word_count.get(word, 0) + 1return Trueexcept Exception as e:print(f"读取文件错误: {str(e)}")return Falsedef get_word_frequency(self, top_n=None):"""获取词频统计结果"""# 按频率降序排序sorted_words = sorted(self.word_count.items(),key=lambda x: x[1],reverse=True)if top_n:return sorted_words[:top_n]return sorted_wordsdef get_statistics(self):"""获取文本统计信息"""return {'total_words': self.total_words,'unique_words': len(self.word_count),'most_common': self.get_word_frequency(1)[0] if self.word_count else None}# 使用示例
analyzer = TextAnalyzer()
if analyzer.read_file('sample.txt'):print("词频统计TOP 10:", analyzer.get_word_frequency(10))print("文本统计信息:", analyzer.get_statistics())
5. 实践练习指南
5.1 循序渐进的练习任务
- 基础任务
# 任务1:使用自然语言创建一个温度转换函数
def convert_temperature(temperature, from_unit, to_unit):"""温度单位转换函数支持摄氏度(C)、华氏度(F)和开尔文(K)之间的转换"""# 转换为摄氏度if from_unit.upper() == 'F':celsius = (temperature - 32) * 5/9elif from_unit.upper() == 'K':celsius = temperature - 273.15else:celsius = temperature# 从摄氏度转换为目标单位if to_unit.upper() == 'F':return celsius * 9/5 + 32elif to_unit.upper() == 'K':return celsius + 273.15return celsius# 测试代码
print(convert_temperature(100, 'F', 'C')) # 华氏度转摄氏度
print(convert_temperature(0, 'C', 'K')) # 摄氏度转开尔文
- 进阶任务
# 任务2:创建一个简单的数据验证类
class DataValidator:"""数据验证类:用于验证各种数据格式"""@staticmethoddef validate_email(email):"""验证邮箱格式"""import repattern = r'^[\w\.-]+@[\w\.-]+\.\w+$'return bool(re.match(pattern, email))@staticmethoddef validate_phone(phone):"""验证手机号格式(示例使用中国手机号格式)"""import repattern = r'^1[3-9]\d{9}$'return bool(re.match(pattern, phone))@staticmethoddef validate_password(password):"""验证密码强度要求:至少8位,包含大小写字母和数字"""if len(password) < 8:return Falsereturn all([any(c.isupper() for c in password),any(c.islower() for c in password),any(c.isdigit() for c in password)])# 测试代码
validator = DataValidator()
print(validator.validate_email("test@example.com"))
print(validator.validate_phone("13800138000"))
print(validator.validate_password("Abc123456"))
5.2 练习进阶建议
-
学习曲线规划
- 从简单的函数开始
- 逐步过渡到类的设计
- 最后尝试复杂算法实现
-
代码质量提升
- 添加适当的注释
- 实现错误处理
- 优化代码结构
-
实践技巧
- 多尝试不同的描述方式
- 观察生成代码的差异
- 总结最佳实践
6. 总结
通过今天的学习,我们掌握了:
- 自然语言编程的基本概念和原理
- 如何编写清晰的自然语言指令
- 不同类型代码的生成方法
- 实际编程中的应用技巧
请记住,自然语言编程是一个强大的工具,但也需要我们不断练习和总结,才能真正掌握这项技能。在接下来的学习中,我们将探索更多高级特性和应用场景。
怎么样今天的内容还满意吗?再次感谢朋友们的观看,关注GZH:凡人的AI工具箱,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!
相关文章:
![](https://i-blog.csdnimg.cn/direct/2e39c44c2ef74c298e64a0a86bebb360.png)
每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门
Cursor AI自然语言编程入门 1. 自然语言编程概述 自然语言编程是一种革命性的编程方式,让开发者能够使用日常语言描述需求,由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。 2. 自然语言编程基础 2.1 工作原理流程图 2.2 指令模…...
![](https://www.ngui.cc/images/no-images.jpg)
Ubuntu22.04 离线安装:gcc、make、dkms、build-essential
挂载启动U盘 查看U盘对应的设备名称 sudo fdisk -l 1 # 以下就是需要挂载的U盘 Disk /dev/sdc: 14.9 GiB, 15938355200 bytes, 31129600 sectors Units: sectors of 1 * 512 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): …...
![](https://i-blog.csdnimg.cn/img_convert/6b60a9b2e626bfe4f69a2145881f63ea.png)
【竞技宝】CS2:HLTV2024选手排名TOP4-NiKo
北京时间2025年1月11日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP4选手为G2(目前已转为至Falcons)战队的NiKo。 选手简介 NiKo是一名来自波黑的CS职业选手,现年26岁。作为DOTA2饱负盛名的职业选手,NiKo在CS1.6时代就已经开始征战职业赛场。2012年,年仅15岁…...
![](https://i-blog.csdnimg.cn/direct/3881101ff28e40e991ed0b05795edcef.png)
Kali系统(Debian 10.3) 遇到的问题
目录 问题一:非问题 kali 基础官网与安装 问题二: 问题三: Kali系统 MySQL问题Cant connect to local MySQL server through socket /run/mysqld/mysqld.sock (2) 问题四:重新安装MySQL 也就是MariaDB(MariaDB 含 MySQL相关…...
![](https://i-blog.csdnimg.cn/direct/794bbe7cba8940229b689590f9a22054.png)
【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)
作者简介:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容:🌟Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...
![](https://i-blog.csdnimg.cn/direct/d5ddcb28e7b8440495edbe9e28fb461c.png)
洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言
题目: P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作,因为他有一个漂亮的新伐木机,可以如野火一般砍伐森林。不过,Mirko…...
![](https://www.ngui.cc/images/no-images.jpg)
【神经网络中的激活函数如何选择?】
在神经网络中,激活函数的选择对于模型的性能和学习效率至关重要。以下是一些关于如何选择激活函数的建议: 一、隐藏层中的激活函数选择 ReLU及其变体: ReLU(Rectified Linear Unit,修正线性单元)ÿ…...
![](https://www.ngui.cc/images/no-images.jpg)
服务器多节点 Grafana、Prometheus 和 Node-Exporter Docker版本部署指南
要在多台服务器上部署 Grafana、Prometheus 和 Node-Exporter,并且其中一台服务器专门用于 Grafana 和 Prometheus 的部署 1. 准备工作 服务器信息: Server 1:用于部署 Grafana 和 Prometheus。 Server 2-n:用于部署 Node-Export…...
![](https://www.ngui.cc/images/no-images.jpg)
<C++学习>C++ Boost 算法集合操作教程
C Boost 算法集合操作教程 Boost 提供了一些非常强大的算法库,用于对集合进行高效的操作。这些集合算法库主要提供了便捷的接口,支持常见的集合运算(如并集、交集、差集等)、排列组合和更高级的容器操作。 1. Boost 算法库简介 …...
![](https://i-blog.csdnimg.cn/direct/48a471b02aed45d19736cdccd376c5ad.png)
Jaeger UI使用、采集应用API排除特定路径
Jaeger使用 注: Jaeger服务端版本为:jaegertracing/all-in-one-1.6.0 OpenTracing版本为:0.33.0,最后一个版本,停留在May 06, 2019。最好升级到OpenTelemetry。 Jaeger客户端版本为:jaeger-client-1.3.2。…...
![](https://www.ngui.cc/images/no-images.jpg)
设计一个利用事务特性可以阻塞线程的排他锁,并且通过注解和 AOP 来实现
设计思路: 利用数据库表记录锁标识:通过唯一标识符(如方法名 参数),我们可以在数据库中插入一条记录,表示当前方法正在执行。这条记录需要记录插入时间。 注解:通过注解标识哪些方法需要加锁&a…...
![](https://i-blog.csdnimg.cn/direct/6cea377c880e4a67bbec24c8043e1ff1.png)
【2024年华为OD机试】 (A卷,100分)- 对称美学(Java JS PythonC/C++)
一、问题描述 题目描述 对称就是最大的美学,现有一道关于对称字符串的美学。已知: 第1个字符串:R第2个字符串:BR第3个字符串:RBBR第4个字符串:BRRBRBBR第5个字符串:RBBRBRRBBRRBRBBR 相信你…...
![](https://i-blog.csdnimg.cn/img_convert/e13f22b9c529479630fcf1a3e7ef4316.webp?x-oss-process=image/format,png)
【教程】数据可视化处理之2024年各省GDP排名预测!
过去的一年里,我国的综合实力显著提升,在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间,但各地的工业发展数据,财政收入数据已大概揭晓…...
![](https://csdnimg.cn/release/blog_editor_html/release2.3.7/ckeditor/plugins/CsdnLink/icons/icon-default.png?t=O83A)
Java 将RTF文档转换为Word、PDF、HTML、图片
RTF文档因其跨平台兼容性而广泛使用,但有时在不同的应用场景可能需要特定的文档格式。例如,Word文档适合编辑和协作,PDF文档适合打印和分发,HTML文档适合在线展示,图片格式则适合社交媒体分享。因此我们可能会需要将RT…...
![](https://i-blog.csdnimg.cn/direct/e2eb710a0ec8407f86774d471ca8a0d4.png)
深度学习的原理和应用
一、深度学习的原理 深度学习是机器学习领域的一个重要分支,其原理基于多层神经网络结构和优化算法。以下是深度学习的核心原理: 多层神经网络结构:深度学习模型通常由多层神经元组成,这些神经元通过权重和偏置相互连接。输入数据…...
![](https://www.ngui.cc/images/no-images.jpg)
CAPL语法基础
CAPL语法基础 目录 CAPL语法基础1. 引言2. 数据类型、变量与常量2.1 数据类型2.2 变量2.3 常量2.4 案例1:使用变量和常量计算圆的面积 3. 运算符与表达式3.1 算术运算符3.2 关系运算符3.3 逻辑运算符3.4 位运算符3.5 案例2:使用运算符实现简单的逻辑判断…...
![](https://i-blog.csdnimg.cn/direct/b5b8c0090dc44ea58488ea6834490f94.png)
安卓studio生成apk步骤
在写完app之后虽然能在真机上运行 但是在文件夹中找不到相应的apk ,注意!!!安卓 studio中可以自动生动生成 apk 下面是生成步骤: 步骤1:build ->make project 步骤2:build ->Generate si…...
![](https://www.ngui.cc/images/no-images.jpg)
Azure主机windows2008就地升级十步
Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径:win2008-->win2012-->win2016-->win2022 第一步:创建快照备份,防止升级失败第二步:升级托管磁盘,在VM管理的地方将磁盘升级成托管磁盘…...
![](https://www.ngui.cc/images/no-images.jpg)
解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库
一、开篇:邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域,数据管理如同建筑的基石,而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说,面对琳琅满目的数据库选项,如何抉择常常令人头疼。今…...
![](https://i-blog.csdnimg.cn/direct/0dbe146574d24323b11970088bbc9af9.png)
7 分布式定时任务调度框架
先简单介绍下分布式定时任务调度框架的使用场景和功能和架构,然后再介绍世面上常见的产品 我们在大型的复杂的系统下,会有大量的跑批,定时任务的功能,如果在独立的子项目中单独去处理这些任务,随着业务的复杂度的提高…...
![](https://i-blog.csdnimg.cn/direct/f2e63a415c1742d5ab825590e957c76a.jpeg)
七星棋类游戏源码:两百玩法开源修复
这套七星棋类源码,覆盖六大省区(湖南双端、湖北、山西、江苏、贵州等),安卓与苹果端都能轻松适配,汇集 6 个端口与 200 多种子游戏玩法。此版本为二次开发修复版,功能完备且源码完全公开,包括乐…...
![](https://www.ngui.cc/images/no-images.jpg)
未来世界:科技引领的奇幻篇章
科技发展的这么快,未来的世界将会是什么样的呢? 在人类历史的长河中,科技始终是推动社会进步的核心力量。从古老的四大发明到如今的人工智能、基因编辑、量子计算等前沿技术,科技发展的速度日新月异。我们不禁会想,在…...
![](https://www.ngui.cc/images/no-images.jpg)
[python3]Uvicorn库
Uvicorn 是一个用于运行 ASGI(Asynchronous Server Gateway Interface)应用程序的轻量级服务器。ASGI 是 Python Web 应用程序接口的一种扩展,它不仅支持传统的同步 Web 请求处理,还支持异步请求处理、WebSockets 以及 HTTP/2。 h…...
![](https://i-blog.csdnimg.cn/direct/e4d1241eddd54326903383bdb817fc7f.png)
istio-proxy oom问题排查步骤
1. 查看cluster数量 cluster数量太多会导致istio-proxy占用比较大的内存,此时需检查是否dr资源的host设置有配置为* 2. 查看链路数据采样率 若采样率设置过高,在压测时需要很大的内存来维护链路数据。可以调低采样率或增大istio-proxy内存。 检查iop中…...
![](https://i-blog.csdnimg.cn/direct/d7a9e7d972c04fd894d8fd0c39c6701b.png)
Flutter:使用FVM安装多个Flutter SDK 版本和使用教程
一、FVM简介 FVM全称:Flutter Version Management FVM通过引用每个项目使用的Flutter SDK版本来帮助实现一致的应用程序构建。它还允许您安装多个Flutter版本,以快速验证和测试您的应用程序即将发布的Flutter版本,而无需每次等待Flutter安装。…...
![](https://i-blog.csdnimg.cn/direct/b6281787fb2045cdb5c3d35b8f4a7617.png)
关于物联网的基础知识(二)——物联网体系结构分层
成长路上不孤单😊😊😊😊😊😊 【14后😊///计算机爱好者😊///持续分享所学😊///如有需要欢迎收藏转发///😊】 今日分享关于物联网的基础知识(二&a…...
![](https://i-blog.csdnimg.cn/direct/77425cfa565b42ee9c6192a81d0ec122.gif)
[程序设计]—代理模式
[程序设计]—代理模式👳 本文章记录学习于——52.面向切面:AOP-场景模拟_哔哩哔哩_bilibili 最近闲来无事,在学习Spring的源码: 后面慢慢更新源码系列blog,希望多多关注🙏🙏 目前已经总结的b…...
![](https://i-blog.csdnimg.cn/direct/533bfd5d7a6b49e79b022e0e227cb3b6.png)
26、【OS】【Nuttx】用cmake构建工程
背景 之前wiki 14、【OS】【Nuttx】Nsh中运行第一个程序 都是用 make 构建,准备切换 cmake 进行构建,方便后续扩展开发 Nuttx cmake 适配 nuttx项目路径下输入 make distclean,清除之前工程配置 adminpcadminpc:~/nuttx_pdt/nuttx$ make …...
![](https://www.ngui.cc/images/no-images.jpg)
C#中序列化的选择:JSON、XML、二进制与Protobuf详解
C#中序列化的选择:JSON、XML、二进制与Protobuf详解 在C#开发中,序列化是将对象转换为可存储或传输的格式的过程,而反序列化则是将存储或传输的数据重新转换为对象的过程。选择合适的序列化方式对应用程序的性能、可维护性和兼容性至关重要。…...
![](https://www.ngui.cc/images/no-images.jpg)
单片机实现模式转换
[任务] 要求通过单片机实现以下功能: 1.单片机有三种工作模式(定义全局变量MM表示模式,MM1,2,3表示三种不同的模式) LED控制模式 风扇控制模式 蜂鸣器控制模式 2.可以在某一个模式下通过拓展板KEY1按键控制设备 (按…...
![](/images/no-images.jpg)
wordpress 数据库缓存/邵阳网站seo
InGaAs光电二极管及阵列市场的企业竞争态势 该报告涉及的主要国际市场参与者有OSI Optoelectronics、Hamamatsu Photonics、Sensors Unlimited, Inc.、First Sensor、Kyosemi Corporation、Fermionics Opto-Technology、Laser Components、QPhotonics、Voxtel、AC Photonics In…...
![](/images/no-images.jpg)
网站建设后台实训体会/百度大数据官网
一般情况下 page({ data:{ s1:{a:"",b:"b"} },changeData:function(e){var cDatathis.data.s1; cData.a"1";//先修改json值this.setData({ //再set值s1:cData }) } })这种this.setData()的方式性能体验差 开发微信小程序时,使用se…...
![](https://img-blog.csdnimg.cn/2020042217384474.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L25ldHdvcmtodW50ZXI=,size_16,color_FFFFFF,t_70)
wordpress 最简单皮肤/哪个搜索引擎能搜敏感内容
问题起因 近日做的一个项目,我们提供jar包给其它开发方做开发,用户调用jar包里的一个功能,该功能执行后写了数据库。客户需要在该该功能执行完后能得到通知,这客户可以去数据库中取新的刷新后的数据。 什么是回调 java中一个类&…...
flash网站素材下载/永久免费用的在线客服系统
内核:3.3 平台:rlx 涉及的主要文件有 include/linux/clk.h drivers/clk/clkdev.c drivers/clk/clk.c arch/rlx/bsp/clock.c 1、 clk通用接口 内核定义了一套标准的接口(include/linux/clk.h),用于所有的平台之上。每个时钟源对象使用…...
![](/images/no-images.jpg)
美妆网站怎么做/网络销售新手入门
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理以下文章来源于腾讯云 作者:keinYe( 想要学习Python?Python学习交流群:1039649593,满足你的需求,…...
![](https://img-blog.csdnimg.cn/img_convert/3d55af0b00f7513dc3c0e4cae0d502fa.webp?x-oss-process=image/format,png)
一个独立IP做几个网站比较合适/抖音的商业营销手段
前言 目前开发的SpringBoot项目在启动的时候需要预加载一些资源。而如何实现启动过程中执行代码,或启动成功后执行,是有很多种方式可以选择,java培训我们可以在static代码块中实现,也可以在构造方法里实现,也可以使用…...