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

来源:互联网 发布:linux解压缩gz文件 编辑:程序博客网 时间:2024/05/15 04:34

 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个

















0 0
原创粉丝点击