由于在LINUX上编写自动编译工具可能会用到makefile或者是oe中的bitbake,所以利用闲暇时间看了看菜鸟教程中的python的写法,果然python的语法有些地方还是比较奇特的,有的逻辑块也有自己的特色,很有意思,所以在此总结一下python中的基础语法,同时也算是自己复习下python的基础吧,记录下有些不太明白的地方
首先python是和shell一样,是一个脚本语言,也支持交互式的编程。在win7上安装python的安装包,然后把安装python的路径设置为环境变量,就可以在dos里面开始写代码了,首先上一张python中用到的关键字表:
1.python的代码块不用{}包含,而是用缩进来区分,同一个代码块行首的缩进要要一样,例如
if True:
print "true"
else:
print "false"
多行语句也可以用反斜杠 \来连接,这个其他语言是一致的。python中的字符串可以用单引号,双引号,三引号来表示,‘ ’ ,“ ” ,‘’‘ ’‘’,单引号和双引号貌似没有什么区别,三引号里面可以定义特殊字符而不用转意,也可以在三引号里面定义多行字符串。python中的注释和shell脚本是一致的,都是#。一行中有多个表达式,用,隔开,如果只用一个表达式,什么也不用加。if while def 这种代码组行首以关键字开始,并以:结束,例如 if 1 == a:
2.python中的变量定义的时候不需要指定类型,也可以多个变量赋值 ,例如 a,b,c = 1,2,"h" 这样python会把a,b,c当做一个匿名元组,也可以单独操作a,b,c变量。python支持5中数据类型,number,string list tuple dictionary。number里面有int long float 复数。变量在被赋值的时候创建内存,删除变量引用可以用del 语句。
python的字符串功能很强大,python中没有单个字符的概念,一个字符也是被认为字符串。如果你定义了一个字符串,例如 str = 'hello' 可以直接提取里面的字符例如 str[1]就是e, 前三个就是str[0:3]或者str[:3] ,python字符串中有一个特别的地方就是你可以从最后一位向前引用其中的字符,而不用它的长度-1这样的索引号。就是如果从右向左读取它的字符,可以用-1,-2....这样的索引号来引用。
字符串是可以利用+来直接拼接,或是利用*赋值 例如str *2 就是hellohello
3.python中的列表用中括号[]定义,每个元素用逗号隔开,其中每个元素的类型可以不同,例如list=[1,"hello"]它的引用和在字符串中引用字符方法是一样的。元组使用()来定义的,元组和list的一个区别就是元组定义后是不能被修改的。字典使用{}来定义的,字典其实就是键值对,用法和list和元组都是一样的,不过,字典中的key值是不能重复的,而且key值和value也没有类型的限制。
python中的运算符和其他语言的大体一致,有两个不同的就是幂运算和整除运算,一个是**,一个是//。它的位运算是可以定义0101这样的二进制位移,也可以直接位移一个整数。逻辑运算符是and,or,not
python中的成员测试符有in ,not in,例如定义一个string,
str="peng"
if e in str:
print "yes"
else:
print "no"
还有一个判断运算符,判断某个变量是不是等于多少
if str is "peng":
print "y"
else:
print "n"
4.python中的if while 等。python中没有swicth,所以只能一层一层判断,if的语法是:
if 条件表达式 :
执行语句
elif 条件表达式:
执行语句
else:
执行语句
while语法是
while 条件表达式:
执行语句
python中为了保持代码结构完整提供pass语句,例如a=5,当判断a等于5时什么也不做,a不等于5是输出a的值
if 5==a:
pass
else:
print a
python中有for...else和while...else语句,这这两个都是在for或者while正常循环结束时,执行else中的代码,如果在for或者while中是利用break跳出的,else中的代码就不会被执行,例如
str = 'hello'
for a in str:
if a=='o'
break
else:
print "there is no o in str"
这句话不会打印出there is no o in str。在for中想固定循环多少次可以利用range函数,它返回给定参数的一个序列,例如rang(3) 是[0,1,2]
for( num in rang(3) ):
print num