lua:nil(空)、boolean(false和nil為假)、number(數值)、string(字串)、table(表)、function(方法)、thread (執行緒)、userdata
python:none(空)、boolean(false和none為假)、number(數值)、string(字串)、list(列表)、tuple(元表)、dictionary(字典)、def(函式)、thread (執行緒)
string操作:
lua:
str = 「hello」 .. 「world!」print (str) # 輸出完整字串
print (string.sub(str,1,1)) # 輸出字串中的第乙個字元
print (string.sub(str,3,5)) # 輸出字串中第三個至第五個之間的字串
print (string.sub(str,3,-1)) # 輸出從第三個字元開始的字串
print (str .. "test") # 輸出連線的字串
print (string.find(str,"el")) # 輸出第乙個滿足項起始下標
print (string.format("the value is:%d",4)) # 字串格式化輸出
輸出結果
hello world!
hllo
llo world!
hello world!test
2 3the value is:4
python:
str = 「hello」 + 「world!」print (str) # 輸出完整字串
print (str[0]) # 輸出字串中的第乙個字元
print (str[2:5]) # 輸出字串中第三個至第六個之間的字串
print (str[2:]) # 輸出從第三個字元開始的字串
print (str * 2) # 輸出字串兩次
print (str + "test") # 輸出連線的字串
print ("he" in str) # 查詢是否包含某字元
print ("the value is:%d" %(4)) #字串格式化輸出
輸出結果
hello world!
h llo
llo world!
hello world!hello world!
hello world!test
true
the value is:4
集合操作:
lua: 下標從1開始
array =for i= 0, #array do
print(array[i])
end--for迴圈 ipairs對於集合下標要求必須從1開始遞增並且中間值不可為nil
--pairs 輸出結果是隨機的即不是按照集合順序輸出,但沒有ipairs的限制
for _, v in ipairs(array) do
print(v)
end輸出結果
"lua"
"python"
"lua"
"python"
python: 下標從0開始
array = ["lua", "python"]for i in range(len(array)):
print(array[i])
i = 0
while (i1、lua函式第一層結構中,return語句之後不能再有別的**。
function func()
return"h
"local data = "
hello
"end
2、goto語句的跳轉目的,不能寫到邏輯判斷語句塊中。
function func()local i = 1
goto
continue
if i == 2
then
::continue
:: print(
"true")
else
print(
"false")
endend
3、table之間的賦值為引用,即只是將位址進行引用,而不是申請新的記憶體空間。
function func()local tab1 =
local tab2 =tab1
table.remove(tab2)
for i = 1, #tab1 do
print(tab1[i])
endprint(
"_______________")
for i = 1, #tab1 do
print(tab2[i])
endendfunc()
--[[12
_______________12
]]
4、在使用and或or時,盡可能加括號。
function func()local i = 1
print(i and
10 or 5 + 1
) print((i and
10 or 5) + 1
) i =nil
print(i and
10 or 5 + 1
) print((i and
10 or 5) + 1
)end
func()
--[[
101166
]]
5、for語句,下標不是連續的不要使用ipairs。ipairs遇見nil就返回。
function func()local tab =
for i = 1, #tab do
print(tab[i])
endprint()
for k, v in ipairs(tab) do
print(k, v)
endprint()
for k, v in pairs(tab) do
print(k, v)
endendfunc()
--[[12
3nil61
1223
3112
2335
6a
5]]
Lua Python及Shell語法異同點
作為常用的指令碼語言,簡單從語法上做下對比。luapython shell 注釋 或 或 或 運算子 無位運算 and or not 整除,次冪 位運算 關係運算子1 in not in is is not gt,lt,eq,ge,le,ne,z,f,n,算術運算子略 資料型別 nil boolea...
ref out對比學習
前面對ref引數和out引數各自的功能特點已經介紹了,現在我們來對比學習這兩個高階引數 區別 傳入ref引數時傳入的引數必須先初始化,而對out而言,在方法中需要對該引數進行初始化。使用ref引數和out引數在方法的引數和執行方法上都需要加上關鍵字,以滿足一一匹配。相同之處 通過方法體的內部來改變方...
機器學習 Xgboost 對比
引數解釋 實戰 原理 調參步驟 對比 這篇寫的比較好。eta學習率的解釋 你可以是幾個回歸樹的葉子節點之和為 值,也可以是加權,比如第一棵樹 值為3.3,label為4.0,第二棵樹才學0.7,再後面的樹還學個鬼,所以給他打個折扣,比如3折,那麼第二棵樹訓練的殘差為4.0 3.3 0.3 3.01,...