2019-03-15

  1. 什么是函数
    函数就是对实现某一特定功能的代码段的封装
    2 函数的分类:
    2.1 内置函数,python已经实现的函数,可以直接调用
    2.2 自定义函数,程序员自己定义用来实现某种功能的函数
    3.函数的语法:
    def 函数名 (参数列表):
    函数体

说明:

def 声明函数的关键字,固定写法
函数名 - -要求:标识符、不能是关键字
规范:见名知意,所有字母小写,多个单词用下划线—隔开,不能和系统内置函数重名,否则会实现函数功能覆盖
() - 固定写法
参数列表--形参1,形参2.。。。形参n ,其实质是变量名,可以一个或者多个或者没有
: - 固定写法
函数体 - 必须和def保持一个缩进的代码段
函数体分为函数说明文档和实现函数功能的代码段两个部分

初学者声明函数的步骤:

1 先确定函数的功能
2 根据功能确定函数名
3 确定参数,以及需要几个参数
4 实现函数的功能
5 确定函数的返回值
特别注意的是,函数体在函数声明的时候不会执行,调用函数的时候才会执行函数体

函数的调用语法:
函数名(参数列表/实参列表)----函数名对应的函数行必须是已经声明过的函数
实参列表 --这儿的参数叫实参,实参是用来给形参赋值的,对应几个形参值就需要几个实参值

例如 :写一个函数。功能是计算两个数的和;

def sum1(num1,num2):
print(num1+num2)

sum1(1,2)

写一个函数功能是求123...N的积

def factorial(n):

factorial 阶乘的意思

  sum2 = 1
  for  num in range(1,n+1):
         sum2 *= num
   print(sum1)

factorial(5) # 结果就是120

函数调用过程:
函数在声明的时候不会执行函数体调用函数的时候才会执行函数体
函数的调用过程:
1.先回到函数声明的位置
2 用实参给形参赋值(传递参数)
3 执行函数体
4 执行完函数体再回到函数调用的位置,接着往后执行
例如:
def sum1(num1,num2):

num1,num2 = 1,2

  print(num1,num2)  # print(3)

sum1(1,2)
函数的参数

根据实参写法,将参数分为位置参数和关键字参数

位置参数:调用函数的时候参数的位置要一一对应,保证每个参数都有值
关键字参数:以形参1=值1,形参2=值2 。。。的方式来调用函数,特别地,形参的顺科可以和声明的时候的形参的顺序不同
例如:
def func1(a,b,c):
print(a,b,c)
位置参数
func1(1,2,2)
关键字参数
func1(a=1,b=2,c=2) # 这里a,b,c,可以打乱顺序
混用写法
func1(5,b=2,c=2) # 调用函数的时候,位置参数必须在关键字参数前面,否则会报错

参数默认值
声明函数的时候函数的形参可以设置默认值

参数默认值

声明函数的时候函数的形参可以设置默认值.

注意:如果设置默认值的时候,是一部分有默认值,一部分没默认值,那么没有默认值的参数

a 一定要写在有默认值得参数的前面

b 有默认值的参数,调用的时候可以不传参数,没有默认值的参数,调用的时候必须传参

c .当我们传参的时候想要跳过某个或者某几个有默认值的参数,直接给后面的参数传参的时候,

后面的参数必须使用关键字传参

def func2(a,b=20,c=30):
print(a,b,c)

func2(100,200,30)
func2(100)
func2(a= 100,c=20)
参数类型说明

给参数设置默认值,默认是什么类型,参数就是什么类型

以参数名:类型名的方式说明参数类型

def func3(nums:list,a,b):
print(a+b)

func3([],10,0)

练习:写一个函数,函数的功能是统计一个列表中指定元素的个数(类似count()方法的功能)

print('-----------')

def count1(a:list,b):
count1= 0
for i in a:
if i == b:
count1 +=1
print(count1)

count1([1,2,3],1)

不定长参数

在声明函数的时候,在形参前加一个*,可以将这个形参变成元祖,然后同时接受多个位置实参的值

原则上一个函数的参数中既可以有定长的,也可以有一个的不定长和两个*的不定长;

如果同时存带一个参数和带两个*的参数,带一个的要放在带两个的前面

def f(a,*b):
print(a,b)

f(1,2,3,c=1,d=2)

def f(*num):
print(num)

f(12,230,90)

声明函数的时候,在形参前加**,可以将这个形参变成字典,然后可以同时接受多个关键字的值(关键字随意命名)

def f(**num):
print(num)

f(a=12, b=230, c=90)

def yh_sum1(*num):
print(num)

yh_sum1(1)
yh_sum1(1,2)

注意:一个函数中可以同时又不定长参数和定长参数,一般情况下不定长参数要放在后面

如果出现定长参数放在不定长参数的后面,那么在不定长参数后面的定长参数调用的时候需要使用关键字参数传参

def func1(a,*nums):
print(a,nums)

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

写一个函数求多个数的和,要求调用函数的时候既可以使用位置参数,也可以使用关键字参数传参

def sum1(num1,*num2):
sum2=0
for i in num1:
sum2 += int(i)
sum3=0
for key in num2:
sum3 += num2[key]
sum1= sum2 +sum3
print(sum1)

sum1(1,2)
sum1(1,2,num3=2,num4 = 3)
sum1(1,2,3,num = 100,)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容

  • 一、函数 1.函数概述 1.1认识函数 需求:求圆的面积s = π * r ** 2c = math.sqrt(a...
    hollow_02f9阅读 724评论 0 2
  • 一、函数 1.函数概述 1.1认识函数 需求:求圆的面积s = π * r ** 2c = math.sqrt(a...
    郑元吉阅读 327评论 0 0
  • 将军很开心。 他觉得自己终于实现了愿望,纵横沙场,平定天下。 虽然他纵横的是马场。 “冲啊!”他骑着小黄马,慷慨激...
    风兮兮__阅读 444评论 0 4
  • 今天上午需要处理的事情比较多,有点小忙,正在处理文件的时候,电话铃声响起来。一看,是一个用户芳美女的电话。 “李哥...
    李振华HK华凯月嫂服务社阅读 548评论 0 1
  • 今天早上看微信,被一则新闻惊了一下,“刚刚,建行突然宣布,付款方式巨变!银行圈不淡定了!”是说建行已从深圳分行开始...
    Tracyseven阅读 192评论 0 0