zoukankan      html  css  js  c++  java
  • 函数一

    初始函数

    s = ‘好好学习’
    def my_len():    #定义函数(声明函数)
        i = 0
        for k in s:  #中间部分只有函数调用时才会执行
            i += 1
        print(i)
    my_len()         #调用函数

    此函数的特点:定义了之后可以在任何需要它的地方调用;没有返回值,只是单纯的打印
    自定义函数:

    def my_len():
        i = 0
        for k in s:
            i += 1
        return i       #返回值
    length = my_len()  #函数调用

    返回值的三种情况
    返回一个值:可以返回任何数据类型,只要返回就可以接收到
    返回多个值:多个返回值用多个变量接收,有几个值就用几个变量;用一个变量接收得到的是一个元组。
    没有返回值:①不写return
                    ②只写return:结束一个函数的继续
                          ③return None
    如果再一个程序中有多个return,则只执行第一个。
    形参和实参:

    def my_len(s):        #自定义函数,接收参数;形参
        i = 0
        for k in s:
            i += 1
        return i
    ret = my_len(s)        #参数传递;实参
    或者 ret = my_len('加油')  #把‘加油’传给def  my_len(s)中的s
    print(ret)

    参数:①没有参数(定义函数和调用函数时括号里都不写内容)
                ②有一个参数(传什么就是什么)
                ③有多个参数:  

        站在实参的角度上:

                ①按位置传参数(按位置传递1—>a  2-->b)
                   ②按关键字传参(如:ret = my_len(b=1,a=2)
                ③混着用可以但是必须先按照位置传参,再按照关键字,不能给同一个变量传多个值
                 站在形参的角度上:

                             ①位置参数(必须传而且有几个参数传几个值)
                             ②默认值参数:可以不传,如果不传就默认,传了就用传的
    只有调用函数时

    ①按位置传:直接写参数的值
    ②按关键字传:关键字 = 值
    定义函数时

    ①位置参数:直接定义参数
    ②默认参数(关键字):参数名 = 默认值
    ③顺序:必须先定义位置参数,再*args,再定义默认参数,最后**kwargs
    ④动态参数:有多少个参数都可以;

      def sum(*args):
          n = 0
          for i in args:
              n += i
          return n
      print(sum(1,2))       #结果:3
      print(sum(1,2,3,4))    #结果:10

    动态参数
    *args:可以接收按照位置传参的值,组成一个元组,但不能接收关键字参数。
    **kwargs:可以接收多个咱找关键字传来的参数,组成一个字典(*args必须再**kwargs之前)

    def func(**kwargs):
        print(kwargs)
    func(a=1,b=2,c=3)
    func(a=1,b=2)
    func(a=1)
    #结果:{'a':1,'b':2,'c':3}
          {'a':1,'b':2}
          {'a':1}

    动态参数的另一种传参方式:
    站在实参的角度上:给一个序列(列表,元组)加上*,就是将这个序列按顺序打散
    站在形参的角度上:给变量加上*就是组合所有传来的值

     def func(*args);
          print(args)
          li = [1,2,3,4]
     func(*li)
     #结果:(1,2,3,4)

    函数的注释:

    def func():
        '''
        参数1:
        参数2:
        :return:返回值时啥
        '''
        pass
    
  • 相关阅读:
    MRC和ARC混合开发
    创建静态库.a
    IOS 数据存储之 FMDB 详解
    AFNETWorking的使用
    日历demo
    iOS开发系列--通知与消息机制
    paypal支付说明
    支付宝路径的问题
    iOS开发多线程篇—GCD介绍
    回调的具体最弱智的解释
  • 原文地址:https://www.cnblogs.com/twinkle-/p/10488460.html
Copyright © 2011-2022 走看看