Python函数的定义和使用

枫铃3年前 (2021-09-30)Python238
def test(x):       # x代表形参
     '''
     2*x+1
     :param x:整形数字
     :return:返回计算结果
     '''
	y = 2*x+1
	return y
p = test(3)     # test()表示运行名为test函数,3代表实参,给x进行赋值
print(p)

函数的定义:

  • def: 表示函数的关键字
  • 函数名: 函数的名称, 根据函数名调用函数
  • 函数体: 函数中进行一系列的逻辑计算
  • 参数: 为函数执行完毕后, 可以给调用者返回数据

一. 为什么要用函数?

  • 减少代码量
  • 保持一致性
  • 易维

二. 函数的参数

函数有三种不同的参数:

  • 普通参数
########## 定义函数 #########
# name 叫做函数func的形式参数,简称:形参
def func(name):
	print name
  
########## 执行函数 ######### 
#  'peiqi' 叫做函数func的实际参数,简称:实参
func('peiqi')
  • 默认参数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def func(name, age = 18):
      
	print "%s:%s" %(name,age)
  
# 指定参数
func('peiqi', 19)
# 使用默认参数
func('alex')

注:默认参数需要放在参数列表最后

  • 动态参数 *args
def func(*args):
  
	print args
    
# 执行方式一
func(11,33,4,4454,5)
  
# 执行方式二
li = [11,2,2,3,3,4,54]
func(*li)
  • 动态参数 **kwargs
def func(**kwargs):
  
	print args
    
# 执行方式一
func(name='peiqi',age=18)
  
# 执行方式二
li = {'name':'peiqi', age:18, 'gender':'male'}
func(**li)

三. 函数的变量

函数的变量可分为 全局变量和局部变量

全局变量(大写)

定义:没有缩进的变量

局部变量(小写)

定义:子程序下定义的变量

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
name = 'python'                 # 这里就指全局变量

def chan_name():
    name = '帅了一比'      # 这里就指局部变量
    print('chan_name', name)

chan_name()
print(name)    

#结果
chan_name 帅了一比
python

global和nolocal

global声明是全局变量,nolocal指定上一级变量

未声明全局变量

x = 99
def func():
    x = 88
func()
print(x)     #输出99

声明全局变量

x = 99
def func()
    global x
    x = 88
func()
print(x)    #输出88

未指定上一级变量

def func():
    count = 1
    def foo():
        count = 12
    foo()
    print(count)
func()    #输出1

指定上一级变量

def func():
    count = 1
    def foo():
        nonlocal count
        count = 12
    foo()
    print(count)
func()     #输出12

四. 递归函数

ps: 用的好的都是大牛~

就是函数自己调用自己

特性:

  • 必须有一个明确的结束条件,

  • 每次进入深一层递归时,问题规模都应有所减少

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:531509025
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
def calc(n):
     print(n)
     if int(n / 2) == 0:
         return n # 当上面的条件成立后一个真值,返回到函数
     res = calc(int(n / 2))    
     print(n,res) 
     return res # 返回res的值,要将真值一层一层传递回去
 
calc(10)   

五. lamabda匿名函数

lambda用法,冒号之前的是入参,冒号之后的是表达式,返回的值,最简单的函数

print [(lambda x:x*x)(x)for x in range(11)]
#结果:[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
print (lambda x:x*x)(3)
#结果:9
g=lambda x:x*x
print g(4)
#结果:16

相关文章

Python教程:collections的deque()方法

创建双向队列 impo...

Python函数名的本质,你有了解过嘛?

函数名实质上就是函数的内...

python调用shell命令之三慷慨法

preface: 忙于近期的任务,须要用到libsvm的一些命令。如在终端执行javasvm_train train_file model_fi...

Python 基础教程:位运算的奥妙

位运算是直接对内存中的二...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。