python学习笔记(二)流程控制 函数


python学习笔记(二)


流程控制


if...else...elif

例子:
if 1>2:
print 'AAAA'
-------------------------------
if 1>2:
print 'AAAA'
else:
print 'BBBB'
--------------------------------
if 1>2:
print 'AAAA'
elif 1>0:
print 'BBBB'
else:
print 'CCCC'
----------------------------------
if 2>1:
print 'AAAA'
print 'BBBB'
输出:AAAA
BBBB
-----------------------------------
if 2<1:
print 'AAAA'
print 'BBBB'
输出:BBBB

if中缩进代表运行的范围

逻辑运算符

and / or / not

for

for x in 'abcde':
print x
输出:
a
b
c
d
e

range(start, stop[, step]) 生成序列
range(10) 产生 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
range(5,9) 产生 [5, 6, 7, 8]
range(1,10,2) 2为步进,产生 [1, 3, 5, 7, 9]
例子:
for x in range(10):
print x,'AAAA'
会输出10次x+AAAA
python中与c语言不一样循环也可以加else for x in range(5):
print x
else:
print 'end'
输出完后输出 end
for x in range(5):
print x
if x>2:
break
else:
print 'end'

但这样end不会输出
break返回,continue继续,pass占位,代码庄

便利序列及字典


便利序列 例子: a=['a','b','c','d','d']
for x in range(len(a)):
print a[x]
或者 for x in a:
print x

便利字典: a={1:'a',2:'b',3:'c',4:'d',5:'d'}
for x in a:
print x
会输出字典的key
for x in a:
print a[x]
可以输出value
for x,y in a.items():
print x,y
用items()生成键值对的序列 x就是key,y就是value

while

例子:
i=0
while i<10:
print i
i+=1

输出0到9
while也可以加else
i=0
while i<10:
print i
i+=1
else:
print 'end'
输出0~9后会输出end,同样break出来else的内容不会执行

函数


函数的定义

定义实现a+b
例子:
def add(a=1,b=2):
return a+b
print add()

输出5

可以定义默认形参
def add(a=1,b=2):
print a+b
add()
输出3

* 与 **

*表示是元组或者列表
**表示是字典

def add(a,b):
return a+b
t=(1,2)
print add(t)
这样会出错
如果改成 print add(*t) 不会出错
如果add(1,2,3,4)多写了两个参数也会出错 定义成 def add(a,b,*args): return a+b 就不会出错,args就是一个元组存放多余的参数这里args就是(3,4)
def f(name='name',age='0'):
print "name:%s, age:%s" %(name,age)
f(*('wang','18'))
f(*('18','wang'))
会输出: name:wang, age:18
name:18, age:wang


def f(name='name',age='0'):
print "name:%s, age:%s" %(name,age)
f(name='wang',age='18')
f(age=18,name='wang')
这两个f函数都会输出name:wang, age:18 而不会输出name=18, age=wang
这样就 def f(name='name',age='0'):
print "name:%s, age:%s" %(name,age)
a={'age':'18','name':'wang'}
f(**a)

可显示name:wang, age:18

def f(name='name',age='0',*args,**kwargs):
#print "name:%s, age:%s" %(name,age)
print kwargs
f(x='x',y='y')

可显示 {'y': 'y', 'x': 'x'}

lambda表达式

def add(x,y):
return x+y

g = lambda x,y:x+y # lambda表达式,等价于add

print add(1,2)
print g(1,2)

reduce

用reduce实现阶乘
def f(x,y):
return x*y


l=range(1,6)
print reduce (f,l) #reduce每次取2个

















评论关闭