python 1.10 第一阶段的总结

总结

python介绍

  1. 操作系统的分类

    windows
    linux
    mac
    
  2. CPU架构和状态

    ARM架构  mac 安卓
    x86架构  x64 i386
    
    CPU的两种状态
    	内核态
    		控制计算机硬件
    	用户态
    		运行计算机指令
       
    
  3. 硬件和软件的关系

    计算机系统三大件 CPU 内存 硬盘
    
    内存 临时存储  存储IO快,断电丢失数据
    硬盘 永久存储 存储IO慢
    
  4. 程序优化的方向

    性能优化
    	读数据 能从内存中读数据,就不去硬盘内读数据,经常用的数据,提前从硬盘内取出来,缓存在内存中。
    	写数据  数据量不大的情况下(当前机器内存的2分之一),攒一波集中写到硬盘。如果文件体积过大,应该分片 ,一块块的写入硬盘。
    
    
  5. 编程语言的的分类

    软件是什么   是由程序员使用 编程语言 开发出来的一大堆代码的集合
    
    语言类型
    	机器语言
    	汇编语言
    	高级语言
    		解释型语言
    			分别有 shell  python
    			解释型语言有专用的 解释器
    		编译型语言
    			c  c++   java
    			编译型语言有专门的编译器
    	
    	执行效率对比
    		机器语言>汇编语言>高级语言(编译型>解释型)
    	开发效率对比
    		机器语言<汇编语言<高级语言
    
  6. python语言解释

    python解释器的版本
    	python2
    	python3
    	
    	
    	python语言为了和其他语言做集成,分别做了不同语言的解释器
    		默认是Cpython
    		jpython     java
    		ruby python  ruby
    		ironpython   C#
    		
    启动方式
    	1、交互式启动
    		主要是单功能调试和debug代码使用 立马能够看到结果  缺点是不能保存文件
    			
    	2、脚本启动
    		主要功能是启动程序,永久保存文件
    		
    启动过程
    	1、启动解释器,加载环境变量 
    	2、解释器程序从硬盘加载到内存
    	3、开始识别内存数据的python语法
    	
    	
    总结:python 是一个 解释型 强数据类型的语言
    
  7. 面试题总结

    1. Python和Java、PHP、C、C#、C++等其他语言的对比?

      python 是一个 解释型 强数据类型的语言, 可以被不同平台的解释器执行  语法简单,库类强大 开发效率高 对比编译型语言执行效率较低 
      
    2. 简述解释型和编译型编程语言?

      编译器和解释器的作用是把编程语言的代码翻译成计算机能够识别的指令
      解释器在程序运行时 实时翻译代码,运行效率慢
      编译器是编译一次得出可执行的结果,下次使用的时候直接运行结果就可以,不需要再次编译,运行效率高
      
    3. Python解释器种类以及特点?

      默认是Cpython
      Jpython
      icorpython
      rubypytho
      pypy
      
      特点是为了把python代码和自己语言的代码进行集成
      

函数总结

  1. print函数

     print 的功能是打印输出的结果。
    #  \n  换行符
    #  \r  回车
     
     print("哈哈哈哈")            正常print的默认输出结果是带有换行符的 也就是 \n
     print("哈哈哈哈",end="")     输出的结果,排成一行
     
     print("\n")              输出空行
     print("\n"*4)            输出4个空行
     print("bbbbb\n")         输出空一行,输出一行
    
  2. input函数

    接收用户输入的内容
    
  3. len函数

    查看变量的长度
    
  4. range函数

    range(10) # [0,1,2,3,4,5,6,7,8,9]
    range(1,10) # [1,2,3,4,5,6,7,8,9]
    range(1,10,2) # [1,3,5,7,9]
    range(10,1,-1) # [10,9,8,7,6,5,4,3,2]
    
  5. type函数

    查看 数据类型
    
  6. divmod函数

    整型除法计算 商和余数
    
  7. 注释

    # 单行注释 注意留空格
    设置配置项的时候不需要留空格比如
    #IP:192.168.10.1
    
    ''' 
    多行注释
    '''
    
    
    
    
  8. None

    这个值啥都不是 或 表示空。 相当于其他语言中 `null`作用一样。
    
    在一定程度上可以帮助我们去节省内存
    提前定义一个变量名 可以在逻辑代码中使用
    
  9. pass

    保持代码完整性的填充关键字 
    
  10. is ==

    is  比较内存地址id 是否一致
    ==  对比 变量值是否一致
    
    

字符串

  1. 特性

    必须用双引号 或者单引号 括起来
    变量名 1、见面知意
          2、不能使用关键字 不能以数字 特殊字符开头
          3、以小写字符加下划线命令 或者驼峰体
    
  2. 独有方法

    isdecimal 判断字符串是否数字类型
    strip  lstrip  rstrip 去除空格  左边去空格 右边去空格
    字符串 大小写 upper  lower
    字符串 开头startswit  endswith 结尾
    center 字符居中输出 居左ljust  居右rjust等
    字符串切割  split(“”)
    replace 字符替换
    字符串索引 index
    join 链接
    encode 以编码格式存储在硬盘
    decode 以编码格式 解码到内存
    zfill 填充二进制数为多少位
    
    
    
  3. 公共方法

    字符串 运算
    	字符串相乘
    		a*4
    	字符串相加
    		a+b
    len 长度
    
    索引  字符串索引拆分单个字符
    
    字符串的索引可以取到每一个元素,但是不可以更改
    切片  a="1234"
          a[0:2]
    
    字符串的步长 也可以取到每个元素 不可以更改
    [0:-1:-1] 
    0 从头
    -1 到最后 
    - 翻转
    1 步长1
    
  4. 类型转换

    字符串 转字节 必须指定 字符编码 
    .encode()
    
    字节数据转字符串,必须解码
    .decode()
    
    
    字符串以数字的形式可以转成整形 
    
  5. 其他属性

格式化输出

% 输出

%s 表示字符串   %d 数字
print("%s "%(name))

format 输出

aa = " {name}  ".format(name)

f 输出

 3.6以后的版本 可以在{执行函数}
 
f"{name}"

数字

long长整形不讨论

整形

  1. 特性

     作用: 记录个数 ,数值,年龄 月份 高 宽 游戏等级
    
  2. 独有方法 无

  3. 公共方法

  4. 运算

    加 print(123 + 456)
    
    减 print(123 - 111)
    
    乘 print(55 * 2)  # 乘法
    
    除  print(122 % 2) # 除法 取余数
        print(122 / 2) # 除法 有小数
        print(10//3)   # 只取整数
        divmod(10/3)   # 返回 余数 和 小数
    
    
    平方计算 **
    求幂运算  
    
  5. 统计计算

    min 最小数
    
    max
    求 列表内最大数   
    求 字典value的最大数
    
    
    abs 求负数的绝对值
    
    sorted排序
    数字的排序
    
  6. 位运算

    all  all('迭代器')与的运算 
        Return True if bool(x) is True for all values x in the iterable.
        If the iterable is empty, return True.
         传入的元素全都为真才是真,但是可迭代对象是一个空的列表 也为真
    
    any any('迭代器')  或的运算  元素中一个为真,则是真
    
    
    
    
    &与运算  
    |或
    ^ 异或
    ~ 取反
    `<<`,左移动
    `>>`,右移动
    
    一般在 网络协议 算法  底层使用
    
  7. 类型转换

    整数的转换经常发生在 字符串(整数形式的)和数字之间  
    整数除了0 是False  其他都是True
    
    数字之间的进制转换
    	bin 十进制转二进制
    	oct 十进制转八进制
    	hex 十进制转 十六进制
    
    其他进制转十进制
    	int("0b11111",base=2)
    	int("0o11111",base=8)
    	int("0x11111",base=16)
    
  8. 其他属性

浮点型

  1. 独有方法

    小数点 运算使用 round函数 指定小数点位数
    
    
    想要保留小数点后N位
    v1 = 3.1415926
    result = round(v1,3)
    print(result) # 3.142
    
    
    
    在项目中如果遇到精确的小数计算应该怎么办?
    import decimal
    
    v1 = decimal.Decimal("0.1")
    v2 = decimal.Decimal("0.2")
    v3 = v1 + v2
    print(v3) # 0.3
    

运算符优先级

  1. 符号大全

    加  +
    减  -
    乘  *
    除  /   //   %  
    
    ==  等于
    >   大于
    <   小于
    >=  大于等于
    <=  小于等于
    !=  不等于
    
    大于 小于 只能用于数字类型之间进行比较
    加减乘除 > 大于小于 > not > and  >or
    运算优先级 可以使用()进行包裹
    
  2. 赋值运算

    += 
    -=
    *=
    /=
    %=
    **=
    //=
    
    
  3. 成员运算

    not in  不在
    in      在
    
  4. 逻辑运算

and   与      真1  真2 = 真2
or    或      真1  真2 = 真1
not   非     

3个优先级从高到低总结:加减乘除 > 比较 > not and or 。绝招:加括号。

布尔

  1. 特性 真假的状态

    整数0、空字符串、空列表、空元组、空字典转换为布尔值时均为False
    其他均为True
    
  2. 类型转换

    - 其他所有类型转换为布尔类型时,除了 空字符串、0以为其他都是True。
    
    - 字符串转整形时,只有那种 "988" 格式的字符串才可以转换为整形,其他都报错。
    
    - 想要转换为那种类型,就用这类型的英文包裹一下就行。 
    
    

列表

  1. 特性

    列表的特性 有序可变 数据类型
    有序 就可以使用 索引
    可变  就可以修改
    
  2. 独有方法

    append  添加元素
    extend 批量添加元素
    insert 插入元素
    remove 删除元素 没有报错
    pop 删除元素 返回元素值 索引删除
    clear 清空元素
    sort 排序根据 字符编码表
    reverse 反序列表
    
    
    index 根据值获取索引 没有报错
    count 查重元素
    copy 复制列表
    
  3. 公共方法

    运算
    list + list
    list * 4 
    
    in  not in
    判断元素在不在
    
    len 获取长度
    
    
    索引 
    	根据索引 取值 
    	根据索引 赋值
    	根据索引 删值
    切片
    
     步长取值
     翻转 数据排序
    
    
  4. 类型转换

    字符串 转列表  每个元素是一个字符
    元组   转列表  
    集合   转列表  
    
  5. 嵌套

    列表是可变数据类型  可以嵌套使用
    [a:[aa[aaa[aaaa]]]
    

元组

  1. 特性

    有序 不可变的容器
    我儿子永远不能换成是别人,但我儿子可以长大
    
    有序可以使用 索引 步长 
    不可变 不能改变元素数据
    
    tuple=()  元组定义一定加,  不然识别成整型
    
    元组 只能定义使用 没有内置方法 增删改查 
    
  2. 独有方法

  3. 公共方法

    相加
    
    相乘
    
    len获取长度
    
    索引  切片  步长
    只能查看元组的数据值
    
  4. 类型转换

    只有字符串和列表可以转换为元组
    
    元组 使用场景是 用户名 和 密码
    不可变的值 
    tuple = (name,passwd)
    list.append(tuple)
    
  5. 其他属性

集合

  1. 特性

    集合的特性  可变无序,不允许重复的容器
    可变  改变值
    无序  就是没有索引
    
    空集合 使用 code=set{}
    
    常用场景 就是 列表转集合,去重功能,判断元素是否存在 效率高
    
  2. 独有方法

    集合set add添加
    集合set.discard 删除
    
    
    集合的交集 取两个集合相同的元素intersection s3 = s1 & s2
    
    
    集合的并集 取两个集合不同的元素 union  s3 = s1 | s2
    	                 也可以是 |
    集合的差集 
    	s1.difference(s2)              s3 = s1 - s2 
    		取s1 里有的,s2 中没有的  
    
    
  3. 公共方法

  4. 运算

  5. 类型转换

    数字 字符串 列表 元组 字典 都可以转集合  
    
    集合的元素必须是可hash的   列表 和 集合是不可以作为元素的
    
    
    在集合中
    
    整型 0  1 
    布尔 False True 
    
    出现在集合中 前面的自动覆盖后面的
    1   True  -> True
    
    
    v = [11,22,11,22,44455]
    data = set(v) # {11,22,44455}
    
  6. 嵌套

    
    

字典

  1. 特性

    字典的特性  可变 ,元素必须是键值对的容器  键不能重复  有序是在3.6以后的版本
    键必须是可以hash的
    值可以是任意值
    可哈希的类型:int/bool/str/tuple;不可哈希的类型:list/set/dict。
    
    
  2. 独有方法

    字典的功能
    	get   获取值  键不存在,默认返回 None
    	keys  取值所有的键
    	value 取所有的value
    	items 取所有的键和值
    	
    	
    	setdefault 添加新值
    	update 更新值
    	pop 删除键 返回值
    	popitem 后进先删
    	in 判断是否存在
    
  3. 公共方法

    python3.6以后 
    
    字典可以进行两个字典的并集操作去掉相同键
    
    len 长度
    
    in 判断key 是否在列表
    
    索引 步长    取值  赋值  删除 
    
    
    字典中 判断 所有键的值进行大小比较
    max min 
    
    字典中的排序 所有的键记性比较
    sorted()
    
    
  4. 类型转换

    列表转换成字典时,必须以字典的形式转换
    
    
    v4 = list(info.items()) # [ ("age",12), ("status",True), ("name","武沛齐") ]
    
    字典转列表后,是以元组作为列表的元素出现
    
  5. 索引

    dict[0]=123 添加
    dict[0]=123 更新
    删除del dict[0]=123 
    
  6. 其他属性

字符编码

  1. 单位换算

    bit 位
    8位= 1字节
    1024B =1KB
    1024kb = 1mb
    1034mb =1G
    1024G = 1T  等等
    
  2. 面试题 b、B、KB、MB、GB 的关系?

    
    
  3. 字符编码

    人类的文字和计算机的二进制之间的关系对照表
    
    修改pycharm 默认字符编码
    # -*- coding:gbk -*-
    
    计算机所有的数据都是以二进制的形式存放
    ascii 码   通用编码  以一个字节存放 8位
    	
    unicode编码   万国码  以4个字节存放  32位
    有两种分类
       ucs2  2个字节
       ucs4  4个字节
    使用用utf-8 编码 根据文件的编码位数,进行动态调整的 ,
    一个在8位之下那么就使用1一个字节
    一个在16位之内那么就使用2一个字节
    为了节省空间 ,使用固定的模板转换
    
  4. 编码 和解码

    内存的数据进行encode编码成字节,以utf-8 的形式存放,或者发送。
    数据再次加载到内存时,要从字节转成字符,以utf-8编码 还原 。
    
  5. 面试题 乱码出现的原因

    保存数据到文件的使用的字符编码 和打开的文件使用的字符编码不统一
    
  6. 位和字节的关系?

    8位等于一个字节
    

语法

if 语法

if语法
	分支判断 if else 缩进4个空格
	多条件判断 if  elif

while

一般在做无限制(未知)循环此处时使用。
死循环
break
	结束当前循环
continue
	结束本次循环

for 循环

一般应用在已知的循环数量的场景。
条件循环

搭配 range 使用步长  列表 字典 元组 字符串 整形  


posted @ 2021-11-24 19:08  mmszxc  阅读(58)  评论(0)    收藏  举报