##函数的定义##
函数的定义:
def 函数名():
函数体
return 返回值1,返回值2
注:其中返回值在有的函数中可以没有。

##函数的调用##
函数定义好后需要调用才能执行,调用的过程就是直接调用函数名加括号,即可执行,如下:


##有参数的函数
def add(x,y):
print x+y
add(1,2)

def add(x,y=2):
print x ** y
add(4)

def add(*args):
print args
add(1)
add(1,2,3,4)


def add(**args):
print args
add(hello="123")

##函数的返回值##
def add(x,y):
x + y
print add(1,2)
def add(x,y):
return x+y
print add(1,2)

def add(*args):
return max(args),min(args)
print add(1,23,56,0)

##函数的作用域
num = 1
def fun():
num = 5
fun()
print num

num =1
def fun():
global num
num = 5
fun()
print num

##数据结构的高级特性##
##判断数据结构是否可以迭代##
#1.如果一个数据结果可以在for循环中被遍历,则可以迭代
#2.用isinstance函数来判断一个数据结构能否迭代,返回一个bool值

从上图可以看出,元组,字符串,字典,列表,集合都是可迭代数据类型,而整形则不可以迭代!!!
在一些列表操作中,需要用for循环遍历列表并对每一个成员进行if语句的判断,用顺序结构写出来代码较长,此时可以用列表生成式来表示,如下:
[i ** 2 for i in range(2,10,2)]
该语句的作用相当于:
li = []
for i in range(2,10,2):
li.append(i)
print li

##变异的列表生成式##
#1.for循环与if语句的嵌套
[i**2 for i in range(1,10) if i%2 == 0]
#2.for循环与for语句的嵌套
[i+j for i in "xyz" for j in "123"] ##字符串的全排列##

练习题
代码:
调试:
