一阶段day9-02函数

一、函数

1、函数定义

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
分类:自定义函数(程序员自己声明实现其功能)和内置函数(系统已经声明实现完成)

2、函数语法

def 函数名(参数列表):
函数体

说明:
a、def——》Python中声明函数的关键字;
b、函数名——》标识符,要求同变量名,不能是关键字;
遵守PEP8命名规范(所有字母小写,单词之间下划线隔开)
见名知义(看见名字知道函数的功能)
c、()——》固定格式
d、参数列表——》形参列表;参数名1,参数名2,.....(逗号隔开)
可以有多个参数,亦可以没有;
参数是用来从函数的外部给函数里面传值用的;
e:——》固定格式
f:函数体——》实现函数功能的代码段;

3、初学者声明函数的步骤

a、确定函数的功能
b、根据功能确定函数名
c、确定参数:确定参数有无,参数个数(看函数功能需不需要从函数外面传值,需要传几个)
d、实现函数功能
e、确定返回值

写一个函数,打印两个数的和
def sum_me(num1,num2):

    print(num1+num2)

sum_me(11,22)
写一个函数,打印5个hello
def hello5():

    print("hello"*5,sep='====')

hello5()
打印n个hello
def hello_n(n):

    print("hello"*n,sep='==')

hello_n(3)
练习:写一个函数,计算1+2+3+....n的和
def sum_n(n):

    sum_n=0
    for x in range(1,n+1):
        sum_n += x
    print(sum_n)

sum_n(40)

二、函数调用

'''声明函数的时候,不会执行函数体。函数体只有在函数调用的时候才会执行
这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行
语法:函数名(实参列表)
说明:
函数名——》必须是已经声明过的函数
()——》固定的
实参列表——》数据1,数据2,...;实参是用来给形参赋值的'''

函数的调用过程(重点)

第一步:回到函数声明的位置
第二步:用实参给形参赋值(传参,一定要保证每个形参都有一个实参为其赋值)
第三步:执行函数体
第四步:返回返回值(默认None,返回给函数调用表达式)
第五步:回到函数调用的位置(函数表达式),执行之后的代码

三、函数参数

1、位置参数和关键字参数

def func1(a,b,c):
    print('a:',a,'b',b,'c',c)

func1(11,22,33)#位置参数:按照实参的顺序一一给形参赋值
func1(c=99,a=88,b=77)#关键字参数:形参1=实参1,形参2=实参2,形参3=实参3,...

2、默认参数

函数声明的时候可以给参数设置默认值,但是有默认值的参数必须放在没默认值的参数后面
def func1(a,c,b=0):
    print('a:',a,'b',b,'c',c)  #a: 11 b 0 c 22

func1(11,22)#由于形参b有默认值,故可以不写与之对应的实参

3、不定长参数

参数个数不确定的时候,可以在形参前面加*,将这个形参变成一个元祖,用来接收多个参数
如果函数有多个形参,那么不定长参数要放在最后
def func1(*nums):
    print(nums)

func1()
func1(1)
func1(1,3)
func1(1,2,'abc')

def func2(name,*nums):
    print(name,nums)

func2('alice',2,'abc')

四、函数的返回值

函数的返回值就是函数调用表达式的值,就是return关键字后面的表达式的值
Python中所有的函数都有返回值,返回值默认是None
执行函数体没有遇到return,函数的返回值就是None;遇到了return函数的返回值就是return后面的值
函数调用表达式——》调用函数的语句——函数名(实参)
return——》关键字,只能写在函数体中。用来返回返回值和结束函数
情况一:没有遇到return
def hello5():
    print("hello"*5,sep='====')

print(hello5())   #这一步会执行两道命令,第一道是执行函数体,第二步是打印函数体的返回值;
######  故结果是
###### hellohellohellohellohello
###### None
list=['返回值',hello5()]
print(list)  #['返回值', None]
情况二:遇到return
执行函数时,一旦遇到return,函数就直接结束,并且把return后面的结果作为返回值
def x():
    print('===')
    print('!!!')
    return 100
    print('///')
x()
#会打印===,!!!,但不会打印///,因为执行不到这段代码。
print(x())   #返回值100
注意:并不是只要函数体中有return,函数返回值就是return后面的值;要函数体在执行过程中遇到return,才返回return后面的值;
def x():
    n=2
    if n%2:

        return 100
    print('///')
print(x())   #会打印///,返回值为None,并非100,因为没遇上return
如果实现函数的功能会产生新的数据,就将新的数据返回。如果不会产生新的数据就不用返回值
写一个函数,功能是计算一个数的阶乘
def jie_ceng(num):

    sum1 = 1
    for x in range(1, num+1):
        sum1 *= x

    return sum1
re = jie_ceng(10)
print(re)    #3628800
print('===%d===' % re)   #===3628800===
list1 = [re, re]
print(list1)    #[3628800, 3628800]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 一、快捷键 ctr+b 执行ctr+/ 单行注释ctr+c ...
    o_8319阅读 11,139评论 2 16
  • 公司广大青年朋友们: 今天是五四青年节,在这青年欢庆的日子里,山西德御坊工会委员会对大家过去一年的辛勤奉献表示衷心...
    雅屏阅读 4,485评论 0 1
  • 做什么事情都不当成自己的事情,不认真负责,所以很多事情都想要通过逃避的方式,而不是去拼,去努力去做。 今天打电话也...
    张淞然阅读 3,434评论 0 0
  • 1,我在本篇文章中学到的最重要的概念:学习任何一种语言都不简单,要想学好它,每个人都有适合自己的最棒的方法,相应的...
    111袁梦阅读 1,544评论 2 0
  • 有时候对一些项目感到很无力,要求掌握的技能很多又晦涩难懂,当看到别人家的程序员时,我的那种“激愤”的感觉就更加强烈...
    大洪阅读 1,630评论 0 0

友情链接更多精彩内容