条件判断
- if语句
与c语言类似,需要在条件后加冒号:
具有相同缩进的代码被视为代码块,如果if语句判断为true就会执行这个代码块
score = 75
if score>=60:
print 'passed'
print 'ok!'
- if…else…
if age >= 18:
print 'adult'
else:
print 'teenager'
- if…elif…else
要避免嵌套结构的 if … else …,我们可以用 if … 多个elif … else … 的结构,一次写完所有的规则。elif 意思就是 else if。
if age >= 18:
print 'adult'
elif age >= 6:
print 'teenager'
elif age >= 3:
print 'kid'
else:
print 'baby'
相当于
if age >= 18:
print 'adult'
else:
if age >= 6:
print 'teenager'
else:
if age >= 3:
print 'kid'
else:
print 'baby'
使用elif代替else if使得结构更加清晰。
循环
for循环
Python的 for 循环可以依次把list或tuple的每个元素迭代出来
例:
L = ['Adam', 'Lisa', 'Bart']
for name in L:
print name
name 这个变量是在 for 循环中定义的,意思是,依次取出list中的每一个元素,并把元素赋值给 name,然后执行for循环体(就是缩进的代码块)。
while循环
while 循环不会迭代 list 或 tuple 的元素,而是根据表达式判断循环是否结束
N = 10
x = 0
while x < N:
print x
x = x + 1
- break退出循环
例:计算1至100的整数和
sum = 0
x = 1
while True:
sum = sum + x
x = x + 1
if x > 100:
break
print sum
- continue继续循环
例:计算1-100奇数和
sum = 0
x = 0
while True:
x = x + 1
if x > 100:
break
if x%2==0:
continue
sum=sum+x
print sum
多重循环
循环内部,还可以嵌套循环,例:
for x in ['A', 'B', 'C']:
for y in ['1', '2', '3']:
print x + y
函数
- 编写函数
在Python中,定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用 return 语句返回。
如果没有return语句,函数执行完毕后也会返回结果,只是结果为 None。
例:编写一个求绝对值的函数
def my_abs(x):
if x >= 0:
return x
else:
return -x
- 返回多值的函数
例:
import math
def move(x, y, step, angle):
nx = x + step * math.cos(angle)
ny = y - step * math.sin(angle)
return nx, ny
x,y= move(100, 100, 60, math.pi / 6)
print x,y
(引用了math包中的sin和cos函数)
但其实这只是一种假象,Python函数返回的仍然是单一值,返回值是一个tuple,
将最后两行代码改写成
r = move(100, 100, 60, math.pi / 6)
print r
输出结果为:
所以,Python的函数返回多值其实就是返回一个tuple,但写起来更方便。
- 定义默认参数
定义函数的时候,可以有默认参数。
例:定义一个计算 x 的n次方的函数:
def power(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
power(5,2)
如果计算x的平方的次数最多,可以将n的默认值设为2,这样一来,计算平方就不需要传入两个参数了:
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
power(5)
由于函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面
- 可变参数
如果想让一个函数能接受任意个参数,我们就可以定义一个可变参数,可变参数的名字前面有个 * 号,我们可以传入0个、1个或多个参数给可变参数。
Python解释器会把传入的一组参数组装成一个tuple传递给可变参数,因此,在函数内部,直接把变量 args 看成一个 tuple 即可。
def fn(*args):
print args
fn()
fn('a')
fn('a','b','c')