• 第七天


    1.全局变量要顶头写(没有缩进)在程序的任何位置都可以调用。

    2.局部变量:在函数中定义,只能在函数中使用,主程序中无法调用。

    3.怎么让函数中的局部变量变成全局标量;在局部变量里加上global

    4.在子函数中变量先从子涵数中找如果没有,再往上一层找,知道找到最近的为止。

    5.==和!=等操作符用来比较两个相同或者不同的集合,等价的是集合的元素并不与集合的顺序无关:

    复制代码
    set_01 = set('who')
    set_02 = set('how')
    print(set_01,set_02)
    if set_01 == set_02:
        print('ok')
    else:
        print('bad')
    结果是
    {'h', 'o', 'w'} {'h', 'o', 'w'}
    ok
    复制代码

    6.字典的一些规范: 每一个键只能对应一个键值,不允许一个建对应多个值;字典的键是不可以改变的;如果字典的键是数字,则类型相同则代表见相同

    7.如果函数中无global关键字,我可以读取全局变量,无法对全局变量重新赋值

    8.如果函数中有全局变量global,这个变量基本上是可以读取可以赋值。

    9.局部变量和全局变量的案列:

    复制代码
    name = '刚娘'            全局变量    第一步
    def weihao():           第二部步将程序调入到内存中
    
        def weiweihao():     第四步将此函数调入到内存中
    
            name ='冷静'        局部变量
            print(name)      第六步·打印此函数的变量(注:先找函数里的如果没有在找上一层 函数找)
        weiweihao()           第五步调用此函数
        print(name)          第七步打印全局变量
    weihao()               第三部调用函数
    结果是
    冷静
    刚娘
    复制代码

    10对于全局变量如果是可变类型,在函数中可以对内部元素进行操作:

    复制代码
    NAME = ['产品经理','利奥十世']
    def yangjing():
        NAME.append('jflkj')
        print(NAME)
    print(NAME)
    yangjing()
    结果是:
    ['产品经理', '利奥十世']
    ['产品经理', '利奥十世', 'jflkj']
    复制代码

    11.在函数中如果要定义全局变量而且要重新定义:则顺序为:先定义全局变量在声称变量(否则会报错);而且在打印时先从此函数找起。

    复制代码
    NAME = ['产品经理','利奥十世']
    def queen():
    
        global NAME
        NAME = '自己'
        print(NAME)
    queen()
    结果是:
    自己
    复制代码

    12.函数局部变量和全部变量的输出问题:同第9个;

    复制代码
    name = '刚娘'           第一步
    def weihao():           第二步调入内存
        name ='陈卓'      第五步
        def weiweihao():    第六步
            global name    第八步
            name ='冷静'      第九步
        weiweihao()        第七步
        print(name)         第十步
    print(name)             第三步
    weihao()            第四步
    结果是
    刚娘
    陈卓
    复制代码

    13.风湿病的问题:函数及变量:

    复制代码
    1.会报错
    def bar():
        print('from bar')
    foo()
    def foo():
        print('from foo')
        bar()
    2.不会报错
    def bar():
        print('from bar')
    def foo():
        print('from foo')
        bar()
    foo()
    3.不会报错
    def foo():
        print('from foo')
        bar()
    def bar():
        print('from bar')
    
    foo()
    复制代码

    原因如下

  • 相关阅读:
    tensorflow学习3---mnist
    tensorflow学习2-线性拟合和神经网路拟合
    关于泛型数据结构中OrderBy的使用
    敏捷开发之观察者模式
    敏捷开发之设计文档
    C#算法实现获取树的高度
    武林高手?敏捷开发,唯velocity取胜
    C#接口多继承方法重名问题
    .Net平台技术栈?不止于此
    浅谈C#中Tuple和Func的使用
  • 原文地址:https://www.cnblogs.com/ab461087603/p/11823371.html
Copyright © 2020-2023  润新知