开发者社区> 科技小能手> 正文

python - 函数

简介:
+关注继续查看

*********************函数****************************

                                                     ---乐高积木之函数


定义函数
• def关键字,依次写出函数名、括号、括号中的参数和冒号 :
• 在缩进块中编写函数体,函数的返回值用 return 语句返回。

def func():
pass
return

总结:

定义函数时,函数不执行
调用函数时,函数才执行


## 有参数的函数


***********形式参数**********
#!/usr/bin/env python
#coding:utf-8

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


Screenshot from 2018-01-08 21-24-08.png



***********默认参数**************
def mypow(x,y=2):
   print x**y

mypow(2)


Screenshot from 2018-01-08 21-29-41.png

Screenshot from 2018-01-08 21-29-49.png

*************可变参数********

def add(*args):
   sum = 0
   for i in args:
      sum += i
   print sum
add(1,2,3)


Screenshot from 2018-01-08 21-34-24.png

Screenshot from 2018-01-08 21-35-19.png

***************关键字参数************
kwarges实质是一个字典



Screenshot from 2018-01-08 21-41-13.png

参数总结
• 必选参数
•默认参数:默认参数一定要用不可变对象
•可变参数:*args 是可变参数,args 接收的是一个 tuple
•关键字参数:
**kwarges是关键字参数,kwarges 接收的是一个dict
•对于任意函数,都可以通过类似 func(*args, **kw) 的形式调用它

多种参数混合使用时,其参数顺序为:必选参数,默认参数,可变参数,关键字参数

#返回值


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

Screenshot from 2018-01-08 22-03-23.png

#实质上python只能返回一个值;
#间接通过元组返回多个值;


def fun(*args):
    """

    :param args:
    :return:
    """
    return max(args),min(args)

print fun(11,2,34,5,66)

[root@python code.6]# python canshu.py 
(66, 2)

Screenshot from 2018-01-08 22-08-54.png

[root@desktop code4]# python test.py 
(4, 1)


函数的作用域

变量的作用域
• 局部
变量:只能在函数内部使用的变量
• 全局变量:在整个程序中使用的变量
• global关键字:强制将局部变量转换为全局变量


Screenshot from 2018-01-08 22-12-23.png


Screenshot from 2018-01-08 22-12-33.png


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

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



Screenshot from 2018-01-08 22-13-14.png


高级特性

迭代
是否可以for循环遍历的对象;
isinstance判断是否可迭代;


Screenshot from 2018-01-08 22-17-03.png

列表生成式


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

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


Screenshot from 2018-01-08 22-22-30.png




方法2:

li = [i**2 for i in range(2,101,2)]
print li

Screenshot from 2018-01-08 22-24-58.png


Screenshot from 2018-01-08 22-25-24.png

变异的列表生成式

In [17]: # for 循环嵌套 if 语句
[i**2 for i in range(2,20) if i%2==0]
Out[17]: [4, 16, 36, 64, 100, 144, 196, 256, 324] 

In [20]: # for 循环嵌套 for 循环 , 两个字符串的全排列
[i+j for i in 'xyz' for j in '123']
Out[20]: ['x1', 'x2', 'x3', 'y1', 'y2', 'y3', 'z1', 'z2', 'z3']

练习:找出/etc下文件中以.conf结尾的文件;

提示:
- os.listdir("/etc")
- s.enswith(".conf")

import os
li=[i for i in os.listdir("/etc") if i.endswith(".conf")][:5] #显示前五个
print li

Screenshot from 2018-01-08 22-32-45.png

Screenshot from 2018-01-08 22-32-59.png


 本文转自 huanzi2017 51CTO博客,原文链接:http://blog.51cto.com/13362895/2058888


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python中函数参数传递方法*args, **kwargs,还有其他
本文将讨论Python的函数参数。我们将了解*args和**kwargs,/和*的都是什么,虽然这个问题是一个基本的python问题,但是在我们写代码时会经常遇到,比如timm中就大量使用了这样的参数传递方式。
21 0
python基础学习 -- 函数高级用法
python基础学习 -- 函数高级用法
22 0
python基础学习 -- 函数
python基础学习 -- 函数
18 0
Python入门教程:什么闭包函数
闭包:闭是封闭(函数内部函数),包是包含(该内部函数对外部作用域而非全局作用域的变量的引用)。闭包指的是:函数内部函数对外部作用域而非全局作用域的引用。 提示:之前我们都是通过参数将外部的值传给函数,闭包提供了另外一种思路,包起来喽,包起呦,包起来哇。
15 0
函数计算中使用Python语言编写函数的运行环境信息——环境说明
函数计算中使用Python语言编写函数的运行环境信息——环境说明自制脑图
15 0
Python def定义函数并进行序列解包源码操作解析
Python def定义函数并进行序列解包源码操作解析
14 0
Python:jpype模块调用Java函数
Python:jpype模块调用Java函数
16 0
【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制
【python】bin/dec/hex/bnr进制转换函数及fp32转十六进制
25 0
【python】python解析linux路径函数
【python】python解析linux路径函数
25 0
python(15)--函数设计
python(15)--函数设计
34 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
给运维工程师的Python实战课
立即下载
Python 脚本速查手册
立即下载
ACE 区域技术发展峰会:Flink Python Table API入门及实践
立即下载