LUA(初学)

条件语句if

if then
end
local a = 2
if a < 6 thenprint(a)
end
2

条件语句if else

if then
else
end
local a = 2
local b = 3
if a > 6 thenprint(a)
elseprint(b)
end
3

while循环语句

while do
end
local a = 2
while  a < 5 doa = a + 1print(a)
end
3
4
5

for循环语句

for do
end
for a = 1,10,3 doprint(a)
end
1
4
7
10

repeat循环语句

repeat 
until
local a = 2
repeat a = a + 1print(a)
until a > 5
3
4
5
6

文本格式化

string.format
local a = 2
local b = 3
--local c = a.."*"..b.."="..(a * b)
local c = string.format("%d*%d=%d", a, b, a*b)
print(c)
2*3=6

循环控制 break/goto

1、跳出整个循环

break--结束
for a = 1,5 doif a == 3 thenbreakendprint(a)
end
1
2

2、跳出本次循环

goto--跳转到后面代号处
for a = 1,5 doif a == 3 thengoto abcendprint(a)::abc::
end
1
2
4
5

嵌套循环

for a = 1,9 dofor b = 1,a doio.write(string.format("%d*%d=%d ", a, b, a*b))endio.write("\n")
end
1*1=1 
2*1=2 2*2=4 
3*1=3 3*2=6 3*3=9 
4*1=4 4*2=8 4*3=12 4*4=16 
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25 
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36 
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49 
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64 
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81 

函数定义、调用

function
end
function say()print("say内容1")print("say内容2")
end
--不会输出,需要调用(让函数执行)
say()--调用
say()
say内容1
say内容2
say内容1
say内容2

函数参数

function
end
--参数(输入):函数执行之前的已知条件,给函数传递的数据
--返回值(输出):函数执行之后带回来的结果
function say(name)--()内叫参数列表print("你好,"..name.."博士")
end
say("大")
你好,大博士

return函数返回值

return--中止当前函数
function say(name)return("你好,"..name.."博士")--return后不能加东西,会报错
end
local a = say("小")
print (a)
你好,小博士

函数参数、返回值

function say(a,b)--多个参数以逗号分隔return a*b
end
local c = say(2,3)
local d = say(10,3)
print(c,d)
6	30
--[[使用print(a, b)这样的方式输出多个参数时,参数之间会自动用制表符(tab)分隔,而不是简单的空格。
这是Lua的print函数默认行为,它会自动在每个参数之间插入一个制表符(ASCII码为9)作为分隔符]]

函数计算斜边

math.sqrt--开平方
function hello(a,b)--直角三角形的两个边长度a,b,计算斜边local c = a*a+b*blocal d = math.sqrt(c)--开平方print(d)--return math.sqrt(a*a + b*b)--省两行
endhello(3,4)
--print(hello(3,4))
5.0

随机数

math.random--生成随机伪随机数
local num0 = 0
local num1 = 0
local num2 = 0
local num3 = 0
num0 = math.random()--生成0≤num<1的浮点伪随机数
num1 = math.random(5)--生成1≤num≤5的整数伪随机数
num2 = math.random(1,10)--生成1≤num≤10的整数伪随机数
num3 = math.random() * 50--生成0≤num<50的浮点伪随机数
print(num0)
print(num1)
print(num2)
print(num3)
0.84963174875401
5
1
31.14195529442

随机数种子

math.randomseed--设置随机数种子
math.randomseed(12345)--设置随机数种子
--math.randomseed(os.time)--使用当前时间(精确到秒)作为种子
--需要毫秒级的需要看平台接口
for i = 1 , 5 doprint(math.random())--打印5个随机数
end
--第一次输出
0.87460442174732
0.40364110609593
0.66623531969836
0.25568534734156
0.74194905034451
--清除后第二次输出
0.87460442174732
0.40364110609593
0.66623531969836
0.25568534734156
0.74194905034451

计算暴击伤害

function crit(val,bj)--val 伤害  ,bj  暴击率if math.random() < bj then--判断是否暴击return val * 2--暴击伤害增加2倍endreturn val
endlocal a = 100--基础伤害
local b = 0.2--暴击率for d = 1,5,1 dolocal c = crit(a,b)print("最终伤害:"..c)
end
最终伤害:200
最终伤害:200
最终伤害:100
最终伤害:100
最终伤害:200

函数多个返回值

function swap(a, b)return b, a
endlocal x, y = swap(1,2)
print(x, y)
2	1
function swap()return 2, 3
endlocal x, y = swap()
print(x, y)
2	3

函数不固定参数

function hello(...)--代表不固定有几个参数
function swap(...)for _, v in ipairs({...}) do--传进来的参数一个一个单独循环处理print("参数:" .. v)end
endswap(1, 2, 3, 7)--参数类型都支持的
swap("ha", "he")
```lua
参数:1
参数:2
参数:3
参数:7
参数:ha
参数:he

循环、遍历、迭代

循环(looping):重复执行某段代码,多次执行代码直到满足某个条件,常见循环结构(for、while、do while)

遍历(traversal):逐个访问一遍

迭代(iteration):一种特殊的遍历方式,在数组、列表、集合等中逐个访问元素(强调过程)

迭代----(过程)----》遍历----(原理)----》循环

获取当前文件目录

function hello(...)--代表不固定有几个参数
function swap(...)for _, v in ipairs({...}) do--传进来的参数一个一个单独循环处理print("参数:" .. v)end
endswap(1, 2, 3, 7)--参数类型都支持的
swap("ha", "he")
```lua
参数:1
参数:2
参数:3
参数:7
参数:ha
参数:he

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

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

相关文章

JMeter 连接与配置 ClickHouse 数据库

其他人都需要好几十积分提供jar包&#xff0c;我5积分提供给大家 jar包地址&#xff1a;https://download.csdn.net/download/weixin_41853064/91370401 1、将jar包内的文件放入jmeter/lib/exc目录并重启jmeter 2、配置jmeter JDBC连接 3、复制 click hourse的类名&#xff1…

Kmeams聚类算法详解

文章目录一、聚类任务的简介1.1 聚类的核心特征1.2 聚类的典型应用场景二、Kmeans的思想和数学原理2.1 核心思想2.2 数学原理三、Kmeans计算过程示例3.1 数据集3.2 步骤1&#xff1a;确定K值并初始化簇中心3.3 步骤2&#xff1a;计算样本到簇中心的距离并分配簇3.4 步骤3&#…

平升智慧水务整体解决方案,大数据驱动的智慧水务,让城市供水更智能

平升电子智慧水务整体解决方案 智慧供水整体解决方案&#xff0c;在调度中心搭建智慧水务平台&#xff0c;为供水各环节安装智能测控设备&#xff0c;应用物联网、互联网、大数据、云计算、人工智能等新一代信息技术&#xff0c;构建智慧水务综合管理系统&#xff0c;贯穿从水源…

Samba配置使用

主要作用&#xff1a;将Linux系统中的文件共享给windows配置过程&#xff1a;&#xff08;1&#xff09;打开命令终端&#xff1a;获取超级用户权限后运行以下指令:apt-get install samba&#xff08;2&#xff09;修改samba配置文件&#xff1a;gedit /etc/samba/smb.conf :找…

Datawhale AI数据分析 笔记

Part1&#xff1a;数据分析入门--信息统计知识点&#xff1a;什么是提示词&#xff08;Prompt&#xff09;&#xff1f;在人工智能&#xff08;AI&#xff09;领域&#xff0c;"提示词"是一个关键概念&#xff0c;它指的是输入给AI模型的文本或指令&#xff0c;用于引…

JAVA青企码协会模式系统源码支持微信公众号+微信小程序+H5+APP

Java青企码协会系统源码&#xff1a;构建全渠道数字化管理平台&#xff08;多端融合精准服务&#xff09;在政策红利与数字化转型的双重驱动下&#xff0c;青年企业协会正面临资源对接低效、会员粘性不足、跨域协同困难等痛点。基于Java技术栈的青企码协会系统&#xff0c;通过…

Python 中调用阿里云 OCR(Optical Character Recognition,光学字符识别)服务

在 Python 中调用阿里云 OCR&#xff08;Optical Character Recognition&#xff0c;光学字符识别&#xff09;服务&#xff0c;通常需要使用阿里云的 SDK。OCR 服务属于阿里云“视觉智能&#xff08;Vision Intelligence&#xff09;”产品线的一部分&#xff0c;调用时需通过…

网络基础协议综合实验

本文结合所学的一些基础网络协议来完成一个综合性的实验&#xff08;实验完整代码放在最后&#xff09;会先说明使用协议的原理&#xff0c;然后分析具体在拓补图中的应用过程&#xff0c;最后再给出配置明确实验目标&#xff1a;拓扑分 核心层&#xff08;R1&#xff09;、汇聚…

图机器学习(5)——无监督图学习与浅层嵌入方法

图机器学习&#xff08;5&#xff09;——无监督图学习0. 前言1. 无监督图嵌入2. 矩阵分解2.1 图分解2.2 高阶邻接保留嵌入2.3 带有全局结构信息的图表示3. skip-gram 模型3.1 DeepWalk3.2 Node2Vec3.3 Edge2Vec3.4 Graph2Vec0. 前言 无监督机器学习是指训练过程中不利用任何目…

lua中检查静态常量是否正确引用

lua中检查静态常量是否正确引用思路代码因在项目开发中会出现引用了不存在的常量&#xff0c;为了方便检查这种情况&#xff0c;所以想着添加针对性脚本check 思路 加载要检查的常量结构到KEYWORD通过gmatch匹配指定路径下的所有文件&#xff0c;依次检查引用到目标变量的key是…

考完数通,能转云计算/安全方向吗?转型路径与拓展路线分析

不少网工考完 HCIE数通 后&#xff0c;都会面临一个现实问题&#xff1a;“能不能往云计算、安全这些热门方向转&#xff1f;”可以&#xff0c;而且非常值得。但怎么转、学什么、有没有路线图&#xff0c;是关键。一、为什么考完HCIE数通后适合转方向&#xff1f;技术基础扎实…

2.逻辑回归、Softmax回归——鸢尾花大作战

逻辑回归 逻辑回归其实并不是回归&#xff0c;而是一个分类算法 分类问题&#xff1a;邮件分类、图像识别、疾病诊断、文字情感分析、金融欺诈检测 根据历史数据&#xff0c;预测样本是属于哪个类别&#xff0c;通过数据拟合分界 主要用于二分类任务 逻辑回归公式 事实上是在多…

【Lucene/Elasticsearch】**Query Rewrite** 机制

这段话描述的是 Lucene/Elasticsearch 的 **Query Rewrite** 机制&#xff0c;核心一句话&#xff1a;> **把“高级”或“逻辑”查询&#xff08;如 PrefixQuery、WildcardQuery、RangeQuery&#xff09;在真正执行前&#xff0c;拆成最底层的、可直接倒排索引查的“原子查询…

小智完整MCP交互流程(以调节音量为例)

1. 初始化阶段 - MCP工具注册 在 mcp_server.cc 中&#xff0c;音量控制工具在 AddCommonTools() 中注册&#xff1a; AddTool("self.audio_speaker.set_volume", "Set the volume of the audio speaker. If the current volume is unknown, you must call self…

极狐GitLab CEO 柳钢——极狐 GitLab 打造中国企业专属 AI 编程平台,引领编程新潮流

当下&#xff0c;AI 编程已成为人工智能大模型领域的耀眼明星&#xff0c;是公认的最好应用领域之一。其发展速度惊人&#xff0c;从最初简单的代码建议、代码补全等基础智能功能&#xff0c;一路高歌猛进&#xff0c;如今已涵盖智能单元测试、智能代码审核、智能体编程、代码仓…

tiktok 弹幕 逆向分析

声明: 本文章中所有内容仅供学习交流使用&#xff0c;不用于其他任何目的&#xff0c;抓包内容、敏感网址、数据接口等均已做脱敏处理&#xff0c;严禁用于商业用途和非法用途&#xff0c;否则由此产生的一切后果均与作者无关&#xff01; 逆向分析部分python代码部分python代码…

Java学习打卡22(JAVA中的错误Error和异常Exception)

异常&#xff08; Exception &#xff09;&#xff1a;软件程序在运行过程中&#xff0c;出现的不期而至的各种情况&#xff0c;如&#xff1a;文件找不到、网络连接失败、非法参数等。要理解JAVA异常处理是如何工作的&#xff0c;需要掌握以下三种类型的异常&#xff1a;检查性…

AntV G6 基础元素详解(React版)

一、初识 AntV G6 AntV G6 是蚂蚁集团推出的专业级图可视化引擎&#xff0c;适合构建关系图谱、拓扑图、流程图等场景。相比其他图形库&#xff0c;G6 提供完整的布局算法 和交互体系 &#xff0c;开发者在 10 分钟内即可搭建可交互的图应用。 技术特点速览&#xff1a; 支持 C…

【解决】联想电脑亮度调节

更新后图标变大调节分辨率然后亮度就不能调节了快捷键WindowsX打开设备管理器右键显卡更新驱动程序选择“浏览我的电脑以查找驱动程序&#xff08;R&#xff09;”选择“让我从计算机上的可驱动程序列表中选取&#xff08;L&#xff09;”点击下一步成功解决

将Blender、Three.js与Cesium集成构建物联网3D可视化系统

将Blender、Three.js与Cesium集成构建物联网3D可视化系统&#xff0c;可实现从精细设备建模到宏观地理空间展示的全栈能力。以下是技术整合方案及典型应用场景&#xff1a;一、技术栈分工与集成逻辑 #mermaid-svg-gCvcBVB9ebl092ap {font-family:"trebuchet ms",verd…