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 面向对象编程
    
  • 相关阅读:
    安装django时出错
    mysql ------python3(一)笔记
    安装mysql的具体过程
    Python3web框架---Django、Tornado、Flask的对比
    python3-----json函数
    图片人脸识别年龄和性别
    urllib库的使用(三)-----python3 异常处理
    python 3 基础篇 (一)
    requests,pymysql,django的安装
    求素数方法的改进
  • 原文地址:https://www.cnblogs.com/surpass123/p/13224755.html
Copyright © 2011-2022 走看看