关于函数的学习笔记

什么是函数:函数是一系列python语句,可以在程序中运行一次或多次,一般用来完成某一具体的独立功能

为什么使用函数:代码的复用最大化和最小化冗余代码,整体代码结构清晰,可以是某些问题或者功能局部化。

程序中如何定义函数:
def 函数名(参数列表):
函数体【一系列python语句,用来完成独立的功能】

函数的调用:
本质就是执行函数定义中的代码块,但是在调用函数之前,要先定义函数

一、函数的学习

定义函数例子

def printinfo():
    '''
    这个函数时用来打印小张信息的
    :return:    #对函数进行备注
    '''
    # 函数代码块
    print('小张的身高是%f' % 1.73)
    print('小张的体重是%f' % 150)
    print('小张的专业是%s' % '电气工程')
    pass

函数的调用

printinfo()

进一步完善需求【输出不同人的信息】方案:通过传入参数解决

def printinfo(name,height,weight,pro):
    # 函数代码块
    print('%s的身高是%f' % (name,height))
    print('%s的体重是%f' % (name,weight))
    print('%s的专业是%s' % (name,pro))
    pass
    #  调用带参数的额信息
printinfo('小名',189,160,'计算机')

二、函数的参数

**参数的分类:**必须参数、缺损参数【默认参数】、可选参数、关键字参数

**参数:**其实就是为了函数实现特定的功能,进而为了得到实现功能所需要的外部数据

1. 必选参数

# 1 必选参数
def sum(a,b):  # 形式参数:只是意义上的一中参数,在定义的时候是不占内存地址的
    sum=a+b
    print(sum)
    pass
# 函数调用  在调用的时候,必选参数是必须要赋值的
sum(20,15) # 20和15为实际参数:实参  实实在在的参数,是实际占有内存地址的
#sum()  #不能这样写,

2.默认参数 【缺损参数】

缺损参数始终存在于参数列表的尾部

def sum1(a=20,b=30):
    print('默认参数使用=%d'%(a+b))
    pass
# 默认参数调用
sum1()  #结果为50
sum1(10) #在调用时如果没有赋值,就会用定义函数时给定的默认值,即a=10,b=30

3.可选参数

可选参数即不定长参数,当参数个数不确定时使用,比较灵活

def getcomputer(*args):
    '''
    计算累加和
    :param args:  可变长的数据类型
    :return:
    '''
    print(args)
    pass
getcomputer(1,2)   #得到的结果为(1, 2)

做一个累加的算法

def getcomputer(*args):
	'''
    计算累加和
    :param args:  可变长的数据类型
    :return:
    '''
    result=0
    for item in args:
    	result+=item
    	pass
    print('result=%d'%result)
    pass
getcomputer(1,2,3,4)

输出结果:10
4.关键字参数

用**来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串

def keyfunc(**kwargs):
    print(kwargs)
    pass
# 调用
# keyfunc(1,2,3)  不可以传递的,这是元组类型

第一种调用方法

dicA={'name':'Leo','age':35}
keyfunc(**dicA)

输出结果:{‘name’: ‘Leo’, ‘age’: 35}

第二种调用方法

keyfunc(name='peter',age='25')

输出结果:{‘name’: ‘peter’, ‘age’: ‘25’}

5. 组合使用

def complexfunc(*args,**kwards)
	print(args)
	print(kwards)
	pass
complexfunc(1,2,3,name='刘德华') #会自动识别给的是字典还是元组

输出结果:(1, 2, 3)
{‘name’: ‘刘德华’}

注意

def Testmup(**kwards,*args):   #不符合要求
    '''
    可选参数必须放到关键字可选参数之前
    可选参数接受的是元组类型
    关键字可选参数接受的是字典类型
    :param kwards:
    :param args:
    :return:
    '''
    pass

三、函数的返回值

概念:函数执行完以后会返回一个对象,如果在函数内部有return就可以返回实际的值,否则返回的是一个空none

类型:可以返回任意类型,取决于return后面的类型

用途:给调用方返回数据

注意:
1.在一个函数体出现多个return值,但是肯定只能返回一个return
2.如果在一个函数体内执行一个return,意味着函数退出了,return后面的代码将不会再执行

def sum(a,b):
    sum=a+b
    return sum #将计算的结果返回
    pass
rs=sum(10,30) #将返回值赋给其他变量
print(rs)  #函数的返回值返回到调用的地方

输出结果:40

def calcomputer(num):
    result=0
    li=[]
    i=1
    while i<=num:
        result+=i
        i+=1
        pass
    li.append(result)
    return li
    pass


#调用函数
value=calcomputer(10)
print(type(value))  #value类型
print(value)

输出结果:
<class ‘list’>
[55]

def returntuple():
    '''
    返回元组类型的数据
    :return:
    '''
    return 1,2,3  #{'name':测试}
    pass

A=returntuple()
print(type(A))
print(A)

输出结果:
<class ‘tuple’>
(1, 2, 3)

四、函数的嵌套调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
`sigprocmask()` 函数是用于修改进程的信号屏蔽字的函数,它可以阻塞或允许特定的信号。下面是关于 `sigprocmask()` 函数的一些学习笔记: 1. `sigprocmask()` 函数的头文件为 `<signal.h>`。 2. `sigprocmask()` 函数的原型为: ``` int sigprocmask(int how, const sigset_t *set, sigset_t *oldset); ``` - `how` 表示如何修改信号屏蔽字,有三个取值:`SIG_BLOCK`、`SIG_UNBLOCK` 和 `SIG_SETMASK`。分别表示阻塞、解除阻塞和设置信号屏蔽字。 - `set` 表示要修改的信号集合。 - `oldset` 表示原来的信号集合。 3. `sigprocmask()` 函数可以修改进程的信号屏蔽字,控制是否允许或阻塞某些信号的处理。 4. 信号屏蔽字是一个二进制位向量,每个位代表一个信号,如果该位为 1,则表示该信号被屏蔽,不会被处理;如果该位为 0,则表示该信号是允许的,可以被处理。 5. `sigprocmask()` 函数可以使用 `sigemptyset()`、`sigfillset()`、`sigaddset()`、`sigdelset()` 等函数来创建和修改信号集合。 6. `sigprocmask()` 函数可以用于防止信号的竞争条件,例如在多线程程序中使用信号处理函数时,可以使用信号屏蔽字来防止多个线程同时处理同一个信号。 7. `sigprocmask()` 函数还可以用于实现临界区保护,即在进入临界区时,屏蔽某些信号,以防止信号处理函数中断临界区代码的执行。 总之,`sigprocmask()` 函数是一个非常重要且常用的函数,可以用于控制信号的处理,保护临界区等。在学习和使用该函数时,需要注意其参数的含义和使用方法,以及信号屏蔽字的概念和使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值