zoukankan      html  css  js  c++  java
  • 初识函数

    函数的定义

    #函数的定义
    def meylen():
        '''计算s1的长度'''
        s1 = 'hello world'
        length = 0
        for i in s1:
            length = length + 1
        print(length)
    #函数的调用
    mylen()

    总结一

    定义:def关键字开头,空格之后接函数名称和括号(),最后有一个‘:’

       def是固定的,不能变,必须是连续的def三个字母,不能分开

       空格 为了将def关键字和函数名分开,必须空4格

       函数名:函数名只能包含字符串,下划线和数字且不能以数字开头。

    注释:每一个函数都应该对功能和参数进行相应的说明,应该写在函数下面的第一行,增加函数的可读性

    调用:就是函数名()要记得加上括号

    函数的返回值

    return关键字的作用

      return是一个关键字,这个词翻译过来就是‘返回’

    没有返回值

      不写return的情况下,会默认返回一个none

    def mylen():
        """计算s1的长度"""
        s1 = "hello world"
        length = 0
        for i in s1:
            length = length+1
        print(length)
    
    #函数调用
    str_len = mylen()
    #因为没有返回值,此时的str_len为None
    print('str_len : %s'%str_len)

      只写return,后面不写其他的内容,也会返回none

    def ret_demo():
        print(111)
        return
        print(222)
    
    ret = ret_demo()
    print(ret)

    return none:和上面的两种情况一样

    返回一个值:

    def mylen():
        s1 = 'hello word'
        length = 0
        for i in s1:
            length = length + 1
        return length
    
    str_len = mylen()
    print('str_len:%s'%str_len)

    注意:return和返回值之间要有空格,可以返回任意数据类型的值

    返回多个值

      可以返回任意多个、任意数据类型的值

    def ret_demo1():
        return 1,2,3,4
    
    def ret_demo2():
        return 1,['a','b'],3,4
    
    ret1 = ret_demo1()
    print(ret1)
    ret2 = ret_demo2()
    print(ret2)

    返回的多个值会被组织称元组被返回,也可以用多个值来接收

    def ret_demo2():
        return1,['a','b'],3,4
    
    a,b,c,d =  ret_demo2()
    print(a,b,c,d)

    函数的参数

    def mylen(s1):
        length = 0 
        for i in s1:
            length = length + 1
         retrun length
    str_len = mylen('hello world')
    print('str_len:%s'%str_len)

    实参和形参

    参数还有分别:

    我们调用函数时传递的参数叫做实际参数,简称实参。定义函数时的s1,只是一个变量的名字,被称为形式参数,简称形参

    传递多个参数

    参数可以传递多个,多个参数之间用逗号分割

    def mymax(x,y):
        the_max = x if x>y else y
        return the_max
    ma = mymax(10,20)
    print(ma)

    位置参数

      站在实参的角度

      1.按照位置传值

    def mymax(x,y):
        the_max = x if x>y else y
        return the_max
    ma = mymax(10,20)
    print(ma)

      2.按照关键字传值

    def mymax(x,y):
        print(x,y)
        the_max = x if x>y else y
        return the_max
    ma = mymax(y=10,x=20)
    print(ma)

      3.位置关键字形式混用

    def mymax(x,y):
        print(x,y)
        the_max = x if x>y else y
        return the_max
    ma = mymax(10,y=20)
    print(ma)

      正确用法

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

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

    站在形参的角度

      位置参数必须传值

    默认参数

      1.正常使用

        使用方法

        为什么要有默认参数:将变化比较小的值设置成默认参数

      2.默认参数的定义

    def stu_info(name,sex='male'):
        print(name,sex)
    
    stu_info('alex')
    stu_info('eva','female')

      3.参数陷阱:默认参数是一个可变数据类型

    def defult_param(a,l=[]):
        l.append(a)    
        print(l)
    
    defult_param('alex')
    defult_param('egon')

    动态参数

      按位置传值多余的参数都有args统一接受,保存成一个元组的形式

    def  mysum(*args):
        the_sum = 0
        for i in args:
            the_sum+=i
        return the_sum
    
    the_sum = mysum(1,2,3,4)
    print(the_sum)
    def stu_info(**kwargs):
        print(kwargs)
        print(kwargs['name],kwargs['sex'])
    
    stu_info(name = 'alex',sex = 'male')
  • 相关阅读:
    [Swift]LeetCode1249. 移除无效的括号 | Minimum Remove to Make Valid Parentheses
    [Swift]LeetCode1240. 铺瓷砖 | Tiling a Rectangle with the Fewest Squares
    一位资深程序员大牛给予Java初学者的学习路线建议
    Java基础——集合源码解析 List List 接口
    Java定时任务调度详解
    Java实现CORS跨域请求
    假如时光倒流,我会这么学习Java
    Java后端程序员1年工作经验总结
    20个高级Java面试题汇总
    JVM内幕:Java虚拟机详解
  • 原文地址:https://www.cnblogs.com/KrisYzy/p/11157657.html
Copyright © 2011-2022 走看看