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
英文地址,請注明出處:http://en.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…