zoukankan      html  css  js  c++  java
  • python基础之初始函数

    首先,为什么要使用函数?

    函数的本质来说,就是写一串代码具有某些功能,然后封装起来,接下来可以很方便的调用

    例如。。。然后。。。

    # s = '金老板小护士'
    # len(s) #在这里需求是求字符串s的长度,这个直接用python的内置方法len就行,但是假如len不能用或者有别的需求需要频繁使用怎么办

    # def my_len(): #自定义函数,def关键字,后面函数名
    # i = 0
    # for k in s:
    # i += 1
    # print(i)
    #
    # length = my_len() #这个函数实现了len(s)的功能,但是也只能len(s)
    # print(length) #调用函数就是函数名()

    # 定义了之后,可以在任何需要它的地方调用
    # 没有返回长度,只是单纯的打印
    没有返回值这个可不行,很多时候需要拿这个返回值继续执行别的操作,所以,用 return 返回值 就好了,return还有另外一个作用,当他出现时,函数结束,不往下执行

    返回值的三种情况:
    # 没有返回值 —— 返回None
    # 不写return
    # 只写return:结束一个函数的继续
    # return None —— 不常用
    # 返回1个值
    # 可以返回任何数据类型
    # 只要返回就可以接收到
    # 如果在一个程序中有多个return,那么只执行第一个
    # 返回多个值
    # 用多个变量接收:有多少返回值就用多少变量接收
    # 用一个变量接收: 得到的是一个元组
    
    
    #参数
    #没有参数
    #定义函数和调用函数时括号里都不写内容
    #有一个参数
    #传什么就是什么
    #有多个参数
    #站在实参的角度上:
    #按照位置传参
    #按照关键字传参
    #混着用可以:但是 必须先按照位置传参,再按照关键字传参数
    # 不能给同一个变量传多个值
    #站在形参的角度上
    #位置参数:必须传,且有几个参数就传几个值
    #默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的
    #只有调用函数的时候
    #按照位置传 : 直接写参数的值
    #按照关键字: 关键字 = 值

        3.位置、关键字形式混着用


    复制代码
    def mymax(x,y):
        #此时x = 10,y = 20
        print(x,y)
        the_max = x if x > y else y
        return the_max
    
    ma = mymax(10,y = 20)
    print(ma)
    复制代码

          正确用法

          问题一:位置参数必须在关键字参数的前面

          问题二:对于一个形参只能赋值一次



    #定义函数的时候:
    #位置参数 : 直接定义参数
    #默认参数,关键字参数 :参数名 = '默认的值'
    #动态参数 : 可以接受任意多个参数
    #参数名之前加*,习惯参数名args,
    #参数名之前加**,习惯参数名kwargs
    #顺序:位置参数,*args,默认参数,**kwargs
    #*args   : 接收的是按照位置传参的值,组织成一个元组
    #**kwargs: 接受的是按照关键字传参的值,组织成一个字典
    #args必须在kwargs之前

    #动态参数的另一种传参方式
    # def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
    # print(args)
    #
    # func(1,2,3,4,5)
    # l = [1,2,3,4,5]
    # func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散

    #函数的注释
    # def func():
    # """这个函数实现了某某某功能,
    # 参数1是什么什么作用,return返回的是什么值
    # ,这里放的就是函数的注释
    # :return:
    # """
    
    
    # 如果默认参数的值是一个可变数据类型,
    # 那么每一次调用函数的时候,
    # 如果不传值就公用这个数据类型的资源


    #三元运算    目前知道只能用来返回比较大的值
    # a=3
    # b=2
    # c = a if a>b else b
    # print(c)
    #变量 = 条件返回结果 if 条件 else 条件返回False的结果
    #必须要有结果
    #必须要有if和else
    #只能是简单的情况
  • 相关阅读:
    TreeMap Red-Black tree
    Java实现生产者消费者问题与读者写者问题
    一个对象占用多大内存
    MySQL索引背后的数据结构及算法原理
    Java并发编程与技术内幕:线程池深入理解
    Java Spring 中你不知道的注入方式
    面试中的排序算法总结
    JAVA反射
    StringBuilder与StringBuffer的区别
    Java多线程总结【转】
  • 原文地址:https://www.cnblogs.com/ddjl/p/8118466.html
Copyright © 2011-2022 走看看