python笔记16-函数
函数说白了,就是把一组代码合到一起,可以实现某种功能,需要再用到这个功能的话,直接调用这个函数就行了 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-函数的更多相关文章
- Python:笔记(2)——函数与模块
Python:笔记(2)——函数与模块 Python函数 关于函数 1.我们可以使用Help来查看函数的帮助信息 2.调用函数的时候,如果传入的参数数量或者类型不符合均会报错. 3.函数名其实就是一个 ...
- python笔记之函数
函数 >>> def funTest(param1): ... 'this is function document string.' #正文需要有缩进 ... return par ...
- python笔记22-literal_eval函数处理返回json中的单双引号
前言 在做接口测试的时候,最常见的接口返回数据就是json类型,json类型数据实际上就是字串,通常标准的json格式是可以转化成python里面的对应的数据类型的 有时候开发返回的数据比较坑,不按常 ...
- python笔记4 - 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也可以自己创建函数,这 ...
- Python笔记008函数(2)
1. 昨日内容回顾: def 函数(): 函数体 return 值 如果不写return,默认返回None.可以单独返回一个值,也能够以元组的形式返回多个值.(不要把print和retu ...
- python笔记16
1.今日内容 模块基础知识 time/datetime json/picle shutil logging 其他 2.内容回顾和补充 2.1模块(类库) 内置 第三方 自定义 面试题: 列举常用内置模 ...
- python笔记-字符串函数总结
字符串函数: chr() 数字转ASCII chr(96)="a" ord() ASCII转数字 ord("a")=96 isspace() 判断是否为空格 s ...
- Python笔记:调用函数,带扩号和和不带括号的区别
调用函数,如果带括号,那么是调用函数运行后的结果, 调用函数不带括号,调用的是函数本身 例如: def cun (a,b): return a+b print(cun) : 调用函数,打印的是函数 p ...
- Python笔记 #16# Pandas: Operations
10 Minutes to pandas #Stats # shift 这玩意儿有啥用??? s = pd.Series([1,5,np.nan], index=dates).shift(0) # s ...
- Python笔记-built-in函数,文件操作,lambda函数
Built-In: i = abs(123) print(i) j = abs(-123) print(j)#123#123 #all,需要传一个可迭代的东西,里面所有的值是真,返回真 r1 = al ...
随机推荐
- phpcms列表页替换
根据栏目代号获取栏目图 <img src="{$CATEGORYS[$top_parentid][image]}" width="1200" height ...
- shell bash-shell
bash shell中的命令替换,`cmd`或者$(cmd). bash shell中的变量赋值,直接name = var: (bash中的变量赋值不能中间有空格) 变量引用时,$name,如果na ...
- C++内存分区:堆、栈、自由存储区、全局/静态存储区和常量存储区
日志 ...
- keepalived 工作原理
keepalived主要通过vrrp协议为基础进行通信 所以先从VRRP协议说起: VRRP: 英文全称 Virtual Router Redundancy Protocol, .中文:虚拟路由冗余协 ...
- C#对象序列化成XML,以及自定义标签名
C#对象序列化操作: public class XMLHelper { /// <summary> /// 对象序列化成 XML String /// </summary> p ...
- fpga板制作调试过程记录
2010-09-11 22:49:00 昨天淘宝准备买块fpga核心板学习,为了练习焊接,我让老板给我散料及pcb板自己焊接. 一,在物料到之前的准备: 我先设计了一下焊接测试计划 1,检查电路板:特 ...
- js cookie缓存处理
function setCookie(cnameList,cvalueList,exdays){ var d = new Date(); d.setTime(d.getTime()+(exdays*2 ...
- hihoCoder 1394 : 网络流四·最小路径覆盖
题目链接:https://hihocoder.com/problemset/problem/1394 题目说是网络流,但是其实就是求有向无环图的最小路径覆盖. 不会网络流,只好用二分匹配了. 把每个点 ...
- gitlab 迁移
http://www.cnblogs.com/crysmile/p/9505527.html
- luogu3426 [POI2005]SZA-Template 后缀树
链接 bzoj不能auto https://www.luogu.org/problemnew/show/P3426 思路 这个要求的串一定是S的前缀和S的后缀. 转化一下 建立出来fail树(fail ...


*args显示的是元组
