原创作品 转载请注明出http://blog.csdn.net/always2015/article/details/49447469
一、循环
1、while 循环
标准 while 条件循环语句的语法类似 if. 再说一次, 要使用缩进来分隔每个子代码块。
语句 while_suite 会被连续不断的循环执行, 直到表达式的值变成 0 或 False; 接着Python 会执行下一句代码。 类似 if 语句, Python 的 while 语句中的条件表达式也不需要用括号括起来。
while expression:
while_suite
例如:
>>> i=0
>>> while i<10:
... print i
... i=i+1
...
结果如下:
2、for 循环和 range()内建函数
for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次
for 元素 in 序列:
statement
一个示例代码如下,他是用来展示一个列表的所有元素:
>>> a=[1,2,4,6]
>>> for i in a:
... print i
...
运行结果如下:
对字符串来说, 很容易迭代每一个字符,方法如上。
在上述循环中也可以使用continue,break来中断循环。
- continue 在循环的某一次执行中,如果遇到continue, 那么跳过这一次执行,进行下一次的操作
- break 停止执行整个循环
range()函数经常用于字符串索引。 在这里我们要显示每一个元素及其索引值。
>>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]
二、函数
类似其它的语言, Python 中的函数使用小括号( () )调用。函数在调用之前必须先定义。如果函数中没有 return 语句, 就会自动返回 None 对象。Python 是通过引用调用的。 这意味着函数内对参数的改变会影响到原始对象。不过事实上只有可变对象会受此影响, 对不可变对象来说, 它的行为类似按值调用。
函数定义格式如下:
def 函数名(参数):
函数体
一个小程序如下所示:
>>> def add(a,b):
... sum=a+b
... return sum
...
>>> add(2,3)
5
>>>
上述代码实现简单的两个数之和,def为定义函数关键字,add为函数名,a,b为两个参数。注意在写函数过程中的冒号和缩进。return可以返回多个值,以逗号分隔。相当于返回一个tuple(定值表)。
下面我们在来看一个有关python函数以及参数传递的例子,下面是两个比较的代码:
>>> a=1
>>> def change_int(a):
... a=a+1
... return a
...
>>> print change_int(a) #注意观察结果
>>> print a #注意观察结果
>>>
>>> b=[1,2,3]
>>> def change_list(b):
... b[0]=b[0]+1
... return b
...
>>> print change_list(b) #注意观察结果
>>> print b #注意观察结果
上面运行结果如下:
在函数change_int(),我们将一个整数变量传递给函数,函数对它进行操作,但原整数变量a不发生变化。
在函数change_list(),我们将一个表传递给函数,函数进行操作,原来的表b发生变化。
对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。(我们称此为值传递)
但是对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。 (我们称此为指针传递)。
三、python面向对象
相信大家对面向对象——类 再熟悉不过了,在python中类定义如下:
class Bird(object):
have_feather = True
way_of_reproduction = 'egg'
我们定义了一个类别(class),就是鸟(Bird)。object是Bird类的父类。也可以理解为object是所有类的父类。在隶属于这个类比的语句块中,我们定义了两个变量,一个是有羽毛(have_feather),一个是生殖方式(way_of_reproduction),这两个变量对应我们刚才说的属性(attribute)。
当然上面只是一个简单的类,只包含属性,但是我们一般用到的还包括方法,对于python方法的定义有些不同于其他语言的类方法的定义,示例代码如下:
class Bird(object):
have_feather = True
way_of_reproduction = 'egg'
def move(self, dx, dy):
position = [0,0]
position[0] = position[0] + dx
position[1] = position[1] + dy
return position
summer = Bird()
print 'after move:',summer.move(5,8)
我们重新定义了鸟这个类别。鸟新增一个方法属性,就是表示移动的方法move。
在他的方法中,它的参数中有一个self,它是为了方便我们引用对象自身。方法的第一个参数必须是self。另外两个参数,dx, dy表示在x、y两个方向移动的距离。move方法会最终返回运算过的position
1、init方法
init() 是一个特殊方法(special method)。Python有一些特殊方法。Python会特殊的对待它们。特殊方法的特点是名字前后有两个下划线。
如果你在类中定义了init() 这个方法,创建对象时,Python会自动调用这个方法。这个过程也叫初始化,他相当于类的构造函数。
>>>class happyBird(Bird):
def __init__(self,more_words):
print 'We are happy birds.',more_words
>>>summer = happyBird('Happy,Happy!')
最后运行,在终端上打印输出:
We are happy birds.Happy,Happy!
更多内容,请关注下一篇http://blog.csdn.net/always2015/article/details/49449699