一、函数是什么:

  函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名就行。

二、函数的作用:

  1、简化代码

  2、提高代码的复用性

  3、代码可扩展

三、定义函数:

 def SayHello():   #函数名
print('Hello')#函数体
SayHello() #调用函数,函数不调用是不会被执行的

 四、函数的参数

位置参数:必填参数

 def calc(a,b): #形参,形式参数
res = a * b
print('%s * %s = %s'%(a,b,res))
calc(8.9,2.7) #实参,实际参数

默认值参数:非必填参数

 # 操作文件函数(读和写)
def op_file(file_name,conent=None): #conent为写的内容
f = open(file_name,'a+',encoding='utf-8')
f.seek(0)
if conent: #conent不为空代表写入文件
f.write(conent)
f.flush()
else: #conent为空时读文件
all_users = f.read() #函数里面定义的局部变量只能在函数里面用
return all_users #调用完函数之后,返回什么结果
f.close()
# 把函数返回的结果存入变量
res = op_file('a.txt')
print(res)

 非固定参数(参数组):

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个元组里面

 def syz(*args): #参数组
print(args)
username = args[0]
pwd = args[1]
age = args[2]
syz()
syz('niuniu','')
syz('niuniu','niuniu','test')
def syz2(a,*args):
print(a)
username = args[0]
pwd = args[1]
age = args[2]
syz2()
syz2('niuniu','')
syz2('niuniu','niuniu','test')

 关键字参数:

  1、非必填参数

  2、不限定参数个数

  3、把所有参数放到一个字典里面

 def syz(**kwargs):
print(kwargs)
syz()
syz(name='niuniu',age=23)
syz(name='niuniu',age=23,add='回龙观',home='河南')
def syz2(time,**kwargs):
print(kwargs)
syz2('')
syz2(name = 'niuniu',age = 23,time = '')
syz2('',name = 'niuniu',age = 23,add = '回龙观',home = '河南')

 五、全局变量

1、不安全,所有人都能改

2、全局变量会一直占用内存

 name = '牛牛'  #全局变量
def sayName():
global name #如果需要修改全局变量,需要先声明
name = '刘伟'#局部变量
print('name1:',name)
sayName()
print('name2:',name)

 六、递归函数:函数自己调用自己

  1、少用递归

  2、递归最多调用999次,效率不高

 def test():
num = int(input('please enter a number:'))
if num % 2 == 0:#判断输入的数字是不是偶数
return True #如果是偶数的话,程序就退出了,返回True
print('不是偶数请重新输入!')
return test() #如果不是偶数的话继续调用自己,输入值
print(test()) #调用函数

七、函数返回多个值

 # 定义一个函数返回多个值
def say():
num1 = 1
num2 = 2
num3 = 3
return num1,num2,num3
# 函数返回多个值会把它放到一个元组里面
print(say())
# 函数如果返回多个值,可以用多个变量来接收
res1,res2,res3 = say()
print(res1)
print(res2)
print(res3)

Python学习之==>函数的更多相关文章

  1. python学习8—函数之高阶函数与内置函数

    python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...

  2. python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程

    python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...

  3. 从0开始的Python学习007函数&函数柯里化

    简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...

  4. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  5. Python学习之函数参数

    上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...

  6. Python学习笔记 - 函数参数

    >>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...

  7. Python学习笔记—函数

    函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...

  8. Python学习之函数篇

    python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...

  9. Python学习--05函数

    Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.我们已经知道Python提供了许多内建函数,比如print().但我们 ...

  10. python学习:函数的学习

    我们写东东的时候,往往有一些东西要频繁去复用,那么每个功能是10行代码,复用2次就是20行,这样看来我们的程序如果频繁利用某些代码的话,那么会是我们开发的东西越来越臃肿.那么好的方法有没有呢,那就是函 ...

随机推荐

  1. thinkphp 静态缓存设置

    'HTML_CACHE_RULES'=> array('ActionName' => array('静态规则', '静态缓存有效期', '附加规则'),'ModuleName(小写)' = ...

  2. GDAL联合OpenCV进行图像处理

    作为一名图像处理方面的工程师,在面对大数据量的遥感影像时,往往会利用到强大的GDAL库,但是GDAL库却没有方面的算法函数进一步进行处理:同时我们看到Opencv库能提供强大的算法支持,却对大数据影像 ...

  3. VMware® Workstation 设置虚拟机目录和共享目录不要相同!

    在设置VMware的首选项是,工作区中的虚拟机的默认地址和共享虚拟机的位置目录不要设置成一样的. 否则创建的虚拟机打不开.

  4. 五、WebSocket 链接

    一.前端代码: <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml& ...

  5. 微信开发企业支付到银行卡PHP

    微信开发企业支付到银行卡 功能详解 不会的朋友可以加我QQ:344902511先发个微信支付官方链接你查看https://pay.weixin.qq.com/wiki/doc/api/tools/mc ...

  6. kong CentOS7网关安装

    1.先安装postgres数据库,yum安装.yum install postgresql96yum install postgresql96-server配置环境变量export PGDATA=/v ...

  7. Django orm self 自关联表

    自关联模型 自关联模型就是表中的某一列,关联了这个表的另外一列.最典型的自关联模型就是地区表.省市县都在一张表里面.省的pid为null,市的pid为省的pid,县的pid为市的ID. class A ...

  8. 洛谷P1105 普及- 生日

    标签:模拟,字符串,排序(快排) 这道题可以巧妙地运用结构体中记录在数组中的位置,来对sort做点手脚 题意本身就是记录一些人,他们出生日的日期,然后输出从小到大的名字.如果是同一天,则输出在输入序列 ...

  9. 参数上使用自定义注解在aop中无法获取到该参数

    https://ask.csdn.net/questions/769477 /** * 环绕增强,验证权限 * @param joinPoint 目标对象 * @param authCheck 自定义 ...

  10. vue学习-day04(路由)

    目录: 1.组件传值-父组件向子组件传值和data与props的区别    2.组件传值-子组件通过事件调用向父组件传值          3.案例:发表评论.使用ref获取DOM元素和组件引用   ...