函数基础

一.函数

1.定义:函数就是实现特定功能的代码段的封装
2.分类:内置函数和自定义函数
内置函数是系统写好的,可以直接使用的函数,例如:print函数,input函数.
自定义函数是程序员自己创造的函数.
3.函数的声明:

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

a.def:python中声明函数的关键字
b.函数名: 标识符,不能是关键字,PEP8,见名知义
c.():固定格式,并且必须写.
d.参数列表:参数名1,参数名2参数名3... 参数可以有多个,也可以没有.这的参数也叫形参
参数是用来从函数的外面,向函数里面传值用的(将数据从函数外面传递到函数里面)
e.函数体: 就是实现函数功能的代码段.函数体中可能会包含return

4.初学者声明函数的过程:
第一步:确定函数的功能
第二步:确定函数名
第三步:确定参数(确定有没有,有几个)
看实现函数的功能需不需要从函数外面传递数据,需要几个就定义几个
第四步:实现函数的功能
第五步:确定返回值

函数体只有在调用的时候才会执行
5.函数的调用

函数名(实参列表)

说明:
函数名:你要调用哪个函数,就写对应的函数名.函数只能先声明,才能调用
实参列表:就是用来给形参赋值的

#写一个函数打印两个数的和
def sum1(a,b):
  print(a+b)
sum1(100,99)
#结果是199

6.函数的调用过程(重点掌握)

a.回到函数声明的位置
b.使用实参给形参赋值,必须保证每个形参都有值
c.执行函数体
d.将返回值返回给函数调用者
e.回到函数调用的地方,接着执行后面的代码-----此时的函数调用表达式的值就是返回值

#练习:写一个函数,打印一个整数的阶乘,N!
def jie_cheng(N):
  sum1 = 1
  for item in range(1,N+1):
    sum1 *= item
  print('%d!是%d'%(sum1,N)

jie_cheng(5)
#5!是120

二,函数的参数

1.定义
参数:声明函数的时候,参数列表中的参数叫形参,调用函数的时候,参数列表中的参数叫实参
传参:传参的过程就是使用实参给形参赋值的过程.一定要保证每个形参都要有值.
2.实参分类
a.位置参数:传参的时候实参的位置和形参一一对应
b.关键字参数:函数调用的时候通过'形参名=实参'的形式来传参


#1.位置参数
def func1(a,b,c):
    print(a,b,c)

#a = 10,b = 'abc',c = True
func1(10,'abc',True)

# 2.关键字参数
func1(b='abc',c=True,a=10)

# 3.关键字参数和位置参数结合
func1(10,30,c=20)


3.参数的默认值
a.在声明函数的时候,可以给参数赋默认值.(可以给所有的参数赋默认值,也可以给部分参数赋默认值)
给部分参数赋默认值的时候,要求有默认值的参数必须放到参数列表的最后
b.调用有默认值的函数时,可以传参也可以不传参

#3.1声明函数的时候,每个参数都有默认值
def func2(a = 100,b ='a',c=True):
    print(a,b,c)

#a.所有的参数都不传参,全部使用默认值
func2()
#b.给部分参数传参
func2(b='abc')

#3.2参数列表中,部分参数有默认值(有默认值的必须放在后面)
def func3(a,b,c=20):
    print(a,b,c)

# 没有默认值的参数必须传参,有默认值的参数可以传,也可以不传
func3(100,200)
func3(b=300,a=200)


4.不定个数参数
python中通过在形参名前加星号,让形参变成元祖,可以同时接受多个实参

# 写一个函数,计算多个数的和
def sum1(*numbers):
  a = 0
  for item in numbers:
    a += item
    print(sum1)
sum1(10,20,30)
#输出结果:60

5.对参数的类型进行说明
python不能直接约束一个变量的类型.但是可以通过说明来提示用户调用函数的时候,参数的类型

def func4(name:str,age:int,id:str):
    print(name,age)

三.函数的返回值

1.返回值:函数的返回值就是return关键字后面的表达式的值,就是函数调用表达式的结果

def func1(n):
    print(n)
    return 100
    print('======')

re = func1(10)
print(re)
#返回值为100

2.python中所有的函数都有返回值,在函数执行过程中没有遇到return,默认是None
当遇到return时,对函数有两种效果:
a.确定返回值
b.结束函数

def func2():
  if False:
    return 200
print(func2())
#返回值是None,没有进入到if中,没遇到return,返回默认值None

什么时候函数需要返回值?
只要实现函数的功能会产生新的数据,就通过返回值将新的数据返回,而不是打印它

补充:判断一个值是否是指定的类型
isinstance(值,类型)-----返回值是布尔
isinstance(10,int) 判断10是否是int类型

# 练习1:写一个函数,统计一个列表中浮点数的个数
del count_float(list1):
  count1 = 0
  for item in list1:
    if isinstance(item,float) == True:
      count1 += 1
  return count1 
result = count_float([10,9.9,11])
print('这个列表的浮点数一共有%d个'%result)
#练习2:将一个数字列表中所有的元素的值都变成原来的2倍
def double_list(list1:list):
  for index in range(len(list1)):
    list1[index] *= 2
  return list1
#练习3:写一个函数,获取指定元素对应的下标
def index_list(list1:list,a):
  list2=[]
  for index in range(len(list1)):
    if a == list1[index]:
      list2.append(index)
   return list2

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

推荐阅读更多精彩内容