当前位置: 首页 > news >正文

每日学习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. 基础任务
# 任务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'))    # 摄氏度转开尔文
  1. 进阶任务
# 任务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 练习进阶建议

  1. 学习曲线规划

    • 从简单的函数开始
    • 逐步过渡到类的设计
    • 最后尝试复杂算法实现
  2. 代码质量提升

    • 添加适当的注释
    • 实现错误处理
    • 优化代码结构
  3. 实践技巧

    • 多尝试不同的描述方式
    • 观察生成代码的差异
    • 总结最佳实践

6. 总结

通过今天的学习,我们掌握了:

  1. 自然语言编程的基本概念和原理
  2. 如何编写清晰的自然语言指令
  3. 不同类型代码的生成方法
  4. 实际编程中的应用技巧

请记住,自然语言编程是一个强大的工具,但也需要我们不断练习和总结,才能真正掌握这项技能。在接下来的学习中,我们将探索更多高级特性和应用场景。


怎么样今天的内容还满意吗?再次感谢朋友们的观看,关注GZH:凡人的AI工具箱,回复666,送您价值199的AI大礼包。最后,祝您早日实现财务自由,还请给个赞,谢谢!

相关文章:

每日学习30分轻松掌握CursorAI:Cursor AI自然语言编程入门

Cursor AI自然语言编程入门 1. 自然语言编程概述 自然语言编程是一种革命性的编程方式&#xff0c;让开发者能够使用日常语言描述需求&#xff0c;由AI将其转换为可执行的代码。让我们通过系统化的学习来掌握这项技能。 2. 自然语言编程基础 2.1 工作原理流程图 2.2 指令模…...

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): …...

【竞技宝】CS2:HLTV2024选手排名TOP4-NiKo

北京时间2025年1月11日,HLTV年度选手排名正在持续公布中,今日凌晨正式公布了今年的TOP4选手为G2(目前已转为至Falcons)战队的NiKo。 选手简介 NiKo是一名来自波黑的CS职业选手,现年26岁。作为DOTA2饱负盛名的职业选手,NiKo在CS1.6时代就已经开始征战职业赛场。2012年,年仅15岁…...

Kali系统(Debian 10.3) 遇到的问题

目录 问题一&#xff1a;非问题 kali 基础官网与安装 问题二&#xff1a; 问题三&#xff1a; Kali系统 MySQL问题Cant connect to local MySQL server through socket /run/mysqld/mysqld.sock (2) 问题四&#xff1a;重新安装MySQL 也就是MariaDB(MariaDB 含 MySQL相关…...

【2025最新计算机毕业设计】基于SpringBoot+Vue奶茶点单系统(高质量源码,提供文档,免费部署到本地)

作者简介&#xff1a;✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流。✌ 主要内容&#xff1a;&#x1f31f;Java项目、Python项目、前端项目、PHP、ASP.NET、人工智能…...

洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树 c语言

题目&#xff1a; P1873 [COCI 2011/2012 #5] EKO / 砍树 - 洛谷 | 计算机科学教育新生态 题目描述 伐木工人 Mirko 需要砍 M 米长的木材。对 Mirko 来说这是很简单的工作&#xff0c;因为他有一个漂亮的新伐木机&#xff0c;可以如野火一般砍伐森林。不过&#xff0c;Mirko…...

【神经网络中的激活函数如何选择?】

在神经网络中&#xff0c;激活函数的选择对于模型的性能和学习效率至关重要。以下是一些关于如何选择激活函数的建议&#xff1a; 一、隐藏层中的激活函数选择 ReLU及其变体&#xff1a; ReLU&#xff08;Rectified Linear Unit&#xff0c;修正线性单元&#xff09;&#xff…...

服务器多节点 Grafana、Prometheus 和 Node-Exporter Docker版本部署指南

要在多台服务器上部署 Grafana、Prometheus 和 Node-Exporter&#xff0c;并且其中一台服务器专门用于 Grafana 和 Prometheus 的部署 1. 准备工作 服务器信息&#xff1a; Server 1&#xff1a;用于部署 Grafana 和 Prometheus。 Server 2-n&#xff1a;用于部署 Node-Export…...

<C++学习>C++ Boost 算法集合操作教程

C Boost 算法集合操作教程 Boost 提供了一些非常强大的算法库&#xff0c;用于对集合进行高效的操作。这些集合算法库主要提供了便捷的接口&#xff0c;支持常见的集合运算&#xff08;如并集、交集、差集等&#xff09;、排列组合和更高级的容器操作。 1. Boost 算法库简介 …...

Jaeger UI使用、采集应用API排除特定路径

Jaeger使用 注&#xff1a; Jaeger服务端版本为&#xff1a;jaegertracing/all-in-one-1.6.0 OpenTracing版本为&#xff1a;0.33.0&#xff0c;最后一个版本&#xff0c;停留在May 06, 2019。最好升级到OpenTelemetry。 Jaeger客户端版本为&#xff1a;jaeger-client-1.3.2。…...

设计一个利用事务特性可以阻塞线程的排他锁,并且通过注解和 AOP 来实现

设计思路&#xff1a; 利用数据库表记录锁标识&#xff1a;通过唯一标识符&#xff08;如方法名 参数&#xff09;&#xff0c;我们可以在数据库中插入一条记录&#xff0c;表示当前方法正在执行。这条记录需要记录插入时间。 注解&#xff1a;通过注解标识哪些方法需要加锁&a…...

【2024年华为OD机试】 (A卷,100分)- 对称美学(Java JS PythonC/C++)

一、问题描述 题目描述 对称就是最大的美学&#xff0c;现有一道关于对称字符串的美学。已知&#xff1a; 第1个字符串&#xff1a;R第2个字符串&#xff1a;BR第3个字符串&#xff1a;RBBR第4个字符串&#xff1a;BRRBRBBR第5个字符串&#xff1a;RBBRBRRBBRRBRBBR 相信你…...

【教程】数据可视化处理之2024年各省GDP排名预测!

过去的一年里&#xff0c;我国的综合实力显著提升&#xff0c;在新能源汽车、新一代战机、两栖攻击舰、航空航天、芯片电子、装备制造等领域位居全球前列。虽然全国各省市全年的经济数据公布还需要一段时间&#xff0c;但各地的工业发展数据&#xff0c;财政收入数据已大概揭晓…...

Java 将RTF文档转换为Word、PDF、HTML、图片

RTF文档因其跨平台兼容性而广泛使用&#xff0c;但有时在不同的应用场景可能需要特定的文档格式。例如&#xff0c;Word文档适合编辑和协作&#xff0c;PDF文档适合打印和分发&#xff0c;HTML文档适合在线展示&#xff0c;图片格式则适合社交媒体分享。因此我们可能会需要将RT…...

深度学习的原理和应用

一、深度学习的原理 深度学习是机器学习领域的一个重要分支&#xff0c;其原理基于多层神经网络结构和优化算法。以下是深度学习的核心原理&#xff1a; 多层神经网络结构&#xff1a;深度学习模型通常由多层神经元组成&#xff0c;这些神经元通过权重和偏置相互连接。输入数据…...

CAPL语法基础

CAPL语法基础 目录 CAPL语法基础1. 引言2. 数据类型、变量与常量2.1 数据类型2.2 变量2.3 常量2.4 案例1&#xff1a;使用变量和常量计算圆的面积 3. 运算符与表达式3.1 算术运算符3.2 关系运算符3.3 逻辑运算符3.4 位运算符3.5 案例2&#xff1a;使用运算符实现简单的逻辑判断…...

安卓studio生成apk步骤

在写完app之后虽然能在真机上运行 但是在文件夹中找不到相应的apk &#xff0c;注意&#xff01;&#xff01;&#xff01;安卓 studio中可以自动生动生成 apk 下面是生成步骤&#xff1a; 步骤1&#xff1a;build ->make project 步骤2&#xff1a;build ->Generate si…...

Azure主机windows2008就地升级十步

Azure上云主机的windows2008系统需要进行就地升级。 按着微软的升级路径&#xff1a;win2008-->win2012-->win2016-->win2022 第一步&#xff1a;创建快照备份&#xff0c;防止升级失败第二步&#xff1a;升级托管磁盘&#xff0c;在VM管理的地方将磁盘升级成托管磁盘…...

解锁 C# 与 LiteDB 嵌入式 NoSQL 数据库

一、开篇&#xff1a;邂逅 C# 与 LiteDB 新世界 在当今的软件开发领域&#xff0c;数据管理如同建筑的基石&#xff0c;而选择一款合适的数据库则是项目成功与否的关键因素之一。对于 C# 开发者来说&#xff0c;面对琳琅满目的数据库选项&#xff0c;如何抉择常常令人头疼。今…...

7 分布式定时任务调度框架

先简单介绍下分布式定时任务调度框架的使用场景和功能和架构&#xff0c;然后再介绍世面上常见的产品 我们在大型的复杂的系统下&#xff0c;会有大量的跑批&#xff0c;定时任务的功能&#xff0c;如果在独立的子项目中单独去处理这些任务&#xff0c;随着业务的复杂度的提高…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

关于 WASM:1. WASM 基础原理

一、WASM 简介 1.1 WebAssembly 是什么&#xff1f; WebAssembly&#xff08;WASM&#xff09; 是一种能在现代浏览器中高效运行的二进制指令格式&#xff0c;它不是传统的编程语言&#xff0c;而是一种 低级字节码格式&#xff0c;可由高级语言&#xff08;如 C、C、Rust&am…...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

在Ubuntu24上采用Wine打开SourceInsight

1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...

【JavaSE】多线程基础学习笔记

多线程基础 -线程相关概念 程序&#xff08;Program&#xff09; 是为完成特定任务、用某种语言编写的一组指令的集合简单的说:就是我们写的代码 进程 进程是指运行中的程序&#xff0c;比如我们使用QQ&#xff0c;就启动了一个进程&#xff0c;操作系统就会为该进程分配内存…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

麒麟系统使用-进行.NET开发

文章目录 前言一、搭建dotnet环境1.获取相关资源2.配置dotnet 二、使用dotnet三、其他说明总结 前言 麒麟系统的内核是基于linux的&#xff0c;如果需要进行.NET开发&#xff0c;则需要安装特定的应用。由于NET Framework 是仅适用于 Windows 版本的 .NET&#xff0c;所以要进…...