美文网首页
2018年6月22日【python学习笔记】

2018年6月22日【python学习笔记】

作者: SlashLife | 来源:发表于2018-06-25 08:39 被阅读0次

    一、函数的返回值

    def 函数名(参数列表)
    说明文字
    函数体

    函数的返回值:1.就是函数调用表达式的值;
    2.就是return关键字后的表达式的值;
    3.就是函数返回给调用者的值
    如何看一个函数的返回值是多少:就看return后面的结果,如果没有return就是none

    • 1.函数调用表达式:就是调用函数的那个表达式(这个表达式是有值的,默认值是none)

      func1()就是一个函数
      
      def func1():
          print('hello world')
      

    func1()就是函数调用表达式,他是一个值;
    普通的值能够做的事情,函数调用表达式都能做;

    例如:给变量赋值,打印(可以作为实参传给函数),运算等

      result = func1()
      print(result, func1())
    
    • 2.return: 1.将值传给函数调用者(函数调用表达式);2.结束函数

      def func2():
          print('hello world')
          # return None 如果函数中国没有return,
          # 就相当于在函数结束的时候,在后面加了一个return none
          return 'aaa'
      result = func2() * 2
      print(result, func2())   # hello world  hello world  aaaaaa aaa
      

    练习:写一个函数,获取两个数的乘积

      def yy_sum(num1, num2):
          return num1 * num2
    
      result = yy_sum(10, 3)
      print(result)
    
    • 3.函数的结束:

    a.没有return,函数体执行完毕,函数结束;
    b.如果函数中有return,遇到return函数就结束。
    程序直接回到函数调用位置,接着往下执行

      def func3():
          print('hello')
          return 10
          print('world')
    
      print(func3())  # hello 10
    

    def download(url):
          下载数据
          if 数据下载失败:
              return '下载失败'
          解释数据
          处理和显示数据
    

    练习:写一个函数,找出100-200之间第一个能被13整除的数

      def yy_sum(num):
          for item in num:
              if item % 13 == 0:
                  print(item)
                  return item
      yy_sum(num=range(100, 201))
    

    二、将列表作为参数

    练习:写一个函数,删除列表中的偶数

      def del_list(list1):
          index = 0
          while index < len(list1):
              if list1[index] % 2 == 0:
                  del list1[index]
                  index -= 1
              index += 1
          print(list1)
      list2 = [1, 2, 3, 4]
      del_list(list2)    # [1, 3]
      # 注意:将列表变量作为实参传递给函数,如果在函数中改变了列表元素,那么原来的列表元素也会改变
      print(list2)    # [1, 3]
    

    三、作用域

    在python中,只有模块、函数和类会产生作用域。在作用域中声明的变量我们叫局部变量
    在产生作用域外的位置声明的变量叫全局变量
    不管是局部变量还是全局变量,都是从声明开始起作用的

    • 1.全局变量(声明在产生作用域外的,使用范围是:从声明开始到整个文件结束的任何位置都可以使用)

      a = 10
      
      print(a)   # 10
      
      if True:
          print(a)  # 10
      
      for x in range(3):
          print('for', a)   # for 10 for 10 for 10
      
      def func1():
          print('func1', a)
      func1()   # func1 10
      
    if 语句、for/while 循环体,是不会产生作用域的;
    相当于写在if、或者循环体中的变量,不改变其变量属性,相当于全局变量。
      if True:
          b = 20    # 在这儿的b也是全局变量
          print('if', b)  # if 20
      print(b)   # 20
    
      while True:
          print('while', b)   # while 20
          break
      def func2():
          print('func2', b)
      func2()  # func2 20
    
    • 2.局部变量:在python中声明在函数和类的变量都是局部变量。

      def func3():
          d = 'a'  # d就是一个局部变量,使用范围就是整个函数,从声明开始到函数结束
          print('func3', d)
      func3()   # func3 a
      
      # print(d)   报错:NameError: name 'd' is not defined
      
    注意:在函数中不能改变全局变量的值,只能使用
      aa = 100  # 全局变量aa
      def func4():
          aa = 200   # 重新声明了一个局部变量 aa,只是重名了
          print('func4', aa)
      func4()  # func4 200
      print(aa)  # 100
    
    • 3.global关键字的使用

      bb = 100  # 全局变量bb
      def func5():
          global bb  # 在这个地方去修改全局变量bb的值为200
          bb = 200
          print('func5', bb)
      func5()  # func5 200
      print(bb)  # 200
      

    相关文章

      网友评论

          本文标题:2018年6月22日【python学习笔记】

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