Python学习之==>函数
一、函数是什么:
函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需要调用函数名就行。
二、函数的作用:
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学习之==>函数的更多相关文章
- python学习8—函数之高阶函数与内置函数
python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...
- python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程
python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...
- 从0开始的Python学习007函数&函数柯里化
简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...
- python学习Day10 函数的介绍(定义、组成、使用)
今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...
- Python学习之函数参数
上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...
- Python学习笔记 - 函数参数
>>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...
- Python学习笔记—函数
函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...
- Python学习之函数篇
python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...
- Python学习--05函数
Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.我们已经知道Python提供了许多内建函数,比如print().但我们 ...
- python学习:函数的学习
我们写东东的时候,往往有一些东西要频繁去复用,那么每个功能是10行代码,复用2次就是20行,这样看来我们的程序如果频繁利用某些代码的话,那么会是我们开发的东西越来越臃肿.那么好的方法有没有呢,那就是函 ...
随机推荐
- CenterNet
Objects as Points anchor-free系列的目标检测算法,只检测目标中心位置,无需采用NMS 1.主干网络 采用Hourglass Networks [1](还有resnet18 ...
- nslookup 工具的使用方法记录
查询IP地址 nslookup最简单的用法就是查询域名对应的IP地址,包括A记录和CNAME记录,如果查到的是CNAME记录还会返回别名记录的设置情况.其用法是: nslookup 域名 定查询记录类 ...
- 对OO原则的个人理解
1.单一职责原则.(Single Responsibility Principle) 注解:社会化大生产分工要细.具体每个人最好只做一件事(不要一人兼多职),这样如果这个人请假或辞职,对生产不会产生影 ...
- ActiveMQ与Spring / SpringBoot 整合(四)
1. 对 Spring 的整合 1.1 所需jar 包 <!-- activeMQ jms 的支持 --> <dependency> <groupId>org.sp ...
- 深入理解JAVA虚拟机 虚拟机性能监控和故障处理工具
jre的bin目录下的工具,都非常小.它都是tools.jar下面的代码的一层封装而已.tools.jar不是java标准,是Hotspot实现的. 名称 作用 jps JVM Process Sta ...
- AI应该享有与动物一样的权利吗?
全世界的大学都在进行人工智能(AI)的重大研究,艾伦研究所(Allen Institute)等组织以及Google和Facebook等高科技公司.可能的结果是,我们很快将拥有与小鼠或狗一样高的认知能力 ...
- 【BZOJ 3681】Arietta
传送门 题目描述 Arietta 的命运与她的妹妹不同,在她的妹妹已经走进学院的时候,她仍然留在山村中. 但是她从未停止过和恋人 Velding 的书信往来.一天,她准备去探访他. 对着窗外的阳光,临 ...
- 通过源码安装PostgresSQL
通过源码安装PostgresSQL 1.1 下载源码包环境: Centos6.8 64位 yum -y install bison flex readline-devel zlib-devel yum ...
- maven打包指定main入口插件
<!--打包插件 --><plugin> <groupId>org.apache.maven.plugins</groupId> <artifac ...
- JS中for循环嵌套
for 循环 for语句也是一种前测试循环语句,但它具有在 执行循环之前初始化变量 和 定义循环后要执行的代码的能力 for循环中专门提供了位置来放置循环的三个表达式 定义一个循环需要做实现这三步: ...