Python-函数

乐高积木之函数

函数的定义

def 函数名():
 函数体
 return 返回值1,返回值2

函数的调用
函数名()
实现打印返回值: print 函数名()
总结:
定义函数时,函数不执行;
调用函数时, 函数才执行
;

有参数的函数

必选参数

# 形式参数
def add(x, y):
print x + y
# 实参, x=1, y=2
add(1 2)

默认参数

def mypow(x,y=2):
print x**y
mypow(2)

Python-函数_第1张图片

可变参数

# 形式参数
# args可以改为其他变量名;
def add(*args):
# args实质上是一个元组;
# print args
sum = 0
for i in args:
sum += i
print sum
# 实参, x=1, y=2
add(1 2 3 4 5 6 2 3 4 5 76)

Python-函数_第2张图片

关键字参数

def inuser(name, age, **kwargs):
# kwargs实质上是一个字典;
print name, name, kwargs
inuser("user1" 12 city="xi'an" birth="20180101")

Python-函数_第3张图片

返回值
函数中如果没有return时, 默认返回None;

def add(x,y):
return x+y
# return None
print add(1, 2)

Python-函数_第4张图片

返回多个值

def fun(*args):
"""
 返回最大值和最小值
 :param args: 传入多个数值
 :return: 最大值, 最小值
 """
# 实质上python只能返回一个值;
# 间接通过元组返回多个值;
return max(args), min(args)
print fun(91 2 3 12 34)

Python-函数_第5张图片

函数的作用域

global关键字必须要先声明, 再赋值;

# 全局变量
num = 1
def fun():
# global声明num为全局变量
global num
# 局部变量
num = 5
fun()
print num

Python-函数_第6张图片

若果没有声明为局部变量则不生效

Python-函数_第7张图片

高级特性
切片
迭代
是否可以for循环遍历的对象;
isinstance判断是否可迭代;

# In [4]: from collections import Iterable
# In [5]: isinstance("hello", Iterable)
# Out[5]: True
# In [6]: isinstance([1,2,3,4], Iterable)  判断列表是否可以迭代
# Out[6]: True
# In [7]: isinstance((1,2,3,4), Iterable)  判断元组是否可以迭代
# Out[7]: True
# In [8]: isinstance({'a':1}, Iterable)  判断字典是否可以迭代
# Out[8]: True
# In [9]: isinstance({1,2,3}, Iterable)  判断集合是否可以迭代
# Out[9]: True

Python-函数_第8张图片

列表生成式
生成列表的公式
需求: 生成一个列表, 返回1-100中偶数的平方;
[4, 16, 36...]

# 方法1:
li = [ ]
for i in range(2,20,2):
li.append(i**2)
print li

Python-函数_第9张图片

# 方法2:
[i**2 for i in range(2 20 2)]


变异的列表生成式

# for循环嵌套if语句
[i**2 for i in range(2,20) if i%2==0] 如果刚好整除二则平方


# for循环嵌套for循环, 两个字符串的全排列
[i+j for i in 'xyz' for j in '123']


练习:找出/etc下文件中以.conf结尾的文件;
提示:
- os.listdir("/etc")  查看跟下etc下的文件
- s.enswith(".conf") 查看.conf结尾的文件

import os
print [i for i in os listdir('/etc') if i endswith(".conf")][:5]查看前五个

Python-函数_第10张图片



你可能感兴趣的:(Python-函数)