美文网首页
day9 function基础

day9 function基础

作者: _最美不是下雨天_ | 来源:发表于2019-01-04 19:57 被阅读0次

一、函数

没有函数的时候的问题:
1.同样的代码要写多次
2.一旦功能要修改,需要修改的地方太多

一、函数

1.什么是函数

函数就是对实现某一特定功能的代码段的封装

2.函数的分类

系统函数:系统已经定义好的函数,程序员直接调用
print(),input(),id().......
自定义函数:需要程序员自己去定义的函数

3.函数的定义

a.语法:
def 函数名(参数列表):
函数体
b.说明
def -Python中声明函数的关键字
函数名 -标识符,不能是关键字;
pep8命名规范,见名知意
() -固定格式
参数列表 -参数1,参数2,参数3....;这儿叫形参
定义的时候形参就是变量
功能是将函数外面的数据传递到函数里面
:-固定格式
函数体 - 一个完整的函数体应当有:函数说明文档、实现函数功能的代码段、函数返回值
b.初学者声明函数的步骤:
第一步:确定函数的功能
第二步:根据功能命名
第三步:确定形参(确定需不需要参数,确定需要几个参数)
看实现函数的功能需不需要从函数外面传值进来?需要传几个?
第四步:实现函数的功能
第五步:确定函数返回值
注意:函数在声明的时候是不会执行函数体的,只有在调用的时候才会执行
4.函数的调用 -使用机器
a.语法:函数名(实参列表)
b.说明:
函数名 -这个函数对应的函数必须是已经声明过的函数
() -固定写法
实参列表 -实参是用来给形参赋值的(用实参给形参赋值的过程叫传参)
实参和形参要一一对应
**c.函数的调用过程(重点!!!)
第一步:回到函数声明的位置
第二步:用实参给形参赋值(传参)
第三步:执行函数体
第四步:执行完函数体就确定并返回返回值
第五步:再回到函数调用的位置,接着执行后面的其他代码
**
写一个函数,求两个数的和

def sum1(a,b):
    '''
    求两个函数的和(函数功能说明)
    :param a: 求和第一个数
    :param b: 求和第二个数
    :return: 和
    '''
    return a+b

声明一个函数,打印指定列表中指定元素对应的下标:

def w_list(list,i):
   n=0
   count=0
   while n<len(list):
       if list[n]==i:
            print(n)
            count+=1
       n+=1
   if count == 0:
       print('没有找到该记录!')
w_list([1,2,3,4,5,5,6,7],'qw')

声明一个函数,打印指定的n!

def jiecheng(num):
    '''
    求一个数的阶乘
    :param 要求的数的阶乘:
    :return: 返回阶乘
    '''
    sum=1
    i=1
    while i<=num:
        sum*=i
        i+=1
    return sum
print(jiecheng(5))

随机产生一个0-100的数字,用户不断输入数字,直到输入的和产生的数字一样,错了提示‘大了、小了’这样提示

import random
def numgame():
    num1=random.randint(1,100)
    count=0
    while True:
        num2=int(input('请输入一个数字:'))
        if num1>num2:
            print('小了')
            count+=1
            continue
        elif num1<num2:
            print('大了')
            count+=1
            continue
        else:
            print('恭喜您,回答正确!')
            break
    if count<10:
        print('天才')
    else:
        print('SB')
numgame()

二、函数参数

1.位置参数和关键字参数(根据实参的传递方式对参数进行的分类)
a.位置参数:实参的位置和形参保持一致,按形参的声明的先后顺序赋值一一赋值
b.关键字参数:调用函数的时候以形参=实参的方式来传参,这个时候实参的顺序无所谓

def function1(a,b,c):
    print(a,b,c)
function1(10,2,3)#通过位置参数传参
function1(c=1,b=2,a=34) #通过关键字传参
function1(10,20,c=23)#通过设置参数和关键字参数结合传参(注意:关键字参数必须在位置参数后面)

2.参数默认值
声明函数的时候,可以给参数赋默认值。如果一个形参有默认值,那么调用函数的时候可以不用传参
注意:如果有的形参有默认值,有的形参没有默认值,那么有默认值得形参要放到没有默认形参后面
调用函数要保证每个参数都有值!

def func2(a,b,c=1):
    print(a,b,c)
func2(3,4)#参数c有默认值,调用函数的时候c可以不用传参

3.参数的类型说明 -类型说明只有提示功能,没有约束功能
a.给参数设置默认值,默认值得类型就是参数的类型
b.在形参后面加 :类型名,来说明参数类型。这种方式调用的时候必须传参
如果一个参数给了默认值,就不能再这样加说明
c.函数声明的时候在()后面加 ->类型名,来说明函数返回值的类型
类型说明的好处:a.对实参的类型进行指导 b.实现函数功能的时候有类型相关的语法提示
4.不定长参数 --函数的参数个数不确定(不定长参数必须放在最后)
a.在声明函数的时候,在参数名前加,可以用来同事获取多个实参的值
实质是将
的参数编成元组,将多个实参的值作为元组的个数
b.在参数名前加两个,必须使用关键字参数,且将关键字作为key,参数值作为value存为一个字典
注意:两个必须放在一个的后面
*

写一个函数,计算多个数的和,要求可以使用位置参数和关键字参数
def wg_sum(*num1,**num2):
    sum1=0
    sum2=0
    for i in num1:
        sum1+=i
    for n in num2:
        sum2 +=num2[n]
    return sum1+sum2
print(wg_sum(1,2,34,999,a=12))

三.函数返回值

a.就是函数体中调用表达式的值,就是return关键字后面表达式的值,将函数里面的数据传递到函数外面
函数调用表达式 ---调用函数的语句
b.Python中每个函数都有返回值,默认是None
return -关键字,只能卸载函数体中。功能:1.确定函数的返回值 2.结束函数
执行函数的时候如果遇到return,函数直接结束,并且将return后面的值作为函数的返回值、
函数执行过程:
返回函数声明位置
传参
执行函数体
执行完函数确定返回值 -如果执行过程中没有遇到return 返回值就是None
--如果执行过程中遇到了return,return后面是什么返回值就是什么
回到函数调用的位置 (这个时候函数调用的表达式的值就是函数的返回值)
2.多个返回值
return 值1,值2,值3...--->return(值1,值2,值3)
3.怎么确定函数是否需要返回值
实现函数的功能如果会产生新的数据,就将这个数据用return返回

def func3():
    return 1,2,3
print(func3())

相关文章

  • day9 function基础

    一、函数 没有函数的时候的问题:1.同样的代码要写多次2.一旦功能要修改,需要修改的地方太多 一、函数 1.什么是...

  • DAY9 Pthon基础:using the function

    01-return value of function 02-list be parameter 03-作用域 0...

  • 2018-10-25day9数据库基础

    数据库基础 day9数据库基础

  • Day9 Function 函数

    导入random模块import random 一、函数 1.什么是函数 函数就是对实现某一特定功能的代码段的封装...

  • Go基础——function

    函数的声明 在 Go 语言中,函数声明通用语法如下: func:函数的声明以关键词 。 function_name...

  • JS-函数

    1.函数基础 函数参数 函数写法:function func(){}var func=function(){}经常...

  • 移动端自适应 js代码

    function setHTML() { // 基础值 var baseVal = 100; // 设...

  • JavaScript基础 函数function()

    函数 声明一个函数时,函数内部即使变量的错误(没被声明),只要函数没有执行,就不会报错;如果语法错误没执行也会报错...

  • JavaScript基础-函数function

    1、在JavaScript中,定义函数的方式如下: function abs(x) { //或者 var ...

  • *R语言基础function

    生成随机数部分原帖地址:https://zhuanlan.zhihu.com/p/72859263[https:/...

网友评论

      本文标题:day9 function基础

      本文链接:https://www.haomeiwen.com/subject/jugkrqtx.html