lua python對比學習

2022-05-09 21:06:57 字數 3509 閱讀 8333

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,...