机器学习-python篇学习笔记(5)函数

机器学习-python篇学习笔记(5)函数

def定义函数

在python中用def来定义函数

定义格式与C语言相似:

但是是使用def进行定义

der function(a,b):
	expression

当函数不需要返回值时,括号里可以为空。

在命令行中调用函数可以直接调用:


def function_name():
    print('This is a function')
    a = 1 + 2
    print(a)

>>> function_name()
This is a function
3

而对于需要定义变量和返回值的函数:

def function(a,b):
    c = a + b
    print("the c is",c)
>>> function(1,2)
the c is 3
>>> function(a = 1, b = 2)
the c is 3
>>> function(b = 2,a = 1)
the c is 3

对比python和c我们可以看出python的虽然对结构要求十分严格,但是语句十分的灵活。

要注意的是,在第二种调用函数的情况下,a,b的位置顺序不影响函数的读取和运行。

函数默认参数

def
sale_car(price,color,brand,is_second_hand)print('price',price,
	'colour',color,
	'brand',brand;
	'is_second_hand',is_second_hand,)
sale_car(1000,'red','carmy',True)


>>> 
price 1000 colour red brand carmy is_second_hand True

即在后面的语句中定义了前面变量的的值。

在程序中,sale_car是系统中定义函数,即告诉计算机这个函数的名字叫sale_car,

而price是里面变量的名称,即告诉系统这个变量叫price,而赋的值可以在定义变量的时候直接赋予

或者正在后边间接赋予,但是在赋予时要注意定义时未定义的变量要在已经定义的变量

而且这种操作是可以在定义函数时同步进行的:

def sale_car(price ,
             color = 'red',
             brand = 'carmy',
             is_second_hand = 'True'):
    print('price',price,
          'colour',color,
          'brand',brand,
          'is_second_hand',is_second_hand,)
sale_car(1000)

>>> 
price 1000 colour red brand carmy is_second_hand True

但是如果在定义时定义全部的变量则会导致数据溢出

如下:


def sale_car(price = 1000,
             color = 'red',
             brand = 'carmy',
             is_second_hand = 'True'):
    print('price',price,
          'colour',color,
          'brand',brand,
          'is_second_hand',is_second_hand,)

>>> sale_car
<function sale_car at 0x00000000040AAE18>

同时如果在前后定义了变量的值,那么以后边调用函数时定义的变量值为准。

如下:


def sale_car(price ,
	color = 'red',
	brand = 'carmy',
	is_second_hand = 'True')print('price',price,
	'colour',color,
	'brand',brand,
	'is_second_hand',is_second_hand,)
sale_car(1000,color = 'blue',brand = 'bmw',is_second_hand = 'False')

>>> 
price 1000 colour blue brand bmw is_second_hand False

最后需要注意的一点是:

在前面def已经定义好的参数中,已经定义好的参数需要在为定义的参数之后,否则运行时将会报错。

全局变量和局部变量

在python中有全局变量和局部变量之分
全局变量出现在def函数外部,并在外部定义,可以直接用print进行输出
局部变量是在def内部进行定义的变量,只有在函数内部使用print才能输出,在函数外使用print进行输出则会报错。

Leven = 666
def function():
    a = 10
    print(a)
    return(Leven + a)
print(Leven)
print(function())

>>> 
666
10
676
Leven = 666
def function():
    a = 10
    print(a)
    return(Leven + a)
print(Leven)
print(function())
print(a)

>>> 
666
10
676
Traceback (most recent call last):
  File "C:\Users\sky\Desktop\python text\python text.py", line 8, in <module>
    print(a)
NameError: name 'a' is not defined

如果想在外部输出局部变量a,则需要运用global和None将a转变为全局变量。

Leven = 666
a = None
def function():
    a = 10
    global a
    return(Leven + a)
print(Leven)
print(function())
print(a)

>>> 
666
676
10
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

狗头狗不狗

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值