函数

一、对函数的理解

  函数是组织好的,可重复使用的,用来实现单一,或者实现相关联的代码块

  1、def语句和参数


    # name是一个变元也相当于一个变量
    def hello(name):
      print('hello '+name)

    # Bob,Joed都是参数

    hello('Bob')
    hello('Joe')


  2、返回值和return语句

  • return是关键字
  • 函数应该返回的值或表达式

      # 导入random模块
      import random

      # 定义getAnswer()函数
      def getAnswer(answerNumber):
        if answerNumber==1:
          return 'It is certain'
        elif answerNumber==2:
          return 'hello world '*3
        elif answerNumber ==3:
          return 'ok'
      # 输出1到9之间的随机一个整数 存在变量r中
      r = random.randint(1, 3)
      # getAnswer()被调用,r作为参数,返回一个字符串并赋给变量fortune
      fortune = getAnswer(r)
      # 最后打印输出
      print(fortune)


 

    后三行代码还可以缩写为一行代码

      print(getAnswer(random.randint(1,9)))

 

  3、None值

    表示的含义就是没有值(首字母必须大写)


 

      spam = print('123')
      print(spam)
      None ==spam

 

      #结果返回None


  4、关键字参数和print()

    ①关键字参数:是由函数调用时加载他们前面的关键字来识别的。关键字通常用于可选变元

    ②print()函数有可选变元end和sep,分别制定参数末尾打印什么。以及参数之间打印什么来隔开   


 

    print('hello', end='+'*5)
    print('world')
    # 运行结果hello+++++world


    sep是替换掉默认的分隔符

  5、局部和全局作用域

  • 局部变量:所处局部作用域,在函数的内部
  • 全局变量:处于全局作用域,在函数的外部
  • 全局作用域中的代码不能使用任何局部变量,但是,局部变量可以访问全局变量
  • 一个函数的局部作用域中的代码,不能使用其他作用域中的局部变量
  • 两个不同作用域的局部变量可以使用同一个变量名

    ①局部变量不能在全局作用域使用    


      def spam():

        eggs = 31337
      spam()
      print(eggs)


 

    

    ②局部作用域不能使用其他局部作用域的变量


      def spam():
        eggs = 31337
        bacon()
        print(eggs)

      def bacon():
        ham =101
        eggs = 0
      spam()


 

 

 

     ③全局变量可以在局部作用域中读取

  


      def spam():
        print(eggs)
      eggs = 42
      spam()


 

     ④应该避免在不同作用域使用相同的变量名(追踪在什么时候使用哪个变量比较方便)

  6、global语句

    在函数内将局部变量转换为全局变量就得使用变量名前加global  


 

      def spam():
        global eggs
        eggs = 33
      spam()
      print(eggs)


上一节       下一节   返回目录 

 

posted @ 2021-01-02 14:22  贫僧敲代码  阅读(102)  评论(0)    收藏  举报