python 入门笔记(二)

原创作品 转载请注明出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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值