一、基本数据类型

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!
H
llo
llo World!
Hello World!TEST
2 3
the 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 = {"Lua", "Python"}

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 (i<len(array)):
print(array[i])
i+=1 输出结果
"Lua"
"Python"
"Lua"
"Python"

二、lua注意事项

1、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")
end
end

3、table之间的赋值为引用,即只是将地址进行引用,而不是申请新的内存空间。

function func()
local tab1 = {1, 2, 3}
local tab2 = tab1
table.remove(tab2)
for i = 1, #tab1 do
print(tab1[i])
end
print("_______________")
for i = 1, #tab1 do
print(tab2[i])
end
end func() --[[
1
2
_______________
1
2
]]

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() --[[
10
11
6
6
]]

5、for语句,下标不是连续的不要使用ipairs。ipairs遇见nil就返回。

function func()
local tab = {1, 2, 3, nil, a = 5, 6}
for i = 1, #tab do
print(tab[i])
end
print()
for k, v in ipairs(tab) do
print(k, v)
end
print()
for k, v in pairs(tab) do
print(k, v)
end
end func() --[[
1
2
3
nil
6 1 1
2 2
3 3 1 1
2 2
3 3
5 6
a 5
]]

lua、python对比学习的更多相关文章

  1. python 对比学习

    python和java面向对象的不同 1.属性和方法 java中类的属性(static)除外,对象全部独立拥有: 而python中类的属性,其实例对象一个字段都没有.底层是这么搞的: 对象object ...

  2. Day1 Python基础学习

    一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...

  3. Day1 Python基础学习——概述、基本数据类型、流程控制

    一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...

  4. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  5. python爬虫学习(1) —— 从urllib说起

    0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...

  6. 利用python深度学习算法来绘图

    可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...

  7. Python Tkinter 学习成果:点歌软件music

    笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...

  8. 对比java和python对比

    对比java和python 对比java和python 2011年04月18日 1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于 ...

  9. 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码

    学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...

随机推荐

  1. 正则表达式截取xml

    $str = '<Ips><GateWayRsp><head><ReferenceID>123</ReferenceID><RspCo ...

  2. html的鼠标双击,单击,移上,离开,事件捕捉,JavaScript

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. Shell编程—gawk进阶

    1使用变量 awk编程语言支持两种不同类型的变量: 内建变量 自定义变量 1.1内建变量 1. 字段和记录分隔符变量 数据字段变量允许你使用美元符号($)和字段在该记录中的位置值来引用记录对应的字段. ...

  4. rdf径向分布函数

    1.rdf的in文件编写: 2.计算结果文件:

  5. 前端框架之vue初步学习

    Vue.js介绍: Vue.js是一个构建数据驱动的web界面的渐进式框架.Vue.js的目标是通过尽可能简单的API实现响应的数据绑定和组合的视图组件.它不仅易于上手,还便于与第三方库或既有项目整合 ...

  6. 快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)

    快速解决Ubuntu/linux 环境下QT生成没有可执行文件(application/x-executable)(转载)   问题描述 与windows环境下不同,linux选择debug构建时并不 ...

  7. vue中页面卡顿,使用懒加载

    为给客户更好的客户体验,首屏组件加载速度更快一些,解决白屏问题. 懒加载简单来说就是延迟加载或按需加载,即在需要的时候的时候进行加载. 常用的懒加载方式有两种:即使用vue异步组件 和 ES中的imp ...

  8. 5000字 | 24张图带你彻底理解Java中的21种锁

    本篇主要内容如下: 本篇文章已收纳到我的Java在线文档. Github 我的SpringCloud实战项目持续更新中 帮你总结好的锁: 序号 锁名称 应用 1 乐观锁 CAS 2 悲观锁 synch ...

  9. PageObject六大原则

    The public methods represent the services that the page offers 公共方法表示页面提供的服务 Try not to expose the i ...

  10. POJ-2104-K-th Number(区间第K大+主席树模板题)

    Description You are working for Macrohard company in data structures department. After failing your ...