day08_python_函数

函数

没有函数时会有什么问题?

同样的代码需要写多次
一个功能的需求发生改变需要修改的地方太多
什么是函数:函数就是对实现某一功能的代码实现封装

函数的分类:内置函数和自定义函数。

内置函数:系统写好的函数,可以直接使用,例如:print函数,input函数,sum函数
自定义函数:程序员自己去创建的函数,

函数的声明:(不会执行函数体)

a. 固定格式
def 函数名(参数列表):
函数体
b. 说明:
def :python中声明函数的关键字
函数名:标识符,不能是关键字,PEP8(所有字母小写,多个单词用下划线隔开),见名知意
():固定格式,必须写
参数列表:参数1,参数2,参数3.。。,也可以没有参数
参数的作用是从函数的外面,向函数里面传值用的(将数据从函数外面传到里面)
函数体():实现函数功能的代码段。函数体里面可能会包含 return

注意:函数只有调用才会执行

函数调用

a.固定格式:
函数名()

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

函数的调用过程(重要)

a. 回到函数声明的位置
b. 使用实参给形参赋值(传参)
c. 执行函数体
d. 将返回值返回给函数调用者
e. 回到函数调用的地方,接着往后执行

# 写一个函数,打印一个整数的阶乘,N! = 12*3*4.....*N

def jie_chen(n):
    m = 1
    for i in range(1,n+1):
        m *= i
    print(m)
jie_chen(5)

参数:声明函数的时候的参数列表叫形参调用函数的时候,参数列表中的参数叫实参
传参:传参的过程就是使用实参给形参赋值的过程,一定保证每个形参都要有值

实参

位置参数:传参时实参的位置和形参的位置一一对应(第一个实参传给第一个形参,第二个实参传给第二个形参)
关键字参数:函数调用的时候通过'形参名=实参'的形式来传参

def fun1(a,b,c=0):
    print(a,b,c)
#位置参数
fun1(1,2,3)
#关键字参数
fun1(b=1,c=2,a=3)
#关键字和位置参数结合
fun1(1,2,4)

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

def fun2(a=9,b='a',c=True):
    print(a,b,c)

fun2(b='d')

不定个数参数
python通过在形参名前加*,让折耳根形参变为一个元祖,
来让这个形参可以同时接受多个形参。多个包含0个

写一个函数,计算多个数的和

def sum2(*i):
    sum1 = 0
    print(i,type(i))
    for item in list(i[0]):
        sum1 += int(item)
        print(sum1)

l = '13141451'
sum2(l)

def sum3(a,b,*c):
    print(a,b,c)
sum3('班级','分数',23,23,32,52,)

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

def func4(name:str,age:int,score:list):
    print(name,age)
    score.append(name)
    print('====')
func4('abc',1,[1,2,41,])
return

返回值:函数的返回值就是return关键字后面的表达式的值,就是函数
调用表达式的结果
python中所有的函数都有返回值,默认是None

####写一个函数,打印'hello'
def say_hello():
    print('hello')
#用一个变量保存函数调用的结果
re = say_hello()
print(re)

return关键字(return只能写在函数体)
a.确定返回值
b.结束函数(函数只要遇到return,函数就直接结束)

def fun1(n):
    print(n)
    return 100
 #   print('=====') # 不会执行

re = fun1(10)
print(re)

注意:看一个函数的返回值是多少,不是看函数中有没有return,而是看函数有没有遇到return.
遇到了就返回return后面的结果,否则就返回None

def judge(number):
    if not number%2:
        return True
    else:
        return False
print(judge(7))

什么时候函数需要返回值
只要实现函数功能会产生新的数据,就通过返回值将新的数据返回,而不是打印它
补充:判断一个值是否是指定的类型

isinstance(值,类型)---->返回值是布尔

1.写一个函数,统计列表中浮点数的个数


print(isinstance(10.0,int))
print(isinstance(10.0,str))
print(isinstance(True,int))
def statistic(lst:list):
    n = 0
    for num in lst:
        if isinstance(num,float):
            n += 1
    return n

2.将一个数字列表中所有元素的值都变为原来的二倍


def multiply(lst:list):
    for i in range(len(lst)):
        lst[i] = lst[i]*2
    return lst
def index(n,lst:list):
lst1 = []
for i in range(len(lst)):
if n == lst[i]:
lst1.append(i)
return lst1

3.写一个函数,获取指定元素对应的下标


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

推荐阅读更多精彩内容

  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,952评论 17 410
  • 一、 return 1、函数返回值: a、就是函数返回给调用者的值b、就是return关键字后面的表达式的值c、就...
    七夜_174e阅读 511评论 0 5
  • 第5章 函数和函数式编程 5.1 引言函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数...
    VIVAFT阅读 953评论 0 5
  • 一百年来废除读经,不读古书的结果,就是如此!身为北大校长,在百廿年校庆之际,众目睽睽之下,成为白字先生,这不...
    書生元正阅读 4,681评论 9 4
  • 昨天中午技术部开会,年底还要做最后一个项目,年后上来就需要提交。加上春节及调休的假期,真正留给我们做项目的时...
    小小小_燕子阅读 77评论 0 0