python和lua哪个有前途_python和lua数据类型的比较

Python比较特殊的数据类型:

List []

例如 :

1

2

3

4

5

6

7

8

9

10

11

12#!/usr/bin/python

# -*- coding: UTF-8 -*-

list = [ 'runoob', 786 , 2.23, 'john', 70.2 ]

tinylist = [123, 'john']

print list # 输出完整列表

print list[0] # 输出列表的第一个元素

print list[1:3] # 输出第二个至第三个的元素

print list[2:] # 输出从第三个开始至列表末尾的所有元素

print tinylist * 2 # 输出列表两次

print list + tinylist # 打印组合的列表

以上实例输出结果:

1

2

3

4

5

6['runoob', 786, 2.23, 'john', 70.2]

runoob

[786, 2.23]

[2.23, 'john', 70.2]

[123, 'john', 123, 'john']

['runoob', 786, 2.23, 'john', 70.2, 123, 'john']

Tuple(元祖)(),相当于只读列表,不可以二次赋值

tuple = ( 'runoob', 786 , 2.23, 'john', 70.2 ), 除了元祖用()而list用[], 而且元祖只是可读的, 其他的跟list一毛一样

dictionary(字典){},key值对1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#!/usr/bin/python

# -*- coding: UTF-8 -*-

dict = {}

dict['one'] = "This is one"

dict[2] = "This is two"

tinydict = {'name': 'john','code':6734, 'dept': 'sales'}

print dict['one'] # 输出键为'one' 的值

print dict[2] # 输出键为 2 的值

print tinydict # 输出完整的字典

print tinydict.keys() # 输出所有键

print tinydict.values() # 输出所有值

输出结果为:

1

2

3

4

5This is one

This is two

{'dept': 'sales', 'code': 6734, 'name': 'john'}

['dept', 'code', 'name']

['sales', 6734, 'john']

lua比较特殊的数据类型

lua变量变量在使用前,必须在代码中进行声明,即创建该变量。

编译程序执行代码之前编译器需要知道如何给语句变量开辟存储区,用于存储变量的值。

Lua 变量有三种类型:全局变量、局部变量、表中的域。

Lua 中的变量全是全局变量,那怕是语句块或是函数里,除非用 local 显式声明为局部变量。

局部变量的作用域为从声明位置开始到所在语句块结束。

变量的默认值均为 nil。

test.lua 文件脚本1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18a = 5 -- 全局变量

local b = 5 -- 局部变量

function joke()

c = 5 -- 全局变量

local d = 6 -- 局部变量

end

joke()

print(c,d) --> 5 nil

do

local a = 6 -- 局部变量

b = 6 -- 全局变量

print(a,b); --> 6 6

end

print(a,b) --> 5 6

执行以上实例输出结果为:

1

2

3

4$ lua test.lua

5nil

66

56

lua的特有的东西table(表)

在 Lua 里,table 的创建是通过”构造表达式”来完成,

最简单构造表达式是{},用来创建一个空表。

也可以在表里添加一些数据,直接初始化表:

1

2

3

4

5-- 创建一个空的 table

local tbl1 = {}

-- 直接初始表

local tbl2 = {"apple", "pear", "orange", "grape"}

Lua 中的表(table)其实是一个”关联数组”(associative arrays),数组的索引可以是数字或者是字符串。

1

2

3

4

5

6

7

8

9-- table_test.lua 脚本文件

a = {}

a["key"] = "value"

key = 10

a[key] = 22

a[key] = a[key] + 11

for k, v in pairs(a) do

print(k .. " : " .. v)

end

脚本执行结果为:

1

2

3$ lua table_test.lua

key : value

10 : 33

不同于其他语言的数组把 0 作为数组的初始索引,在 Lua 里表的默认初始索引一般以 1 开始。

1

2

3

4

5-- table_test2.lua 脚本文件

local tbl = {"apple", "pear", "orange", "grape"}

for key, val in pairs(tbl) do

print("Key", key)

end

脚本执行结果为:

1

2

3

4

5$ lua table_test2.lua

Key1

Key2

Key3

Key4

table 不会固定长度大小,有新数据添加时 table 长度会自动增长,没初始的 table 都是 nil。

1

2

3

4

5

6

7

8-- table_test3.lua 脚本文件

a3 = {}

for i = 1, 10 do

a3[i] = i

end

a3["key"] = "val"

print(a3["key"])

print(a3["none"])

脚本执行结果为:

1

2

3$ lua table_test3.lua

val

nil

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值