Python基础知识(2)——函数

Python函数

全球变量 < 局部变量

传参方法:

  1. 位置传参 和 关键字传参(常用关键字传参)

函数里定义参数默认值需放在最后

错误的

Def func_name(arg=100,arg1,arg2,arg,3):

正确的

Def func_name(arg1,arg2,arg,3,arg=100):

可变位置函数(所谓的可变是指传参数量可变)Def func_name(*arg):    打包-->元组可变关键字函数    Dfe func_name(**kwarg):    打包-->字典

可变位置传参:  解包-->func_name(*li)

#!/usr/bin/env python

def func_name(*args):

print args

func2_name(args)

li.append(5)

def func2_name(b):

global li        ###若不加global则会报错

for i in range(len(li)):

print b[i]

li = [1,2,3,4]

li = [1,2,3,4,5,6,7,8,9]

func_name(*li)           ###解包,若不加*则函数打印出来的a为一个元素,元素为列表

print li

可变关键字传参:

1.

#!/usr/bin/env python

def func_name(**kwargs):

For k,v in kwargs.items():
                            print k,v

d = {‘name‘:‘nick‘,‘age‘:20,‘sex‘:‘male‘}

func_name(**d)          ###解包,将一个字典解包到函数里,d = kwargs

2.

#!/usr/bin/env python

def func_name(**kwargs):

name = kwargs[‘name‘]

sex = kwargs[‘sex‘]

age = None

print name

print sex

if kwargs.has_key(‘age‘):

age = kwargs[‘age‘]

print age

func_name(name=‘tom‘,sex=‘male‘,age=20)

混合函数:可变参数应放在不可变参数后面

错误的

def func_name(*arg,x,y):

print x,y

print arg

有副作用的函数指的是带print的函数,所以函数中尽量不出现print语句

return语句

def func_name(x,y):

if x>y:

return x-y

else:

return y-x

a = func_name(1832/32.0,77)   ###此处需要将函数的返回值赋给a,否则执行不会返回数值

print a

若return返回两个值则需要两个变量来接,若只有一个变量则return返回值会打包成元组,如:

def func_name(x,y):

if x>y:

return x-y,x

else:

return y-x,y

若a = func_name(88,77),则a = (11,88)

若a,b = func_name(88,77),则a = 11,b = 88

递归函数:函数体内直接或间接调用自身

两个点:1、最深1000层 2、有退出条件(e.g. return)

#!/usr/bin/env python

def func_name(n):

if n <= 1:

return n

return func_name(n-1)*n

a = func_name(10)

print a

def func_name1(n):

ret = 1

for i in range(1,n+1):

ret = ret * i

return ret

b = func_name1(10)

print b

两个函数都是求阶乘,但是for循环比递归函数好

a = func_name 和 a = func_name()是不一样的,前者a是函数,后者是a是函数输出的值

#!/usr/bin/env python

def func_name(f):

print ‘this is func1‘

f(6,25)                ###在哪调用在哪里传参!!!

def func2_name(x,y):

print ‘this in func2‘

print x+2*y

func_name(func2_name)

高阶函数:

过滤函数filter(函数,列表)

#!/usr/bin/env python

li = [5,7,32,72,6,235,6,2532,632,1]

def func_name(f,l):

li = []

for i in l:

if f(i):

li.append(i)

return li

def func_name1(n):

return (n+1)%2==0

a = func_name(func_name1,li)

print a

分布过程map(函数,列表)

#!/usr/bin/env python

li = [5,7,32,72,6,235,6,2532,632,1]

def func_name2(f,l):

li2 = []

for i in l:

li2.append(f(i))

return li2

def func_name3(n):

return n*2+1

b = func_name2(func_name3,li)

print b

总结过程reduce(函数,列表)

#!/usr/bin/env python

def func_name(x,y):  
        return x+y  
sum=reduce(func_name,(1,2,3,4,5,6,7))  
        print sum

另外可以使用lambda表达式

sum=reduce(lambda x,y:x+y,(1,2,3,4,5,6,7))  
        print sum

时间: 2024-10-26 15:11:20

Python基础知识(2)——函数的相关文章

Python基础知识之函数、模块

1.Python模块. Python一个.py后缀的文件,称为模块.Python模块可以包含变量.函数.类,同时类中又可以定义变量和函数. 2.Python模块导入. (1) Python模块全部导入方式:from 模块名 import * (2) Python模块按需导入方式:from 模块名 import 函数名/类名 3.函数.常用函数如下. str(o):将数字转化为字符串函数, int(o):将字符串转化为数字函数. format():字符串格式化函数. replace:字符串替换函数

深入理解python(四)python基础知识之函数

函数部分 函数部分大概想分成两个部分来讲,第一部分是关于对函数参数的介绍,第二部分是局部变量全局变量和内置变量也就是变量作用域的LGB原则 函数的参数 1.关于形参和实参的问题 第一点要注意的是python中形参和实参的问题. 以不可变对象为参数,不会修改不可变对象的值(形参和实参的原因) 但对于可变对象(例如列表字典等),会在原地修改对象的值 例: >>> def immutableob(a):#在函数中修改不可变对象的值 ... a+=1 >>> b=1 >&

python基础知识(函数2)

返回值 return return[value]  多个值用,逗号分开,没有返回值,会返回none值,函数不给指定返回值也会返回none值 def functionname(p1,p2,p3): return value1,value2.... result = functionname(value1,value2,value3) 变量的作用域是指代码能够访问该变量的区域,如果超出该区域,在访问时就会出现错误. 局部变量 在函数内部定义只在函数内部有效. 全局变量 在函数体内和函数体外都可以使用

python 基础知识(一)

                                       python 基础知识(一) 一.python发展介绍 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.之所以选中Python(大蟒蛇的意思)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者.Python是从ABC发展起来,主要受到了Modula-3(另一种相当

Python基础知识两部曲:二

如果没有看基础部分第一章,请前往Python基础知识两部曲:一 8.函数 1.定义函数: 使用关键字def来告诉python你要定义一个函数 接着指出函数名:如下面函数名是--greet_user ()是必须带上的,这里可以可以传递一些参数,也可以不传 以:结尾,且与后面所有的缩进构成了函数体 调用函数直接写上函数名,如果有参数记得带上参数 1. 无参数的函数: def greet_user(): """显示简单的函数体""" print(&qu

Python基础知识梳理 - 第02部分

本文是Python基础知识的第二篇, 主要是对内置对象类型的介绍, 涉及的类型如下表. 数字类型 在Python中, 数字并不是一个真正的对象类型, 而是一组类似类型的分类, 如整数和浮点数, 复数等. Python还提供了若干处理数字对象的工具, 如内置数学函数pow, abs等, 标准库math, random等. 看下数字的简单使用. In [15]: 123 + 234 Out[15]: 357 In [16]: 1.5 * 4 Out[16]: 6.0 In [32]: pow(2,

Python基础知识目录

<table><tr><td bgcolor=PowderBlue><font face="" color=green size=6>Python基础知识目录</font></td></tr></table> <table><tr><td bgcolor=pink><font face="微软雅黑" size = 4 color

python基础知识部分练习大全

python基础知识部分练习大全   1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行有 #!/usr/bin/env python3 指定执行语言 2.简述位.字节的关系 答:一个字节(byte)=8位(bit)  位为最小的单位 3.简述 ascii.unicode.utf-8.gbk 的关系 ascii:只能表示256个符号 unicode:万国码,各国都有 需要有2位来表示 utf-8

python基础知识的学习和理解

参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base python基础知识笔记 Flask aiohttp的学习和理解 assert() asyncio的学习和理解 continue_break学习和理解 cprofile代码效率分析 datatime dict字典学习与理解 django_project eval() filter() gevent协程的学习和理解 http服

python基础知识 01 python模块

Python基础知识 (1)python模块(2)如何声明python变量(3)进制转换(4)格式化数字(5)单行注释和多行注释(6)单引号和双引号字符串(7)拼接字符串(8)长字符串 第一课:python模块 python模块 = 封装了API的library 我们先不讲如何定义模块 ,我们先讲如何引用模块 模块分为2类 1.python自身提供的模块 2.自定义模块 //这两种方法呢,我们引用的方式是一样的 引用模块的关键字为import 这个和Java的引用方式是一样的,但是 有很大的区别