zoukankan      html  css  js  c++  java
  • python基础复习

    python基础复习

    解释型语言和编译型语言

    # 主流的编译型语言
    C语言:编译型语言,跨平台运行
    java:编译型语言,一处编码,处处运行(编译过程:将java源代码编译成字节码文件.class,---不能运行在操作系统上---jvm(Java虚拟机))
    go:编译型,跨平台编译(windows平台可以编译出mac平台的可执行文件),所有go代码打成一个可执行文件
        
    # 解释型语言
    python: 强类型动态语言
    js:只能在浏览器中运行,nodejs
    php:web开发
    

    基本数据类型

    # type与object的关系
    (1)python中一切皆对象,类也是一个对象
    (2)python中所有的类(除了object类)都继承于object
    
    基于以上的两点,我们可以得到以下的结论:
    (1)type和object的类都是type;
    (2)type类是继承于object
    

    深浅拷贝

    # 一切皆对象的好处
    不同类型的变量之间可以相互赋值,如a=100,a='lxx'
    其本质上,因为变量指向的是一个内存地址,因此会出现深浅拷贝的问题
    
    from copy import copy
    from copy import deepcopy
    
    beast = ['lxx','egon','jason']
    person = beast # 直接赋值
    print(beast is person) # True
    

    u1 = ['egon',[18,'female'],['dbj','hecha']]
    u2 = copy(u1)
    u2[1][1] = 'male'
    u2[0] = 'alex'
    print(u2) # ['alex', [18, 'male'], ['dbj', 'hecha']]
    print(u1) # ['egon', [18, 'male'], ['dbj', 'hecha']]
    
    # 浅拷贝只拷贝列表的父对象的内存地址,而不会拷贝子对象的内存地址
    

    u1 = ['egon',[18,'female'],['dbj','hecha']]
    u2 = deepcopy(u1)
    u2[1][1] = 'male'
    u2[0] = 'alex'
    print(u2)  # ['alex', [18, 'male'], ['dbj', 'hecha']]
    print(u1)  # ['egon', [18, 'female'], ['dbj', 'hecha']]
    

    可变数据类型与不可变数据类型

    #字典,列表,集合   可变类型
    #数字,字符串,元组  不可变类型
    # 字典的key必须用不可变类型,可以hash    
    # 看一下这篇博客
    https://www.cnblogs.com/xiaoyuanqujing/articles/12008689.html
    # python中的参数传递是值传递还是引用传递?
    python中参数传递都是copy一份传递过去,由于一切皆对象,传过去,都是地址,python中区分可变和不可变类型,可变类型在函数中修改会影响原来的,不可变类型,不会影响原来的
    

    字符编码

    # 计算机的计量单位:
    bit比特位:0或者1的一个小格
    8个bit位是一个byte,一个字节
    1024个字节---》1kb
    1024kb---》1mb
    1024mb---》1gb
    
    1个字节---》2的8次方中变化,就可以表示出所有的字符(数字,字母,标点符号)
    
    计算机到了中国---》中国汉字--》gbk编码
    但是到了不同国家,不同国家有不同国家编码方式,就会出现乱码问题
    
    Unicode编码统一了,字符和数字的对应关系
    
    utf-8:目前主流的编码方式
    utf-16
    
    需要说清楚:assic码,gbk,unicode,utf-8
    

    闭包函数

    1 定义在函数内部
    2 对外部作用域有引用
    
    函数是一等公民:函数可以赋值给一个变量
    # 装饰器是闭包函数的典型应用
    # python中有装饰器语法糖  @
    
    def wrapper(func):
        def inner(*args,**kwargs):
            # 代码
            res=func(*args,**kwargs)
            # 代码
            return res
        return inner
    
    # def a():
    #     print("xxx")
       
    # 没有语法糖 
    # a=wrapper(a)
    # a()
    
    # 有语法糖
    # @wrapper()
    def a():
        print("xxx")
        
    # 面向切面编程 AOP
    # OOP 面向对象编程
    
  • 相关阅读:
    centos8 将SSSD配置为使用LDAP并要求TLS身份验证
    Centos8 搭建 kafka2.8 .net5 简单使用kafka
    .net core 3.1 ActionFilter 拦截器 偶然 OnActionExecuting 中HttpContext.Session.Id 为空字符串 的问题
    Springboot根据不同环境加载对应的配置
    VMware Workstation12 安装 Centos8.3
    .net core json配置文件小结
    springboot mybatisplus createtime和updatetime自动填充
    .net core autofac依赖注入简洁版
    .Net Core 使用 redis 存储 session
    .Net Core 接入 RocketMQ
  • 原文地址:https://www.cnblogs.com/surpass123/p/13224755.html
Copyright © 2011-2022 走看看