Python精简入门学习(六)

Python精简入门学习之函数

-函数的定义:

一系列python语句的组合 可以在程序中运行一次或者多次 一般是完成具体的独立的功能。
为什么要使用函数:
    代码的复用最大化以及最小化冗余代码 整体代码结构清晰 问题局部化。
语法结构:
    def 函数名():
        函数体[一些列的python语句 表示独立的功能]
函数的调用:
    本质上就是去执行函数定义里面的代码块 在调用函数之前 必须先定义。

-函数入门

在我们一开始的学习中要打印很多相同的数据的话,就会比较麻烦,所以我们有了函数方法。

print('张三')
print('身高')
print('体重')

这时我们要打印相同的内容,是直接直接复制吗?

print('张三')
print('身高')
print('体重')
print('张三')
print('身高')
print('体重')

此时代码完成了我们的需求,如果只是一两次还行,但是如果我们需要使用很多次的时候呢?这时我们就会使用函数方法。
```

**-针对上述代码场景 就需要进一步的去优化代码[方案:封装函数]**

```
def printInfo():
    print('小明')
    print('身高')
    print('体重')
    pass
# 函数的调用
printInfo() # 调用
printInfo() # 重复调用

进一步的去完善这样的需求[输出不同人的信息] 方案:通过传入参数来解决

函数的定义

def 函数名(参数列表): 0-n 个

def printInfo(name,height,weight,hobby,pro):
# 函数代码块
print('%s的身高是%f'%(name,height))
print('%s的体重是%f'%(name,weight))
print('%s的爱好是%s'%(name,hobby))
print('%s的专业是%s'%(name,pro))
pass

调用带参数的信息

printInfo('Tony',163,120,'唱歌','计算机应用')

**-函数的参数**

参数的分类:
必选参数、默认参数[缺省参数]、可选参数、关键字参数。
参数:其实就是函数为了实现某项特定的功能 进而为了得到实现功能所需要的数据。
为了得到外部数据的。

**-必选参数**

def sum(a,b): # 形式参数:只是意义上的一种参数 在定义的时候不占用内存地址 占坑用
sum = a + b
print(sum)
pass

调用函数 在调用的时候必选参数 是必须要赋值的

sum(10,11) # 实际参数:实参 实实在在的参数 是实际占用内存地址的 填坑用

**-默认参数**

def sum1(a,b=40,c=90):
print('默认参数使用=%d'%(a+b))
pass

参数的调用

sum1(10) # 在调用的时候如果未赋值 就会用定义函数时给定的默认值
sum1(2,56)

**-可变参数 (当参数的个数不去欸的那个的时候使用 比较灵活)**

def gitee(*args): # 可变长的参数
'''
计算累加和
:param args:
:return:
'''
# print(args)
result = 0
for item in args:
result += item
pass
print('result=%d'%result)
pass
gitee(1)
gitee(1,2)
gitee(1,2,3)
gitee(1,2,3,4)
gitee(1,2,3,4,5)

**-关键字参数**

用 ** 来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串。

def keyFunc(**kwargs):
    print(kwargs)
    pass
# 调用
dictA = {'name':'leo','age':'35'}
keyFunc(**dictA)
keyFunc(name='peter',age = 26,)
keyFunc()

def complexFunc(args,*kwargs):
print(args)
print(kwargs)
pass
complexFunc(1,2,3,4,name='建党')
complexFunc(age=100)

def TestMup(**kwargs,*args): # 不符合要求的
    '''
    可选参数必须放到关键字可选参数之前
    可选参数:接受的数据是一个元组类型
    关键字可选参数:接受的数据是一个字段类型
    :param kwargs:
    :param args:
    :return:
    '''
    pass
```

**-函数返回值**

```
概念: 
    函数执行完以后会返回一个队形 如果在函数的内部有return 就可以返回实际的值 否则返回None。
类型:
     可以返回任意类型 返回值类型应该取决于return后面的类型。
用途:
    给调用方返回数据。
    在一个函数内可以出现多个return值 但是肯定只能返回一个return。
    如果在一个函数体内 执行了return 意味着函数就执行完成退出了 return后面的代码语句不会执行。

def Sum(a,b):
sum = a+b
return sum # 将计算的结果返回
pass
rs = Sum(11,89) # 将返回值赋值给其他变量
print(rs) # 函数的返回值返回到调用的地方

def calComputer(num):
    li = [] # 空列表
    result = 0  # 定义一个变量初始值为0
    i = 1       # 定义一个变量初始值为1
    while i <= num: # while循环 判断i是否小于等于num 如果为真就执行循环体
        result += 1     # result = resule+1
        i += 1          # i = i + 1
        pass
    li.append(result)   # 将result的值添加到li列表中
    return li           # 返回 li列表
    pass
# 调用函数
value =calComputer(10)  # 将函数方法结果赋值给value
print(type(value))      # 打印数据类型
print(value)            # 打印

def returnTuple():
'''
返回字典类型数据
返回元组类型数据
:return:
'''
return {'name':'测试'}
# return 1,2,3
pass
A = returnTuple()
print(type(A))
print(A)

**-函数的嵌套调用**

函数的分类:
根据函数的返回值和函数的参数。
有参数无返回值的。
有参数有返回值的。
无参数有返回值的。
无参数无返回值的。

``````
def fun1():
print('--------------1 strat------------------')
print('--------------process------------------')
print('--------------1 end------------------')
pass
def fun2():
print('--------------2 start------------------')
fun1() # 调用第一个函数
print('--------------2 end------------------')
pass
fun2() # 调用函数2 执行顺序 fun2()->2 start->fun1()->1 strat->process->1 end->2 end

```
个人整理好了java和python的资料可免费领取

1.JAVA资源分享:大厂面试解析+架构笔记+进阶学习PDF+精选视频资源
2.Python资源分享:python爬虫+数据分析+办公自动化+全栈开发+人工智能+面试真题分享+精选视频

全部评论

相关推荐

今天 11:05
门头沟学院 运营
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
昨天 11:55
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务