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行,这样看来我们的程序如果频繁利用某些代码的话,那么会是我们开发的东西越来越臃肿.那么好的方法有没有呢,那就是函 ...
随机推荐
- python语音提示
#coding:utf8 import win32com.client speaker = win32com.client.Dispatch("SAPI.SpVoice") whi ...
- Thiago2(TPO AI.ROSTO):集成式AI换脸软件(Autodesk Flame)
如标题一样,Thiago2 是一款集成式AI换脸软件(TPO AI.ROSTO),需要与Autodesk Flame结合使用,从demo来看完成度还是很高的,算是一种完全GUI版的DeepFaceLa ...
- u-boot v2018.01 启动流程分析
https://blog.csdn.net/weixin_39655765/article/details/80058644#jump1 make smdkc100_defconfig 以被默 ...
- shell报错:-bash: [: ==: 期待一元表达式 解决方法 ([: ==: unary operator expected)
shell报错:-bash: [: ==: 期待一元表达式 解决方法 ([: ==: unary operator expected) blogdaren 2015-02-26 抢沙发 14916人 ...
- c和java中各种数据类型所占字节
c java char 1 2 short 2 int 4 long 4 8 float 4 double 8
- hdu 1724 : Ellipse 【Simpson积分】
题目链接 题意:给出椭圆方程中的a和b,再给出l.r,求l到r的积分的二倍. 输出时要求精度控制为保留到小数点后3位,如下代码中,eps设为1e-9 1e-8时均TLE,1e-4可以AC,1e-3会W ...
- J2EE知识总结——面试、笔试
9.2 jdk 1.8的新特性(核心是Lambda 表达式) 参考链接:http://www.bubuko.com/infodetail-690646.html (1)接口的默认方法 (给接口添加一个 ...
- 17.树的子结构(python)
题目描述 输入两棵二叉树A,B,判断B是不是A的子结构.(ps:我们约定空树不是任意一个树的子结构) class Solution: def HasSubtree(self, pRoot1, pRoo ...
- 设计模式来替代if-else
前言# 物流行业中,通常会涉及到EDI报文(XML格式文件)传输和回执接收,每发送一份EDI报文,后续都会收到与之关联的回执(标识该数据在第三方系统中的流转状态).这里枚举几种回执类型:MT1101. ...
- AQS源码分析笔记
经过昨晚的培训.对AQS源码的理解有所加强,现在写个小笔记记录一下 同样,还是先写个测试代码,debug走一遍流程, 然后再总结一番即可. 测试代码 import java.util.concurre ...