`
liuxinglanyue
  • 浏览: 546960 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

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

切片操作符同样适用于列表与元组,功能一样。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics