1) python和ruby一样,不支持++,只能写 n += 1,不能写n++。
2) while语句。python的循环可以接else分支。
=================================
n = 5
while n < 10 :
~print n
~n += 1
else :
~print "循环结束"
=================================
3) for循环。 python的for循环和C系不同,更像是foreach。
=================================
for i in range(0,5):
~print i
else :
~print "循环结束"
#=> 0
1
2
3
4
循环结束
=================================
4) break语句。break可以使循环停止,但需要注意的是,如果是使用break中止的循环,那么相应的else分支将不会被执行。
5) continue语句。和别的语言的continue没有区别。(想不明白ruby为什么喜欢将continue改成next?这样和其它语言不就不一样了,要迫使用户改变语法习惯吗?)
6) 函数。 和ruby一样,python的函数是通过def关键字定义的。也可以设置参数的默认值,只是不像ruby一样可以不写(),python的函数调用一定要带()。
=================================
def sayHi(name="adang"):
~print "hello",name
sayHi() #=> hello adang
sayHi("shuai ge") #=> hello shuai ge
=================================
7) 函数内的变量作用域。 python函数内的变量无法访问函数外定义的变量,如果要访问函数外定义的变量,需要加global声明。如果函数的参数和函数外的变量名相同,刚视为两个不相关的变量。
=================================
def sayNum(n):
~print n
~n = 3
~print n
n = 1
sayNum(2)
print n
#=> 2
3
1
=================================
def sayNum():
~global n
~print n
~n = 3
~print n
n = 1
sayNum()
print n
#=> 1
3
3
=================================
8) 关键字传参。 在写js的函数时,为了让参数的数量和位置有弹性,我们会使用hash对象来进行传参。而在python里,是通过关健字传参达到类似的目的的。
=================================
def printNum(a,b=5,c=10):
~print a,b,c
printNum(1) #=>1 5 10
printNum(2,c=3) #=>2 5 3
printNum(c=4,a=5) #=>5 5 4
=================================
9) DocStrings。 在写js的时候,我们会定义一下toString方法,方便在调试的时候有内容输出。在python里,有类似的东西,但它的功能会更强,叫做DocStrings,它不仅可以为类使用,还可以为函数使用,甚至可以为help()方法所使用。调用的方式为__doc__(前后双下划线的这种风格,怎么这么像ruby呢?)。除此之外,python还有一个特殊方法,叫做__str__(self),它更接近于toString方法,在直接print obj的时候,会自动输入它的结果。
=================================
def test():
~'''Function test.
This is a function just for test.'''
~print "hello"
print test.__doc__ #=> Function test \n \n This is a function just for test.
help(test) #=> 显示help信息
=================================
DocStrings的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。
10) 引入模块。 python中引入模块是通过import关健字实现的,注意模块不需要加.py后辍。
11) 模块都有__name__属性,表明自己是否被引用,如果__name__值为“__main__”表明自己是被独立运行的,如果不是,刚表明自己是被引用的。
=================================
if __name__ == "__main__" :
~print 1
else :
~print 2
=================================