一、基本数据类型

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. Mysql安装错误

    [问题一]在安装mysql时遇到以下错误 执行./mysqld --initialize 后 ./bin/mysqld: error while loading shared libraries: l ...

  2. Element UI - DatePicker 自定义日期选择期间

    <el-date-picker v-else v-model="searchForm.data_Selected" type="daterange" un ...

  3. Android开发之SDCardUtils工具类。java工具详细代码,附源代码。判断SD卡是否挂载等功能

    package com.xiaobing.zhbj.utils; import java.io.BufferedInputStream; import java.io.BufferedOutputSt ...

  4. UGUI核心元素、基本控件、复合控件和高级控件

    UGUI的核心元素: Anchor(锚点):每个控件都有一个Anchor属性,控件的4个顶点,分别与Anchor的4个点保持不变的距离,不受屏幕分辨率变化的影响. 系统默认设置控件的Anchor位置在 ...

  5. 《神经网络的梯度推导与代码验证》之CNN前向和反向传播过程的代码验证

    在<神经网络的梯度推导与代码验证>之CNN的前向传播和反向梯度推导 中,我们学习了CNN的前向传播和反向梯度求导,但知识仍停留在纸面.本篇章将基于深度学习框架tensorflow验证我们所 ...

  6. HDU多校1003-Divide the Stones(构造)

    Problem Description There are n stones numbered from 1 to n.The weight of the i-th stone is i kilogr ...

  7. Idiomatic Phrases Game(最短路+注意坑点)

    Tom is playing a game called Idiomatic Phrases Game. An idiom consists of several Chinese characters ...

  8. Educational Codeforces Round 68 (Rated for Div. 2)-D. 1-2-K Game

    output standard output Alice and Bob play a game. There is a paper strip which is divided into n + 1 ...

  9. HashMap源码解析、jdk7和8之后的区别、相关问题分析(多线程扩容带来的死循环)

    一.概览 HashMap<String, Integer> map = new HashMap<>(); 这个语句执行起来,在 jdk1.8 之前,会创建一个长度是 16 的 ...

  10. Activiti7 网关(排他网关)

    什么是排他网关? 排他网关(也叫异或(XOR)网关,或叫基于数据的排他网关),用于在流程中实现决策,当流程执行到这个网关,所有分支都会判断条件是否为true,如果为true则执行该分支 注意:排他网关 ...