zoukankan      html  css  js  c++  java
  • python基础知识总结

    一、python的优缺点

      优点:

    1. 优美、清晰、简单
    2. 高级语言
    3. 开发效率高
    4. 可移植性、可拓展性、可嵌入性

      缺点:

    1. 运行速度慢
    2. 代码不能加密
    3. 线程不能利用多CPU

    二、python2与python3的区别

      代码:

    1. python2:代码混乱,重复代码较多,冗余
    2. python3:代码崇尚优美、清晰、简单

      print:

    1. python2:print是一个语句
    2. python3:print是一个函数

      input:

    1. python2:raw_input()接收字符串,input()接收数字
    2. python3:input()接收的全部是字符串

      编码方式:

    1. python2:默认编码是ASCII码(若想使用中文:#_*_coding:utf-8_*_)
    2. python3:默认编码是utf-8,支持中文

      不等运算符:

    1. python2:可以使用!=或者><
    2. python3:只能使用!=

      创建迭代计数器:

    1. python2:xrange
    2. python3:range

      repr:

    1. python2:repr可以是语句
    2. python3:只允许使用repr()函数

      文件:

    1. python2:可以使用!=或者><
    2. python3:只能使用!=

      整型:

    1. python2:存在long型
    2. python3:全部为int型

      修改语法:

    1. python2:字典的keys,values,items以及map,filter,reduce返回的都是一个列表
    2. python3:字典的keys,values,items以及map,filter,reduce返回一个可迭代对象

      新增语法:

    1. python2:print和exec语句,无nolocal等方法
    2. python3:print和exec改为函数,新增nolocal等方法

      继承:

    1. python2:默认经典类(新式类需要(object))
    2. python3:只有新式类

    三、开发的种类

      编译型

      缺点:排错慢,开发效率低,不可移植

      优点:执行效率高

      典型:C语言,go语言

      解释型

      缺点:执行效率低

      优点:排错快,开发效率高,可移植

      典型:python,PHP

      混合型

      典型:java,C#

    四、python的种类

      Cpython:基于C语言开发的

      lpython

      Jpython

      PyPy:目前执行最快的

    五、变量与常量

      常量:一直不变的量,约定俗称,全部大写为常量

      变量:把程序的运行结果存放在内存中,以便后期代码的调用

      要求:

    1. 必须由数字、字母、下划线组成
    2. 不能以数字开头
    3. 不能是关键字
    4. 不能是中文,不能太长,要有可描述性
    5. 官网推荐下划线old_boy和驼峰体OldBoy

    六、语句

      if语句

       elif分支判断

      while语句

       flag(标志位)

       break(完全结束循环)

       continue(跳出本次循环)

       else(循环正常退出执行)

      for语句 

       break(完全结束循环)

       continue(跳出本次循环)

       else(循环正常退出执行)

      in,not in

    s = '老男孩alexwusir'
    print('老男孩' in s)    # True
    print('老男孩wusir' in s)    # False
    print('老男' in s)    # True
    print('老男' not in s)    # False
    
    # 结果表明在一个字符串中,用一个母字符串中包含的定义的子字符串必须是连续的为True,不连续是False,in表示包含,not in表示非包含

    七、逻辑运算符

    # and or not
    # 第一种:前后都是比较运算。
    # 优先级:()> not > and > or 同一个优先级,从左至右依次计算。
    print(1 > 2 and 3 < 4 and 3 > 2 or 2 < 3)  # True
    print(2 > 1 and 3 < 4 or 4 > 5 and 2 < 1)  # True
    print(1 > 2 and 3 < 4 or 4 > 5 and 2 > 1 or 9 < 8)  # False
    # 第二种:前后都是数值运算。
    '''
    x or y if x True,则 return x,否则 return y
    '''
    print(1 or 3)  # 1print(2 or 3)  # 2
    print(0 or 3)  # 3
    print(-1 or 3)  # -1
    print(1 and 2)  # 2
    print(0 and 2)  # 0
    
    # 第三种:混合。
    print(1 > 2 or 3 and 4)  # 4
    print(2 or 2 > 3 and 4)  # 2
    print(0 or 2 > 3 and 4)  # False
    
    #数据类型转换:
    '''
    int ---> bool  非0即True,0为False
    bool---> int  True  1  False 0
    print(int(True))
    print(int(False))
    print(bool(100))
    print(bool(0))
    '''

    八、格式化输出

    #% 占位符 s str 字符串 d digit 数字
    #第一种:
    name = input('请输入你的姓名:')
    age = input('请输入你的年龄:')
    hobby = input('请输入你的爱好:')
    msg = '我叫%s,今年%d岁,爱好%s' % (name,int(age),hobby)
    print(msg)
    #第二种
    dic = {'name':'老男孩','age':51,'hobby':'无所谓'}
    msg = '我叫%(name)s,今年%(age)d岁,爱好%(hobby)s' % dic
    print(msg)
    
    #在格式化输出中单纯的显示%  用%% 解决。
    name = input('请输入你的姓名:')
    age = input('请输入你的年龄:')
    msg = '我叫%s,今年%d岁,学习进度为1%%' % (name,int(age))
    print(msg)

    九、编码

      一、基本概念

      1,发电报:滴滴滴滴 实际是高低电平。
       密码本:
       今 0000 0001
       天 0000 0101
       喝 0000 0011
       酒 0000 1100
       去 0001 1010
       呀 0001 0001

       0010010 1000011 1100101 010001

      2,计算机在存储,和传输的时候, 01010101
            初期密码本:
        asiic 包含数字,英文,特殊字符。八位
        01000001 01000010 01000011 A B C
        8位 = 1 byte 表示一个字符。

        万国码unicode,将所有国家的语言包含在这个密码本。
        初期:16位,两个字节,表示一个字符。
        A : 00010000 00010010
        中: 00010010 00010010
        升级:32位,四个字节,表示一个字符。
        A : 00010000 00010010 00010000 00010010
        中: 00010010 00010010 00010010 00010010
        资源浪费。

        升级:utf-8。最少用8位(一个字节),表示一个字符。
        英文:a :00010000 用8位表示一个字符。
        欧洲:00010000 00010000 16位两个字节表示一个字符。
        亚洲 中 :00010000 00010000 00010000 24位,三个字节表示一个字符。

        utf-16

        gbk:国标。
        只包含:英文中文。
        英文:a :00010000 8位,一个字节表示一个字符。
        中文:中:00010000 00010000 16位,两个字节表示一个字符。
        gb2312.....

        8 bit = 1byte
        1024byte=1kb
        1024kb = 1MB
        1024MB = 1GB
        1024GB = 1TB

      二、用法 

        存储和传输是0101,但是不可以使用Unicode编码进行传输

        python3中的编码:python3中str在内存中的编码方式是Unicode。python3中的str不能直接存储和发送。

        bytes的编码方式是非Unicode(UTF-8,GBK,GB2312....)

        对于英文:str表现形式: s = 'qiujie' 
        内部编码为:Unicode
        byte表现形式s = b'kuoiea'
        内部编码形式为非unicode

        对于中文:str表现形式: s = '中国' 
        内部编码为:Unicode
        byte表现形式s = b'xe4xb8xadxe5x9bxbd'
        内部编码形式为非unicode


        encode编码:将str类型转换成byte类型
        decode解码:将byte类型转换成str类型

    s = 'alex'
    s1 = s.encode('utf-8')  # unicode ---> utf-8 编码
    s3 = s1.decode('utf-8')  # utf-8 ---> unicode 解码
    print(s3)
    
    # s = 'alex'
    # s1 = s.encode('gbk')  # unicode ---> gbk 编码
    # s3 = s1.decode('gbk')  # gbk ---> unicode 解码
    # print(s3)
    
    #gbk ---> utf-8
    # s = 'alex'
    # s1 = s.encode('gbk')
    # print(s1)
    #
    # s2 = s1.decode('gbk').encode('utf-8')
    # print(s2)

      python基础思维导图链接:https://www.processon.com/view/link/5ae71b80e4b019d3a919be99

      

  • 相关阅读:
    半主机模式和_MICROLIB 库
    工作中常用的git命令
    Mybatis延迟加载参数配置
    JUnit展示图形化测试结果
    可读、可维护、可扩展,原则、模式与重构
    乐观锁和悲观锁
    HashMap实现原理和底层数据结构?
    视图有啥用?
    单例模式常见有哪几种?
    RPC服务和HTTP服务的区别
  • 原文地址:https://www.cnblogs.com/qiujie/p/8973459.html
Copyright © 2011-2022 走看看