Python_2

循环

1、for循环

1
2
for 元素 in 序列:
statement

eg:

1
2
for a in [3, 4.4, 'life']:
print a

Python函数range():新建一个表,元素都是整数,从0开始,下一个元素比前一个大1, 直到函数中所写的上限 (不包括该上限本身)。

1
2
3
idx = range(5)
print idx
#idx是[0,1,2,3,4]

eg:

1
2
for a in range(10):
print a**2

2、while循环

1
2
3
4
i = 0
while i < 10:
print i
i = i + 1

3、中断循环

  • continue 在循环的某一次执行中,遇到continue,则跳过这一次执行,进入下一次;

  • break 停止执行整个循环

eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
for i in range(10):
if i == 2:
continue
print i
#当循环执行到 i = 2 的时候,if 条件成立,触发continue, 跳过本次执行(不执行print),继续进行下一次执行(i = 3)。
```
eg:
```Python
for i in range(10)
if i ==2:
break
print i
#当循环执行到i = 2的时候,if条件成立,触发break, 整个循环停止。

函数

1、定义

1
2
3
def square_sum(a,b):
c = a**2 + b**2
return c

2、函数调用和参数传递

eg:

1
2
3
4
5
6
7
8
a = 1
def change_integer(a):
a = a + 1
return a
print change_integer(a) #a = 2
print a #a = 1。将一个整数变量传递给函数,函数对它进行操作,但原整数变量a不发生变化。

eg:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
b = [1,2,3]
def change_list(b):
b[0] = b[0] +1
return b
print change_list(b) # 改变后
print b # b = [2,2,3]。将一个表传递给函数,函数进行操作,原来的表b发生变化
```
- **值传递**:对于基本数据类型的变量,变量传递给函数后,函数会在内存中复制一个新的变量,从而不影响原来的变量。
- **指针传递**:对于表来说,表传递给函数的是一个指针,指针指向序列在内存中的位置,在函数中对表的操作将在原有内存中进行,从而影响原有变量。
## **OOP**
### **1、类**
```Python
class Bird(object):
have_feather = True
way_of_reproduction = 'egg'
summer = Bird()
print summer.way_of_reproduction

2、动作

1
2
3
4
5
6
7
8
9
10
11
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)

3、子类

1
2
3
4
5
6
7
8
9
10
11
class Chicken(Bird): #Chicken继承自Bird
way_of_move = 'walk'
possible_in_KFC = True
class Oriole(Bird):
way_of_move = 'fly'
possible_in_KFC = False
summer = Chicken()
print summer.have_feather
print summer.move(5,8)

4、调用类的其他信息

在定义方法时,必须有self这一参数。
这个参数表示某个对象。对象拥有类的所有性质(self相当于java中的this),那么我们可以通过self,调用类属性。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class Human(object):
laugh = 'hahahaha'
def show_laugh(self):
print self.laugh #调用laugh属性
def laugh_100th(self):
for i in range(100):
self.show_laugh #在方法laugh_100th()中调用show_laugh()
li_lei = Human()
li_lei.laugh_100th()
```
### **5、_init_()方法**
如果你在类中定义了__init__() 这个方法,创建对象时,Python会**自动调用**这个方法。这个过程也叫**初始化**。
```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!

6、对象的性质

1
2
3
4
5
6
7
8
9
class Human(object):
def _init_(self, input_gender):
self.gender = input_gender
def printGender(self):
print self.gender
li_lei = Human('male') #初始化,li_lei拥有了对象性质gender。gender不是一个类属性。
print li_lei.gender
li_lei.printGender()