lua、python对比学习
一、基本数据类型:
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对比学习的更多相关文章
- python 对比学习
python和java面向对象的不同 1.属性和方法 java中类的属性(static)除外,对象全部独立拥有: 而python中类的属性,其实例对象一个字段都没有.底层是这么搞的: 对象object ...
- Day1 Python基础学习
一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编写程序,本质仍然是直接操作 ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- 利用python深度学习算法来绘图
可以画画啊!可以画画啊!可以画画啊! 对,有趣的事情需要讲三遍. 事情是这样的,通过python的深度学习算法包去训练计算机模仿世界名画的风格,然后应用到另一幅画中,不多说直接上图! 这个是世界名画& ...
- Python Tkinter 学习成果:点歌软件music
笔者工作业余时间也没什么爱好,社交圈子也小,主要娱乐就是背着自己带电瓶的卖唱音响到住地附近找个人多的位置唱唱KtV. 硬件上点歌就用笔记本电脑,歌曲都是网上下载的mkv格式的含有两个音轨的视频.因此点 ...
- 对比java和python对比
对比java和python 对比java和python 2011年04月18日 1.难易度而言.python远远简单于java. 2.开发速度.Python远优于java 3.运行速度.java远优于 ...
- 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码
学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...
随机推荐
- MariaDB二进制安装
下载二进制的MariaDB https://downloads.mariadb.org/mariadb/10.2.16/ 安装过程 下载&解压 下载到/tools安装到/application ...
- Better Key Sizes (and Attacks) for LWE-Based Encryption
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 以下是对本文关键部分的摘抄翻译,详情请参见原文 Abstract 基于“learning with errors”(LWE)问题,分析了理 ...
- Java数据结构——根据遍历结果构造二叉树
一.已知前序.中序.后序遍历结果的其中两种,还原二叉树. ①已知前序遍历结果:1,2,4,5,3,6,7 中序遍历结果:4,2,5,1,6,3,7还原二叉树后BFS出结果. TreeNode.java ...
- Typora--我用过的最好用的markdown编辑器
Typora Markdown编辑器,让人专注于书写的编辑器,书写博客和笔记的不二之选! 之前使用过程中只是使用了默认的功能,没有进行任何的第三发查件使用,各种方面出现了很多的局限性,比如插入了图片之 ...
- element UI 上传文件成功后 - 清空文件
request({ url: '/jiekou', method: 'post', data }).then(res => { this.$message({ type: 'success', ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
- 2 http
response.write(string|buffer)可以调用0-n次 response.end(string|buffer) 方法.必须调用一次 response.setHeader('Con ...
- 修改CentOS的yum源,改为阿里云的镜像
修改CentOS的yum源,改为阿里云的镜像 1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.b ...
- padding-top:100%解决高度塌陷问题
<div class="img_box"> <img src="http://sms-shop.oss-cnbeijing.aliyuncs.com/$ ...
- 从两表连接看Oracle sql优化器的效果
select emp.*,dept.* from tb_emp03 emp,tb_dept03 dept where emp.deptno=dept.id -- 不加hint SQL> sele ...