python使用函数的目的_python之函数初识

一、函数的初识

1、如何定义函数:

def 函数名():

代码...

例如:

def my_len():

l = [1, 2, 3, 4]

count = 0

for i in l:

count += 1

print(count)

2、函数的优点:

1,减少代码的重复率。

2,增强代码的阅读性。

3、函数到底是什么?

函数最主要的目的:封装一个功能。

4、函数如何调用:函数名 ()

my_len()

5、总结

定义:def 关键词开头,空格之后接函数名称和圆括号(),最后还有一个":"。

def 是固定的,不能变,他就是定义函数的关键字。

空格 为了将def关键字和函数名分开,必须空,当然你可以空2格、3格或者你想空多少都行,但正常人还是空1格。

函数名:函数名只能包含字符串、下划线和数字且不能以数字开头。虽然函数名可以随便起,但我们给函数起名字还是要尽量简短,并能表达函数功能。

括号:是必须加的!

注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面第一行。以增强代码的可读性。

调用:就是 函数名() 要记得加上括号。

二、函数的返回值:return

1、函数中如果遇到retrun,则直接结束函数。

2、给函数的执行者返回值。

1,不写return和只写return 返回None

2,return 单个值 原封不动的返回(返回的数据类型也一致)

3,return 多个值 返回一个元组,所有的返回值作为元组的每一个元素

(1)不写return

def func1():

print(111)

print(222)

print(func1()) #111 222 None

(1-2)只写return

def func1():

print(111)

print(222)

return

print(func1()) #111 222 None

(2)return 单个值

def fun1():

a = 1

b = 'hello'

c = [1,2,3]

return a

print(fun1()) # 1

(3)return 多个值

def fun1():

a = 1

b = 'hello'

c = [1,2,3]

return a,b,c

print(fun1()) #(1, 'hello', [1, 2, 3])

注意:工作中,函数中尽量不要出现print,这里只是为了展示函数的用法才使用的

三、函数的参数

1、用一个例子简单了解一下:

#函数定义

def mylen(s):

"""计算s的长度"""

length = 0

for i in s:

length += 1

return length

#函数调用

str_len = mylen("hello world")

print('str_len : %s' %(str_len))

这里我们要告诉mylen函数要计算的字符串是谁,这个过程就叫做传递参数,

简称传参,我们调用函数时传递的这个“hello world”和定义函数时的s就是参数。

这个“hello world”被称为实际参数,因为这个是实际的要交给函数的内容,简称实参。

定义函数时的s,只是一个变量的名字,被称为形式参数,因为在定义函数的时候它只是一个形式并不是真正的数据,

表示这里有一个参数,简称形参。

2、实参

1,位置参数:按照顺序,一一对应

def func1(x,y):

print(x,y)

func1(1,2) #位置参数,1对应传给x,2对应传给y

2,关键字传参:可以不按照顺序,但是必须一一对应

def func1(x,y):

return x+y

print(func1(y=100,x=99)) #关键字参数,我们写实参的时候直接声明了形参y对应100,x对应99

3,混合传参:关键字参数一定要在位置参数后面

def func1(a,b,x,y):

return b+y

print(func1(100,200,y=100,x=99)) #300

3、形参

1,位置参数 按照顺序,一一对应

def func(x,y,z):

print(x,y,z)

func(1,2,3)

2,默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值。

应用场景:不经常改变的参数,但是一直在用。

def func1(x,y,a=666):

print(x,y,a)

func1(1,2) #1 2 666

func1(1,2,333) #1 2 333

注意:

默认参数一般设置为不可变的数据类型(str,int,tuple等),

若默认参数设置为可变的数据类型(list,dict等),那么执行一次后,这个可变的数据类型它始终用的是同一个。

def fun1(x,l1=[]):

l1.append(x)

return l1

res = fun1(20)

print(res,id(res)) #[20] 2192007779592

res1 = fun1(100)

print(res1,id(res1)) #[20, 100] 2192007779592

4、参数总结

实参:

位置参数:按照顺序,一一对应

关键字参数:可以不按照顺序,但是必须一一对应

混合参数:关键字参数一定要在位置参数后面

形参

位置参数:按照顺序,一一对应

默认参数:给其传值,将原默认参数覆盖掉,不传值,不报错,使用默认值

小知识点:只针对于简单的if else 这样的结构,才可以使用。

def fun(x,y):

if x > y:

return x

else:

return y

print(fun(1,2))

上面代码可以下成下面的代码:

def fun(x,y):

return x if x > y else y

print(fun(1,2))

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值