• Python基础语法


    冯诺依曼体系架构

    1. CPU:由运算器和控制器组成(CPU中还有寄存器和多级缓存Cache)
      运算器:完成各种算数运算、逻辑运算、数据传输等数据加工处理
      控制器:控制程序的执行
    2. 存储器:用于记忆程序和数据,例如内存(Memory)
    3. 输入设备:将数据或程序输入到计算机中,例如键盘,鼠标
    4. 输出设备:将数据或程序的处理结果展示给用户,例如显示器,打印机等

    运算器、控制器、存储器、输入输出设备 称为冯诺依曼体系架构五大部件
    在这里插入图片描述

    程序

    • 程序=算法+数据结构
    • 数据是一切程序的核心
    • 数据结构是数据在计算机中的类型和组织方式
    • 算法是处理数据的方式,算法有优劣之分

    基础语法

    字符串

    • r 前缀:在字符串前面加上 r 或者 R 前缀,表示该字符串不做特殊的处理,回归本义
    # 未加 r 前缀
    > C = 'windows
    vidia'
    > print(C)
    > windows
        vidia
        
    # 加上 r 前缀
    > C = r'windows
    vidia'
    > print(C)
    > windows
    vidia
    
    # 
     在Python中表示换行符;  前缀 r ,把里面的所有字符当普通字符对待
    
    • f 前缀:3.6版本开始 ,新增 f 前缀,格式化字符串
    # 未加 f 前缀
    > a = 'yinx1n'
    > "He name is {a}"
    > 'He name is {a}'
    
    # 加上 f 前缀
    > a = 'yinx1n'
    > f"He name is {a}"
    > 'He name is yinx1n'
    

    转义序列

    • ’ "
    • 前缀 r ,把里面的所有字符当普通字符对待

    标识符

    1. 一个名字,用来指代一个值
    2. 只能是字母、下划线和数字
    3. 只能以字母或下划线开头(不建议以下划线开头)
    4. 不能是Python的关键字,例如def、class就不能作为标识符
    5. Python大小写是敏感的
      约定:
      不允许使用中文
      不要使用歧义单词,例如class_
      在Python中不要随便使用下划线开头的标识符

    常量

    • 一旦赋值就不能改变值的标识符
    • Python中无法定义常量

    变量

    • 赋值后,可以改变值的标识符

    字面常量

    • 一个单独的量,例如12、“abc”、‘2341356514.03e-9’

    Python的语言类型

    • Python是动态语言、强类型语言
    • 静态编译语言
      • 事先声明变量类型,类型不能再改变,用之前事先声明
      • 编译时检查
    • 动态编译语言
      • 优:不用事先声明变量类型,随时可以赋值为其他类型,用的时候可以直接赋值
      • 缺:编程时不知道是什么类型,很难推断
    • 强类型语言
      • 不同类型之间操作,必须先强制类型转换为同一类型。print(‘a’+1)
    • 弱类型语言
      • 不同类型间可以操作,自动隐式转换,JavaScript中console.log(1+‘a’)

    原码、反码、补码,负数表示法

    机器数
    一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为1

    比如,十进制中的数 +4 ,转换成二进制就是 0000 0100,如果是 -4 ,就是 1000 0100

    那么,这里的 0000 0100 和 1000 0100 就是机器数

    真值
    将带符号位的机器数对应的真正数值称为机器数的真值
    例如:0000 0100 的真值 = +000 0001 = +1,1000 0100 的真值 = –000 0001 = –1

    原码
    符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值

    (0000 1111, 1000 1111)

    即:

    (15, -15)

    原码是人脑最容易理解和计算的表示方式

    反码
    正数的反码与原码相同,负数的反码是在其原码的基础上, 符号位不变,其余按位取反

    [+1] = [0000 0001]原 = [0000 0001]反
    [-1] = [1000 0001]原 = [1111 1110]反

    补码
    正数的补码与原码相同,负数的补码在其原码的基础上,符号位不变,其余按位取反后+1

    [+1] = [0000 0001]原 = [0000 0001]反 = [0000 0001]补
    [-1] = [1000 0001]原 = [1111 1110]反 = [1111 1111]补

    负数表示法

    • 早期数字电路的CPU中的运算器实现了加法器,没有减法器,减法要转换成加法
    • 负数在计算机中使用补码存储,-1 的补码为1111 1111

    运算符

    位运算符

    • 按位与&:按位与是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位都为 1,则此位为 1,否则为 0
    • 按位或 |:按位或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位有一个为 1,则此位为 1,否则为 0
    • 按位异或^:按位异或是针对二进制数的操作,指将两个二进制数的每一位都进行比较,如果两个相应的二进位不同,则此位为 1,相同为 0
    • 按位取反~:按位取反也称作“按位取非”或“求非”或“取反”,是针对二进制数的操作,指将两个二进制数的每一二进位都进行取反操作,0 换成 1,1 换成 0

    逻辑运算符

    • 与或非 and or not

    短路运算符

    • and 如果前面的表达式等价为False,后面就没有必要计算了,这个逻辑表达式一定等价位False
      - 1 and ‘2’ and 0
      - 0 and ‘abc’ and 1
    • or 如果前面的表达式等价位True,后面就没有必要计算了,这个逻辑表达式一定等价为True
      - 1 or False or None

    真值表

    对象/常量
    “” 空字符串
    “string”
    0
    >=1
    <=-1
    ()空元组
    []空列表
    {}空字典
    None
    • False等价 布尔值,相当于bool(value)
      • 空容器:

        • 空集合set
        • 空字典dict
        • 空列表list
        • 空元祖tuple
      • 空字符串" "

      • None对象

      • 0

    成员运算符:in、not in
    身份运算符:is、not is

    运算符优先级

    • 算数运算符 > 比较运算符 > 逻辑运算符
    • 单目运算符 > 双目运算符
    • 记不住,用括号
    • 长表达式,多用括号,易读、易懂

    表达式Expression

    • 由数字、符号、括号、变量等的组合
      • 算数表达式
      • 逻辑表达式
      • 赋值表达式
        • Python中,赋值即定义,如果一个变量已经定义,赋值相当于重新定义

    内存管理

    内存碎片整理好,整理出大量的连续空间

    • 变量无须事项声明,也不需要指定类型,这是动态语言的特性
    • Python编程中一般无须关心变量的存亡,一般也不用关心内存的管理
    • Python使用引用计数记录所有对象的引用数
      • 当对象引用数变为 0,它就可以被垃圾回收GC(Garbage Collection)
      • 计数增加:
        • 赋值给其它变量就增加引用计数,例如 x = 3;y = z;z = [x, 1]
        • 实参传参,如foo(y)
      • 计数减少:
        • 函数结束运行时,局部变量就会被自动销毁,对象引用计数减少
        • 变量被赋值给其它对象,例如 x = 3,y = x,x = 4
    • 有关性能的时候,就需要考虑变量的引用问题,但是该释放内存还是尽量不释放内存,看需求
  • 相关阅读:
    换个格式输出整数
    c++入门构造函数
    接口继承与实现
    spring mvc 之@requestmapping
    RabbitMQ
    Socket通信原理
    TCP三次握手与四次挥手
    WIN 10家庭版没有Hyper-V
    aop 切面demo
    JVM之旅------jvm内存模型
  • 原文地址:https://www.cnblogs.com/d1anlong/p/11868779.html
Copyright © 2020-2023  润新知