python入门教程:语句和语法
注释(#):
python中的注释是以#开头的,不像c++中有/**/之类的多行注释。
继续():表示继续上一行,通常情况下,一行表示一个语句,一行过长的语句可以使用进行分解
语句块(:):在c#/php/javascript/c++中,对于复合语句是用{}来标识,而在python中,是用:配合缩进来实现语句块,如:
if a>0: #todo else: #todo
所有的复合语句(if/for/while/)或类定义、函数定义都要用:配合缩进实现。python中的缩进不光是一种代码风格,更是一种代码标准,不同的缩进层次代表不同的语句体。
一行多条语句(;): 我们可以在一行中书写多条语句,每一条语句用;分开,这是python允许的,但从代码可读性上考虑,尽量避免这种写法。
如:
import sys;x=y=1;
与其它语言一样,python的赋值操作符同样是用=号表示,python可以支持多元赋值
x=1 m=n=2 a,b,c,d=1,2,python,[1,2,3] #很有趣的多元赋值 x=y=x+1 print x print m,n print a,b,c,d print x,y #output 2 2 2 1 2 python [1, 2, 3] 2 2
要注意的是:python不支持大多数语言所支持的自增(++)自减(–)运算符,也就是a++或a–在python中是错误的,只能a=a+1或a=a-1。
在python中,代码重用是通过“模块”来实现的,类似于c#中的程序集或c++中的头文件,模块是以模块名+.py组成,但要注意,模块名最好不要与系统模块同名,如定义一个xml.py就不是一个好主意。
引入一个模块用import关键字,对应的在c#中就是using,java中是import,php中是include,正确引入以后,就可以使用该模块中的方法或变量了(调用的方法可能会有所不同,会在后面说明)。
输入和输出:
输出用print语句,输入用raw_input,raw_input用来接收用户输入,接收到的数据均以字符串的形式表示。具体语法可以通过dir(’raw_input’)查看。
终止程序运行,可用sys模块的exit()方法。
一个py程序都会有一个主方法,该方法通常会命名为main(),但这不是绝对的,如何运行我当前的.py文件?
只需判断__name__这个超级变量的值即可,如果是直接运行.py文件,则__name__的值就是__main__,否则就是该.py文件的文件名。
m.py(m模块)
#coding:utf-8 import sys import os print __name__ if __name__==__main__: print this is+__name__
如果直接运行m.py文件,则输出:
__main__
this is__main__
请按任意键继续. . .
2.py
#coding:utf-8 import m if __name__==__main__: pass
此时在2.py中引用m模块,可以看到m模块中的__name__变量值为模块名m
m
请按任意键继续. . .
pass关键字表示什么也不做,在上面的代码中是不能省略的,这是语法的要求,虽然在c#中可以if(a){},但python必须用pass关键字填充。
切片操作符[start:stop:step],在dir(str)时,我们会发现没有熟悉的subString方法
[__add__, __class__, __contains__, __delattr__, __doc__, __eq__, __ ge__, __getattribute__, __getitem__, __getnewargs__, __getslice__, __g t__, __hash__, __init__, __le__, __len__, __lt__, __mod__, __mul__ , __ne__, __new__, __reduce__, __reduce_ex__, __repr__, __rmod__, __rmul__, __setattr__, __str__, capitalize, center, count, decode, encode, endswith, expandtabs, find, index, isalnum, isalpha, isdi git, islower, isspace, istitle, isupper, join, ljust, lower, lst rip, partition, replace, rfind, rindex, rjust, rpartition, rsplit , rstrip, split, splitlines, startswith, strip, swapcase, title, translate, upper, zfill]
那我们如何获取指定的字符串的一部分?此时,切片操作符就派上用场了。
a=abcdefg print a[0:3] #abc print a[:3] #abc print a[0::2] #aceg print a[::-1] #gfedcba print a[2:-3] #cd
切片操作符同样适用于列表与元组,功能一样。