函数说白了,就是把一组代码合到一起,可以实现某种功能,需要再用到这个功能的话,直接调用这个函数就行了

1.定义函数def
def my_open():#函数名,def定义函数,my_open给这个函数取的名字
print("欢迎光临")#函数体
fw.seek(0)
2.调用函数
my_open()#调用函数,函数只有调用才能执行

3.实参、形参-参数必填
#例子:读出a.txt文件中的内容,读并转换为字典
all_users={}
def read_users(file_name):#file_name是形式参数,就是一个变量
with open(file_name)as fr:
for line in fr:
up=line.strip().split(',')
s_username=up[0]
s_pwd=up[1]
all_users[s_username]=s_pwd
read_users("a.txt")#调用函数传进去的参数叫做实际参数,实参
# #关键字参数调用
def write(filename,model,ending,user,os,money,other):
print(filename)
print(model)
print(ending)
print(user)
print(os)
print(money)
print(other)
write(os='Windows',user='wubing',model='w',filename='a.txt',ending='utf-8',money=9999,other='xxxxx' )
#参数比较多的时候,使用关键字定义调用就可以不管顺序
#write('a.txt','w',money=99,os='windos')
#write(os='windos','a.txt')#会报错
 

4.位置参数-参数必填

#必填参数,位置参数,参数对应不可缺少
def hello (name,age):#2个参数
print("hello %s,age is %s"%(name,age))
hello('周杰伦',19)#调用2个参数
hello('孙燕姿')#这样会报错,少1个参数
5.默认值参数--参数非必传
def reg(name,age,sex='男'):
# #age、name必填参数,位置参数
# #sex是默认值参数,不是必传
print('hello %s,age is %s,sex is %s'%(name,age,sex)) reg('吴冰',38)#输出结果:hello 吴冰,age is 38,sex is 男
reg('吴冰',38,'未知')#输出结果:hello 吴冰,age is 38,sex is 未知
reg(age='吴冰',name=38,sex='未知')
6.不固定参数(元组)--*表示-参数非必传
# #可变参数,参数个数不固定,传进来多少显示多少,非必填
def post(*args):#*加名字,前面要加*
# #可变参数,也叫参数组,也不是必填的,它接收到的是一个元组
# #它把调用函数时穿进去的每一个参数都放到一个元组里
print(args) post('001','denglu','http://www.baiudd.com','post','a=1')
post('001','denglu')
post('001','denglu','post')
post('001')
post()


*args显示的是元组
def other(name,age,country='china',*args):
print(name)
print(age)
print(country)
print(args)
other('wubing','999','hehe','beijing','changpig','python')


7.关键字参数-字典-非必填
d = {'age': 18, 'name': '吴冰'}
def kw(**kwargs):#2个星号,关键字参
# #关键字参数,接收的是一个字典,调用得用xx=11,也不是必填的
# #传入字典调用的时候就得写**{'age': 18, 'name': '吴冰'}
print(kwargs)
kw(**d)
kw(**{'age': 18, 'name': '吴冰'})
kw()

8.例子:混合使用(顺序:必填、可变、不固定参数、关键字参数)
def other2(name,country='china',*args,**kwargs):
# #如果必填参数、默认值参数、可变参数和关键字参数你要一起用的话
# #必须参照必填参数、默认值参数、可变参数和关键字参数的顺序接收,否则就会报错
print(name)
print(country)
print(args)
print(kwargs)
other2('wubing','xxx')
other2('wubing','beijing','python','changping',user='niuhanyang')


9.return函数的返回值
作用1:函数碰到return,立即结束这个函数
作用2:调用完函数之后,返回计算的结果
函数可以没有返回值,如果没有返回值的话,默认给你返回None
如果这个函数的处理结果咱们需要在别的地方用到,那你就得给函数返回值
如果函数return多个值的话,那么它会把多个值放到一个元组里面去


 
#计算总分
def plus(a,b):#加法
return a+b#return作用1:函数碰到return,立即结束这个函数
#作用2:调用完函数之后,返回计算的结果
score1=50
score2=90 def echo(sum):#总分
print('总分is%s'%sum) res=plus(score1,score2)#保存了a+b的值
print(res)
echo(res)

 

python笔记16-函数的更多相关文章

  1. Python:笔记(2)——函数与模块

    Python:笔记(2)——函数与模块 Python函数 关于函数 1.我们可以使用Help来查看函数的帮助信息 2.调用函数的时候,如果传入的参数数量或者类型不符合均会报错. 3.函数名其实就是一个 ...

  2. python笔记之函数

    函数 >>> def funTest(param1): ... 'this is function document string.' #正文需要有缩进 ... return par ...

  3. python笔记22-literal_eval函数处理返回json中的单双引号

    前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...

  4. python笔记4 - 函数

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

  5. Python笔记008函数(2)

    1.        昨日内容回顾: def 函数(): 函数体 return 值 如果不写return,默认返回None.可以单独返回一个值,也能够以元组的形式返回多个值.(不要把print和retu ...

  6. python笔记16

    1.今日内容 模块基础知识 time/datetime json/picle shutil logging 其他 2.内容回顾和补充 2.1模块(类库) 内置 第三方 自定义 面试题: 列举常用内置模 ...

  7. python笔记-字符串函数总结

    字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...

  8. Python笔记:调用函数,带扩号和和不带括号的区别

    调用函数,如果带括号,那么是调用函数运行后的结果, 调用函数不带括号,调用的是函数本身 例如: def cun (a,b): return a+b print(cun) : 调用函数,打印的是函数 p ...

  9. Python笔记 #16# Pandas: Operations

    10 Minutes to pandas #Stats # shift 这玩意儿有啥用??? s = pd.Series([1,5,np.nan], index=dates).shift(0) # s ...

  10. Python笔记-built-in函数,文件操作,lambda函数

    Built-In: i = abs(123) print(i) j = abs(-123) print(j)#123#123 #all,需要传一个可迭代的东西,里面所有的值是真,返回真 r1 = al ...

随机推荐

  1. 既然选择了远方,便只顾风雨兼程--myvue

    浅谈以下vue的模式,其实vue的模式跟react是一样的,都是MVVM模式,就是直接数据和视图之间的切换 如果单纯这样认识的话,和angular相比较起来,vue就简单的很多,但是事实情况并不是这样 ...

  2. 《数据仓库ETL工具箱》读书笔记

    在本书中,你将学习到以下内容: 规划&设计你的ETL系统 从多种可能的架构中选出最合适的 对实施过程进行管理 管理日常的操作 为ETL过程建立开发/测试/生产环境 理解不同的后台数 ...

  3. jw player 配置参数

    Loading the player … //player所在div //具体配置参数 jwplayer(“container”).setup({//通过js调用播放器并安装到指定容器(contain ...

  4. tomcat启动闪退问题

    tomcat的bin->setclasspath.bat文件中 将两个set加上,并且将if not “%JAVA_HOME%”放到%JRE_HOME%上面.

  5. 鼠标右键vsCode打开

    有时候在安装vscode不会出现鼠标右键用vscode打开的情况: 最终要实现的样子: 解决办法如下步骤: 1.安装vscode: 2.新建一个“.reg”为后缀的文件: 3.把下面内容复制到文件中: ...

  6. Solr全文检索框架

    概述: 什么是Solr? Solr是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务.Solr可以独立运行在Jetty.tomcat.webLogic.webSh ...

  7. Docker 部署 elk + filebeat

    Docker 部署 elk + filebeat kibana 开源的分析与可视化平台logstash 日志收集工具 logstash-forwarder(原名lubmberjack)elastics ...

  8. MVC输出缓存(OutputCache参数详解)

    版权声明:本文为博主原创文章,未经博主允许转载随意. https://blog.csdn.net/kebi007/article/details/59199115 1.学习之前你应该知道这些 几乎每个 ...

  9. python from entry to abandon

    学习Linux已经有大致两周了,依然感觉到自己仍然在运维的大门外徘徊.于是我想要找到一个在Linux之外的业余方向,可以以作为枯燥基础学习的调节.没过多久我就发现了Python可以说是钦定的选择,它作 ...

  10. 若快打码平台python开发文档修改版

    一.打码的作用 在进行爬虫过程中,部分网站的登录验证码是比较简单的,例如四个英文数字随机组合而成的验证码,有的是全数字随机组成的验证码,有的是全中文随机组成的验证码.为了爬虫进行自动化,需要解决自动登 ...