2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > python write函数参数_Python函数-函数参数 返回值

python write函数参数_Python函数-函数参数 返回值

时间:2021-11-27 06:07:40

相关推荐

python write函数参数_Python函数-函数参数 返回值

函数

1、函数是什么?

函数一词来源于数学,但编程中的「函数」概念,与数学中的函数是有很大不同的,编程中的函数在英文中也有很多不同的叫法。在BASIC中叫 做subroutine(子过程或子程序),在Pascal中叫做procedure(过程)和function,在C中只有function,在Java里面叫做method。

定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可。

2、使用函数的好处:

(1)简化代码

(2)提高代码的复用性

(3)代码可扩展

3、python中函数的定义:

定义函数使用def关键字,后面是函数名,函数名不能重复

1

2

deffun():#定义一个函数,后面是函数名

print("HelloWorld")#函数体

4、函数的参数

函数在调用的时候,可以传入参数,有形参和实参

形参:

形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。

实参:

实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。

函数调用结束返回主调用函数后则不能再使用该形参变量。

简单点说,形参就是函数接收的参数,而实参就是你实际传入的参数。

1

2

3

defcalc(x,y):#定义一个函数,参数有x和y,x和y就是形参

print(x*y)#输出x乘以y的值

calc(5,2)#调用上面定义的函数,5和2就是实参

举个例子:

def hello(): #定义函数

#pass占位

print('hello') #函数体#调用函数

hello()#函数不调用不会被执行

defwrite_file(file_name, content):

with open(file_name,'w', encoding='utf-8') as f:

f.write(content)#调用函数

write_file('函数', '今天学习函数')

write_file('函数2', '今天学习函数2') #可调用多次

函数的返回值

每个函数都有返回值,如果没有在函数里面指定返回值的话,在python里面函数执行完之后,默认会返回一个None。

函数也可以有多个返回值,如果有多个返回值的话,会把返回值都放到一个元组中,返回的是一个元组。

为什么要有返回值呢,是因为在这个函数操作完之后,它的结果在后面的程序里面需要用到。

函数中的返回值使用return,函数在遇到return就立即结束。

举个例子:

defread_file(file_name):

with open(file_name, encoding='utf-8') as f:

content=f.read()#print(content)

return content #函数的返回值

#函数没有写返回值的时候,默认返回的是None

result= read_file('函数')print(result)#return俩作用:

#1、返回数据

#2、函数里只要遇到return(return必须写子函数里面),函数立马结束

deft():for i in range(5):print('ccx')returnt()

函数练习

#1、传参#2、把入参转成字符串#3、判断参数小数点的个数是否是为1#4、判断小数点前面的是否为整数#5、判断小数后面是否为整数

defis_float(s):

s=str(s)if s.count('.') == 1:

left, right= s.split('.') #1.1[1,1]

if right.isdigit() andleft.isdigit():if int(right) != 0 or int(left) != 0: #0.0判断是否不是0.0

returnTrueif left.startswith('-') and left.count('-') == 1:

num= left[1:]if num.isdigit() andright.isdigit():if int(right) != 0 or int(left) !=0:returnTruereturnFalseprint(is_float('-0.1'))

运行结果:

True

函数的四种形参类型:

1、位置参数:

位置参数,字面意思也就是按照参数的位置来进行传参,比如说上面的calc函数,x和y就是位置参数(必传的),有几个位置参数在调用时就传几个,否则报错。

那如果有多个位置参数的话,记不住哪个位置传哪个了怎么办,可以使用位置参数的名字来指定调用。

举个例子:

#位置参数

def b(name, age): #必填参数,位置参数,一一对应

passb('ccx', 18)

比如,上面的那个calc函数也可以使用calc(y=1,x=2)这样来调用,这种调用方式叫做关键字传参。

2、默认参数:

默认参数就是在定义形参的时候,给函数默认赋一个值。

比如说数据库的端口,默认给它一个值,这样就算你在调用的时候没传入这个参数,它也是有值的。

so,默认参数不是必填的,如果给默认参数传值的话,它就会使用你传入的值。如果使用默认值参数的话,必须放在位置参数后面定义。

举个例子:

#默认值参数

def op_file(file, content=None):print(file)print(content)

op_file('user.txt', 'user1')

运行结果:

user.txt

user1

默认值参数练习

#默认值参数练习

def op_file(file, content=None): #默认值参数

with open(file, 'a+', encoding='utf-8') as f:ifcontent:

f.write(str(content))else:

f.seek(0)

result=f.read()return result

3、可变参数:

可变参数用*来接收,后面想传多少个参数就传多少个,如果位置参数、默认值参数、可变参数一起使用的的话,可变参数必须在位置参数和默认值参数后面。

可变参数也是非必传的。

#可变参数

def send_sms(*args): #‘*’个数不受限制,放到一个list里面

print(args)

send_sms(2, 4, 5, 68)#注:#这个是不是必须传的--非必传#是否限制参数个数--不限#args是个什么--元组

运行结果:

(2, 4, 5, 68)

4、关键字参数:

关键字参数使用**来接收,后面的参数也是不固定的,想写多少个写多少个,当然也可以和上面的几种一起来使用,如果要一起使用的话,关键字参数必须在最后面。

使用关键字参数的话,调用的时候必须使用关键字传参。关键字参数也是非必传的。

#关键字参数

def t(**kwargs): #传入时必须得指定关键字

print(kwargs)

t(age=18, name='bj')

运行结果:

{'age': 18, 'name': 'bj'}

四种参数混合用(一般很少有人这样用)

必填参数、默认值、可变参数、关键字参数 必须得按照这个顺序来

必填参数必须写到默认值参数前面

默认参数必须在可变参数前面

可变参数必须在关键字参数前面

#四种参数连用

def test(name, content=None, *args, **kwargs):print(name)print(content)print(args)print(kwargs)

举个例子:

deftest(name, phone, qq, addr, sex):print(name)print(phone)print(qq)print(addr)print(sex)

test('183', 'mingzi', '1111', 'beijing', '女') #须一一对应

test(age=36, addr='beijing', qq='1111', sex='xxx', name='xx') #指定关键字参数阔以

test('xiaoming', '1823423', qq='xxx', sex='xxx', addr='xxxx') #这个阔以

test('xiaoming', '1823423', qq='xxx', sex='xxx', 111) #错误的,不能这么写

open('file', 'w', encoding='utf-8')

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。