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

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. [macOS] PHP双版本,5.6跟7.1

    转过来的,原文看这里,https://www.symfony.fi/page/how-to-run-both-php-5-6-and-php-7-x-with-homebrew-on-os-x-wit ...

  2. python str find & index 联系

    [1]相同点 (1)功能:检测字符串中是否包含子字符串str (2)语法: [1] str.find(str, beg = 0, end = len(string)) [2] str.index(st ...

  3. CentOS6.5系统,mysql数据库的安装

    1.查看数据库中已安装的版本: [mdata@bogon ~]$ yum list installed|grep mysqlmysql-libs.x86_64 5.1.71-1.el6 @anacon ...

  4. 浮点数(double、float)的格式化问题及处理

    ---恢复内容开始--- 平时常会面临浮点数的格式处理问题,下面就举例说一说常见的问题及处理: 1,科学计数法问题 一个浮点数123456789.10,在打印的时候变成了1.234567891E8,处 ...

  5. SIP协议简单介绍

    sip协议是由IETF提出的IP电话信令协议,主要目的是为了解决ip网络中的信令控制,以及同软交换通信. sip协议类似http协议: 报文结构: start-line message-header ...

  6. UVA1428 Ping pong

    思路 分别统计这个位置左边和右边各有多少大于和小于它的数,乘起来即可 使用权值树状数组 代码 #include <cstdio> #include <algorithm> #i ...

  7. 揭示牌面使之升序 Reveal Cards In Increasing Order

    2019-03-27 14:10:37 问题描述: 问题求解: 模拟题.考虑角度是从结果来进行反推. input - [2,3,5,7,11,13,17] (just sort the input t ...

  8. 【shell脚本】 变量基础学习整理

    1.linux系统环境 echo 'echo /etc/profile ' >> /etc/profile echo 'echo /etc/bashrc' >> /etc/ba ...

  9. 文件下载 路径中有中文 报错 提示 文件找不到 java.io.FileNotFoundException: http://192.168.1.141:8096/resources/card/comcard/????????/????????.png

    此问题主要是中文编码格式不对导致的,将路径中的中文部分设置下编码就可以啦 例如: String url =  "http://192.168.1.141:8096/resources/car ...

  10. CentOS7下mariadb日常管理

    在CentOS7下,官方提供的mysql的rpm包就是mariadb,可查看mariadb包信息 [root@host ~]$rpm -qi mariadb # 需要先安装该包 Name : mari ...