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

第3篇:数据的运算——让数据动起来 Rust中文编程

第3篇:数据的运算——让数据动起来

作者:李金雨
联系方式:wbtm2718@qq.com
目标读者:Rust中文编程
核心理念:AI时代必须使用中文编程,母语编程阅读效率极高


1. 开篇引入

本课目标

  • 掌握Rust的基本算术运算符
  • 掌握Rust的比较运算符
  • 掌握Rust的逻辑运算符
  • 掌握Rust的赋值运算符
  • 理解运算优先级

生活场景引入

想象一下,你有一些数字卡片,你可以对它们进行各种操作:

  • 把两张卡片上的数字加起来
  • 比较两张卡片上数字的大小
  • 根据卡片上的数字做出判断

在编程中,我们也可以对数据进行各种运算,让数据动起来。

预期成果展示

通过这节课的学习,你将能够:

  • 使用算术运算符进行加减乘除
  • 使用比较运算符比较数据大小
  • 使用逻辑运算符进行条件判断
  • 使用赋值运算符简化代码
  • 理解运算的优先级

2. 概念讲解

算术运算符

算术运算符就像我们在数学中学习的加减乘除,用来对数字进行运算。

运算符功能示例结果
+加法1 + 23
-减法5 - 32
*乘法2 * 36
/除法6 / 23
%取余7 % 31
fnmain(){let加法=1+2;let减法=5-3;let乘法=2*3;let除法=6/2;let取余=7%3;println!("1 + 2 = {}",加法);println!("5 - 3 = {}",减法);println!("2 * 3 = {}",乘法);println!("6 / 2 = {}",除法);println!("7 % 3 = {}",取余);}

比较运算符

比较运算符用来比较两个值的大小或是否相等。

运算符功能示例结果
==等于2 == 2true
!=不等于2 != 3true
>大于3 > 2true
<小于2 < 3true
>=大于等于3 >= 3true
<=小于等于2 <= 3true
fnmain(){let等于=2==2;let不等于=2!=3;let大于=3>2;let小于=2<3;let大于等于=3>=3;let小于等于=2<=3;println!("2 == 2 = {}",等于);println!("2 != 3 = {}",不等于);println!("3 > 2 = {}",大于);println!("2 < 3 = {}",小于);println!("3 >= 3 = {}",大于等于);println!("2 <= 3 = {}",小于等于);}

逻辑运算符

逻辑运算符用来组合多个条件,进行逻辑判断。

运算符功能示例结果
&&与(两个条件都为真)true && falsefalse
``或(至少一个条件为真)
!非(取反)!truefalse
fnmain(){let与运算=true&&false;let或运算=true||false;let非运算=!true;println!("true && false = {}",与运算);println!("true || false = {}",或运算);println!("!true = {}",非运算);}

赋值运算符

赋值运算符用来给变量赋值,或者在原有的值基础上进行运算后再赋值。

运算符功能示例等价于
=赋值a = 5a = 5
+=加后赋值a += 3a = a + 3
-=减后赋值a -= 3a = a - 3
*=乘后赋值a *= 3a = a * 3
/=除后赋值a /= 3a = a / 3
fnmain(){letmuta=5;println!("初始值:{}",a);// 加后赋值a+=3;println!("a += 3 后:{}",a);// 减后赋值a-=2;println!("a -= 2 后:{}",a);// 乘后赋值a*=2;println!("a *= 2 后:{}",a);// 除后赋值a/=3;println!("a /= 3 后:{}",a);}

字符串运算

字符串也可以进行运算,主要是拼接操作。

fnmain(){let问候语="你好";let姓名="张三";let完整问候=问候语.to_string()+","+&姓名+"!";println!("{}",完整问候);// 输出:你好,张三!// 也可以使用format!宏let完整问候2=format!("{},{}!",问候语,姓名);println!("{}",完整问候2);// 输出:你好,张三!}

运算优先级

运算优先级决定了运算的执行顺序,就像数学中的先乘除后加减。

优先级从高到低:

  1. 括号()
  2. 取负-
  3. 乘法、除法、取余* / %
  4. 加法、减法+ -
  5. 比较运算符== != > < >= <=
  6. 逻辑非!
  7. 逻辑与&&
  8. 逻辑或||
  9. 赋值运算符= += -= *= /=
fnmain(){// 先计算乘法,再计算加法let结果1=2+3*4;// 等于 2 + 12 = 14println!("2 + 3 * 4 = {}",结果1);// 使用括号改变优先级let结果2=(2+3)*4;// 等于 5 * 4 = 20println!("(2 + 3) * 4 = {}",结果2);}

3. 动手实践

基础练习(必做)

  1. 简易计算器:创建一个程序,进行加减乘除运算:

    fnmain(){leta=10;letb=5;println!("{} + {} = {}",a,b,a+b);println!("{} - {} = {}",a,b,a-b);println!("{} * {} = {}",a,b,a*b);println!("{} / {} = {}",a,b,a/b);}
  2. 购物小票生成器:创建一个程序,计算购物总价:

    fnmain(){let苹果价格=5.5;let苹果数量=2;let香蕉价格=3.0;let香蕉数量=3;let苹果总价=苹果价格*苹果数量asf64;let香蕉总价=香蕉价格*香蕉数量asf64;let总计=苹果总价+香蕉总价;println!("购物小票:");println!("苹果:{}元 × {}个 = {}元",苹果价格,苹果数量,苹果总价);println!("香蕉:{}元 × {}个 = {}元",香蕉价格,香蕉数量,香蕉总价);println!("总计:{}元",总计);}
  3. 成绩统计分析:创建一个程序,计算成绩的总分、平均分、最高分:

    fnmain(){let语文=95;let数学=98;let英语=92;let总分=语文+数学+英语;let平均分=总分asf64/3.0;let最高分=if语文>数学{if语文>英语{语文}else{英语}}else{if数学>英语{数学}else{英语}};println!("成绩统计:");println!("语文:{}分",语文);println!("数学:{}分",数学);println!("英语:{}分",英语);println!("总分:{}分",总分);println!("平均分:{}分",平均分);println!("最高分:{}分",最高分);}

进阶练习(选做)

  1. 温度转换:创建一个程序,实现摄氏度和华氏度的相互转换:

    fnmain(){let摄氏度=25.0;let华氏度=摄氏度*9.0/5.0+32.0;println!("{}摄氏度 = {}华氏度",摄氏度,华氏度);let华氏度2=77.0;let摄氏度2=(华氏度2-32.0)*5.0/9.0;println!("{}华氏度 = {}摄氏度",华氏度2,摄氏度2);}
  2. BMI指数计算器:创建一个程序,计算BMI指数并判断体重状态:

    fnmain(){let身高=1.75;// 单位:米let体重=50.5;// 单位:公斤letbmi=体重/(身高*身高);println!("身高:{}米",身高);println!("体重:{}公斤",体重);println!("BMI指数:{}",bmi);ifbmi<18.5{println!("体重偏轻");}elseifbmi<24.0{println!("体重正常");}elseifbmi<28.0{println!("超重");}else{println!("肥胖");}}

挑战练习(拓展)

  1. 复合条件判断:创建一个程序,使用逻辑运算符进行复合条件判断:
    fnmain(){let年龄=15;let成绩=85;// 判断是否可以参加比赛let可以参加=年龄>=12&&年龄<=18&&成绩>=80;println!("是否可以参加比赛:{}",可以参加);// 判断是否需要补考let需要补考=成绩<60||成绩>=60&&成绩<70;println!("是否需要补考:{}",需要补考);}

4. 知识总结

核心概念回顾

  • 算术运算符+-*/%,用于数学运算
  • 比较运算符==!=><>=<=,用于比较大小
  • 逻辑运算符&&||!,用于逻辑判断
  • 赋值运算符=+=-=*=/=,用于赋值操作
  • 字符串运算:使用+format!宏进行字符串拼接
  • 运算优先级:决定运算的执行顺序,括号可以改变优先级

关键代码速查

运算符类型运算符示例
算术+a + b
算术-a - b
算术*a * b
算术/a / b
算术%a % b
比较==a == b
比较!=a != b
比较>a > b
比较<a < b
逻辑&&a && b
逻辑`
逻辑!!a
赋值=a = b
赋值+=a += b

常见错误提醒

  1. 整数除法:两个整数相除会截断小数部分,结果还是整数
  2. 运算符优先级:忘记使用括号导致运算顺序错误
  3. 类型不匹配:不同类型的数据不能直接进行运算
  4. 字符串拼接:需要注意+运算符的使用规则

5. 课后作业

巩固练习题

  1. 编写一个程序,计算圆的面积和周长(半径由用户输入)
  2. 编写一个程序,判断一个数是否是偶数
  3. 编写一个程序,计算两个数的最大公约数

创意编程题

  1. 发挥你的创意,创建一个程序,计算你一周的零花钱使用情况
  2. 编写一个程序,模拟一个简单的计算器,支持加减乘除和括号

下篇预习提示

下一篇我们将学习"如果…那么——让程序做选择",就像学习如何让程序根据不同的情况做出不同的决策。预习一下:

  • 什么是条件判断语句?
  • 如何使用if语句?
  • 如何使用else和else if语句?
  • 什么是match表达式?

恭喜你完成了第三篇教程!你已经掌握了Rust的基本运算符,学会了如何让数据动起来。继续加油,下一篇我们将学习如何让程序做选择!

学习交流

如果你在学习过程中遇到任何问题,欢迎联系我:

  • ** 视频号,“时空系”
  • 邮箱:wbtm2718@qq.com
  • 其他提示:
  • 本人正在开发纯中文编程语言和编译器,有兴趣的可以交流
  • 本人正在写一本基于中国母语思维习惯的数学教材,可以让你一年内学完从初中到研究生的数学,而且可以让你快速掌握人工智能的关键数学知识,有兴趣的可以交流

祝你学习愉快!

http://www.cnnetsun.cn/news/2177400.html

相关文章:

  • 2025届毕业生推荐的六大AI科研工具解析与推荐
  • 025、记忆系统:短期记忆与长期记忆
  • 策略拍卖框架:AI代理任务分配的成本效益优化
  • LangGraph-GUI:可视化编排多智能体工作流,降低开发与调试门槛
  • 雀魂牌谱屋终极指南:用数据驱动麻将竞技水平快速提升
  • 长期项目中使用Taotoken服务在账单可追溯性方面的实际体验
  • WarcraftHelper终极指南:魔兽争霸III玩家必备的8大功能优化插件
  • STM32CubeMX实战:5分钟搞定FatFS文件系统配置(基于HAL库,含SPI Flash驱动)
  • 智能家居能源管理系统(HEMS)的核心技术与应用
  • PHPStudy环境下复现SWPUCTF新生赛Web题:手把手搭建靶场与漏洞调试
  • 整合Hermes Agent与Taotoken实现自定义模型提供方的接入实践
  • 如何用Python轻松获取金融数据:efinance量化分析库完整指南
  • 别再手动存图了!用Python脚本+Unsplash API批量下载高质量图片素材(附完整代码)
  • 从ICode竞赛题看Python坐标思维:用几个小项目彻底搞懂二维空间判断
  • 别再乱写NFC标签了!NTAG213/215/216芯片的静态锁与动态锁详解(附防变砖指南)
  • 别再对着十六进制发愁了!手把手教你用Influx Dialog看懂汽车CAN报文DBC文件
  • Vue 3 + ECharts 5 避坑指南:从版本冲突到完美集成统计大屏
  • CompressO:开源跨平台视频图像压缩神器,释放你的存储空间
  • 避坑指南:用MATLAB训练强化学习代理时,网格世界环境那些容易踩的‘坑’(以BasicGridWorld为例)
  • 基于Chain+Module+Plugin架构的AI音乐库自动化管理方案
  • 初创团队如何借助 Taotoken 模型广场快速进行 AI 能力选型
  • YOLO26语义分割注意力机制改进:全网首发--使用ACA强化主干深层跨轴上下文建模(方案2)
  • 新手友好!用YAKIT和Nuclei Templates快速入门漏洞挖掘,附实战靶场复现
  • 终极显卡驱动深度清理指南:Display Driver Uninstaller专业使用全解析
  • 如何在Switch上免费使用Xbox和PS4手柄:sys-con终极指南
  • 为内部知识问答系统集成多模型后备方案
  • 如何高效利用开源工具实现抖音内容价值最大化?
  • Moonlight-Switch游戏串流技术实现深度解析:架构揭秘与性能优化
  • Unity性能优化从‘编码时’开始:用Roslyn Analyzer自动拦截Update里的GetComponent等常见坑
  • SRWE:突破游戏分辨率限制的实时窗口编辑利器