##函数的定义##
函数的定义:
def 函数名():
函数体
return 返回值1,返回值2
注:其中返回值在有的函数中可以没有。
##函数的调用##
函数定义好后需要调用才能执行,调用的过程就是直接调用函数名加括号,即可执行,如下:
##有参数的函数
##必选参数##
def add(x,y): ##形式参数##
print x+y
add(1,2) ##实参调用,x=1,y=2##
##默认参数##
def add(x,y=2): ##y为默认的参数,固定的值##
print x ** y
add(4) ##调用时只需指定x的值
##可变参数##
def add(*args):
print args
add(1)
add(1,2,3,4) ##可变参数可以调用多个参数值,args其实是一个元组##
##关键字参数##
def add(**args): ##关键字参数args是一个字典类型的数据##
print args
add(hello="123") ##调用时也要按字典格式进行调用传递参数值##
##函数的返回值##
##返回值指的是函数在执行完成后返回的一个数据类型,用return语句写在函数的最后,所有的函数都有返回值,如果没有指定,则返回值默认为NONE##
#1.未指定返回值
def add(x,y):
x + y
print add(1,2)
#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变量为全局变量,与函数外的同名变量是一个变量!#
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"] ##字符串的全排列##
练习题
代码:
调试: