python基础之函数内容介绍

一.函数
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。

1.函数定义
def 函数名(参数)
......
函数体
......
返回值

a.使用def关键字创建函数
b.函数名,def后面紧跟着的是函数名,每个函数都需要有个函数名
c.函数参数,分无参函数和有参数函数(下面详解)
d.函数体,实现函数功能的语句组合
e.返回值,返回函数执行结果数据给函数调用者

2.函数的使用
函数在定义完后是不执行函数体的,当python解释在读到def定义的函数名时,在内存中开辟一块空间把函数放进去,函数名作为变量明指向该内存空间,函数在调用的时候才执行函数体。在执行函数体时,一旦执行到return语句,函数执行过程立即终止(即使函数体中还有未执行的语句)返回值给调用函数,如果函数体中没有return语句,默认返回None给调用函数。

3.函数的参数
函数分为无参函数和有参函数;函数在定义的时候如果有参数统一称为形式参数,调用函数时传递的参数称为实际参数

3.1 普通参数

函数定义了几个参数,在调用的时候就需要传递几个参数(形参中有默认值的除外),传多或传少了在执行的时候会报错,传递实参时默认是和形参一一对应的。

#普通参数
def send(f1,f2): #定义了2个形参
#函数体
print(f1,f2)
return True

em=input(‘请输入邮件地址:‘)
result=send(em,‘hello‘) # 需要传递2个实参
if result == True:
print(‘发送成功‘)
else:
print(‘发送失败‘)

3.2 默认参数

形参中参数有默认值的参数,如果设置了默认参数,那么默认参数必须放到参数列表的最后面;调用的时候位置参数在前,关键字参数要在后面。

#默认参数,调用的时候可以不用传递值,也可以从新传递值
def send(f1,f2,XX=‘OK‘): #位置参数要在关键字参数前面,默认参数在调用的时候可以传参也可以不传

#函数体

print(f1,f2,XX)

return True

em=input(‘请输入邮件地址:‘)

result=send(em,‘hello‘) #传递2个实参,不改变默认参数的值

re=send(em,‘hel‘,‘NO‘) #传递3个实参,改变默认参数的值

if result == True and re == True:

print(‘发送成功‘)

else:

print(‘发送失败‘)

3.3 指定参数

#指定参数

def send(f1,f2,XX=‘OK‘):

#函数体

print(f1,f2,XX)

return True

em=input(‘请输入邮件地址:‘)

re=send(f1=em,f2=‘hel‘,XX=‘NO‘) #调用的时候指定参数值,参数名要和形参里一致(顺序到不必一致)

if re == True:

print(‘发送成功‘)

else:

print(‘发送失败‘)

3.4 动态参数
3.4.1 参数前面有一个*的参数

如果在形参前加一个*那么它就是元祖,可以接收任意个实际参数(形参前面加一个*号,在调用的时候该加*的形参可以接收传递的任意个实参,而不报错);如果在调用的时候传递的实参前面也有个*,那么就是把该实参里每个元素循环取出作为元素赋值给函数的形参,如果调用的时候前面不加*就是把该元祖实参作为一个子元祖传递给形参。

def func(*args):

print args

# 执行方式一

func(11,33,4,4454,5)

# 执行方式二

li = [11,2,2,3,3,4,54]

func(*li)

3.4.2 两个*的参数

两个**的参数,是字典, 如果在形参前加两个**那么它就是字典;调用的时候需要指定k和v,那么参数调用只能以指定参数来调用或传递的实参前面也有2个*(这个实参必须是字典),那么就 是把该实参赋值给函数的形参,如:

def func(**kwargs):

print args

# 执行方式一

func(name=‘wupeiqi‘,age=18)

# 执行方式二

li = {‘name‘:‘wupeiqi‘, age:18, ‘gender‘:‘male‘}

func(**li)

3.4.3 万能参数
def fname(*args,**kwargs) #只能一个*的在前面,2个*的在后面

print(args)

print(kwargs)

fname(11,22,33,k1=‘v1‘,k2=‘v2‘)

3.5 用动态参数实现format功能
format的函数形式是: format(*args,**kwargs)

1)位置参数

fstr=‘I am is {0},my age is {1}‘ #这里的0和1代表第几个参数

print(fstr.format(‘alex‘,22))

li=(‘alex‘,33)

print(fstr.format(*li))

2)变量参数

fstr2=‘I am is {name},my age is {age}‘

print(fstr2.format(name=‘pwj‘,age=21))

ld={‘name‘:‘sindy‘,‘age‘:18}

print(fstr2.format(**ld))

4.全局变量

在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
当全局变量与局部变量同名时:
在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用。
全局变量,默认用大写变量名
对全局变量进行重新赋值,需要先global

name=‘wpj‘ #全局变量

age=22

def f1():

global age #先global,再重新赋值

age=22 #x修改全局变量,前面加global

name=‘alex‘ #这是局部变量,只在该函数里生效,优先使用自己的

print(name)

def f2():

print(name) #引用的是全局变量

f1()

f2()

5.三元运算
是if ..else ..的简写,
res= 1 if True else 2,如果if后面的条件为True那么res=1,否则res=2

6.lambda表达式(匿名函数)
匿名函数,lambda后面冒号前面跟的是参数(可以多个),冒号后面跟的是函数体(一句)隐含了return功能, 例如:f2=lambda a1,a2:a1+a2+100

7.常用内置函数的介绍
abs() #取绝对值

all(迭代对象) #一个为假,结果为假,all([11,22,33,0])结果为False

any(迭代对象) #,一个为真,结果为真,any((22,(),0)) 结果为True

bin() #把十进制转换成二进制,print(bin(5)) #结果:0b101

oct() #把十进制转换成八进制,print(oct(9)) #结果:0o11

hex() #把十进制转换成十六进制,print(hex(14)) #结果0xe

ascii()#自动执行对象的__repr__方法

callable() #判断对象是否是可调用对象

时间: 2024-10-07 05:29:26

python基础之函数内容介绍的相关文章

python基础31[常用模块介绍]

python基础31[常用模块介绍] python除了关键字(keywords)和内置的类型和函数(builtins),更多的功能是通过libraries(即modules)来提供的. 常用的libraries(modules)如下: 1)python运行时服务 * copy: copy模块提供了对复合(compound)对象(list,tuple,dict,custom class)进行浅拷贝和深拷贝的功能. * pickle: pickle模块被用来序列化python的对象到bytes流,从

Python基础07 函数

Python基础07 函数 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 函数最重要的目的是方便我们重复使用相同的一段程序. 将一些操作隶属于一个函数,以后你想实现相同的操作的时候,只用调用函数名就可以,而不需要重复敲所有的语句. 函数的定义 首先,我们要定义一个函数, 以说明这个函数的功能. def square_sum(a,b): c = a**2 + b**2 return c 这个函数的功能是求两个数的平方和. 首先

Python科学计算函数库介绍

数值计算库 NumPy为Python提供了快速的多维数组处理的能力,而SciPy则在NumPy基础上添加了众多的科学计算所需的各种工具包,有了这两个库,Python就有几乎和Matlab一样的处理数据和计算的能力了. NumPy和SciPy官方网址: http://www.scipy.org NumPy为Python带来了真正的多维数组功能,并且提供了丰富的函数库处理这些数组.它将常用的数学函数都进行数组化,使得这些数学函数能够直接对数组进行操作,将本来需要在Python级别进行的循环,放到C语

python基础——sorted()函数

python基础——sorted()函数 排序算法 排序也是在程序中经常用到的算法.无论使用冒泡排序还是快速排序,排序的核心是比较两个元素的大小.如果是数字,我们可以直接比较,但如果是字符串或者两个dict呢?直接比较数学上的大小是没有意义的,因此,比较的过程必须通过函数抽象出来. Python内置的sorted()函数就可以对list进行排序: >>> sorted([36, 5, -12, 9, -21]) [-21, -12, 5, 9, 36] 此外,sorted()函数也是一个

python基础——匿名函数及递归函数

python基础--匿名函数及递归函数 1 匿名函数语法 匿名函数lambda x: x * x实际上就是: def f(x): return x * x 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. 2 匿名函数举例 用匿名函数有个好处,因为函数没有名字,不必担心函数名冲突.此外,匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数: >>> f = lam

python基础之函数

python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这被叫做用户自定义函数. 定义一个函数 在Python中,定义一个函数要使用def语句,依次写出函数名.括号.括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回. 函数式编程和面向过程编程的区别: 函数式:将某功能代码封装到函数中,日后便无需重复编

python基础教程函数参数

python里有很多的内置函数给我们的工作带来了很多发便利,在我们实现某些功能或者优化代码的时候,可以自己定义一个函数,同时我们在定义一个类的时候也会用到函数的一些知识去构造一个方法,这里就涉及到一些关于函数的基础知识和函数传参的知识. 一.函数的相关介绍 1.函数定义:函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可. 函数特性: 减少重复代码 使程序变的可扩展 使程序变得易维护 2.函数的定义示例 定义一个函数要使用def语句,依次写出函数名.括

Python学习笔记(一)python基础与函数

1.python基础 1.1输入与输出 输出 用print加上字符串,就可以打印指定的文字或数字 >>> print 'hello, world' hello, world >>> print 300 300 >>> print 100+200 300 print语句也可以跟上多个字符串,用逗号","隔开,就可以连成一串输出: >>> print 'The quick brown fox', 'jumps over

python基础及函数1

Python的程序执行方式:Python的程序编辑窗口.Python的解释器提示符. python常量:整形.实型(浮点型).字符串型. Python数据类型:数值类型.字符串类型.布尔类型.复合数据类型 数值类型:整型(0b/0B.0o/0O.0x/0X).浮点型(e/E).复数型 字符串类型:Python标准字符.转义字符.基本字符串函数 布尔类型:true.false 复合数据类型:列表.元组.字典.集合 Python3提供的有效数字精度:17位 字符串分片: >>>str1=&q