zoukankan      html  css  js  c++  java
  • Python全栈Day 15部分知识点

    全局变量与局部变量

      约定俗成的规则:全局变量名大写,局部变量名小写。

      全局变量没有缩进,顶格写。

      如果函数的内容无global关键字,优先读取局部变量,能读取全局变量,无法重新赋值,但是对于可变类型,可以对内部元素进行操作;如果有global关键字,变量本质上就是全局的那个变量,可读取可赋值。

      风湿理论:函数即变量

    1 #!/usr/bin/env python
    2 # -*- coding:utf-8 -*-
    3 hobby=['music','play']
    4 def test():
    5         hobby.append('draw')
    6         print('my hobby is:',hobby)
    7 test()

    输出

    my hobby is: ['music', 'play', 'draw']

    错误示例
    1
    #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 hobby=['music','play'] 4 def test(): 5 hobby='what' 6 global hobby   7 print('my hobby is:',hobby) 8 test()

    输出

    C:Python3.7.0python3.exe F:/PycharmProjects/python_s3/day15/全局&局部变量.py
    File "F:/PycharmProjects/python_s3/day15/全局&局部变量.py", line 6
    global hobby
    ^
    SyntaxError: name 'hobby' is assigned to before global declaration

    Process finished with exit code 1

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 name='刚娘'
     4 def weihou():
     5     name='陈卓'
     6     def weiweihou():
     7         global name
     8         name='冷静'
     9     weiweihou()
    10     print(name)
    11 print(name)
    12 weihou()
    13 print(name)

    输出

    刚娘
    陈卓
    冷静

      

      nonlocal指定上一级变量

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 name='刚娘'
     4 def weihou():
     5     name='陈卓'
     6     def weiweihou():
     7         nonlocal name
     8         name='冷静'
     9     weiweihou()
    10     print(name)
    11 print(name)
    12 weihou()
    13 print(name)

    输出

    刚娘
    冷静
    刚娘

    函数递归

      一个函数在自己内部调用自己。

      函数反复调用不叫循环,叫递归。栈保存,占用内存。箱子里套箱子,无限套,总会有极限。递归到最后以后一层层返回

      特性:

        ——必须有一个明确的结束条件

        ——每进入更深一层递归时,问题规模相比上次递归都应有所减少

        ——递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调用是通过栈这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧,由于栈的大小不是无限的,所以,递归调用次数过多会导致栈溢出)

  • 相关阅读:
    C++中整型变量的存储大小和范围
    A1038 Recover the Smallest Number (30 分)
    A1067 Sort with Swap(0, i) (25 分)
    A1037 Magic Coupon (25 分)
    A1033 To Fill or Not to Fill (25 分)
    A1070 Mooncake (25 分)
    js 获取控件
    C#代码对SQL数据库添加表或者视图
    JS 动态操作表格
    jQuery取得下拉框选择的文本与值
  • 原文地址:https://www.cnblogs.com/chenyuan-1995/p/9660974.html
Copyright © 2011-2022 走看看