python学习-1-python基础

因为工作需要,所以重新稍微正式的学习下python,之前就纯粹拿python当伪代码写,实在不尊重,之后只会记录些自己之前没有注意到的知识点,因此本系列并非教学博客,顶多是学习笔记

关于python

  • 代码无法加密
    • c语言发布程序可以不暴露源码,将exe发布出去,java和把jar包打出去,从机器码反推源码不可能
    • 编译型语言可以加密,而python这种解释型语言不可能
  • python可跨平台

python解释器

  • 官方解释器 CPython, 使用c语言开发
    • 当前使用最广
  • PyPy
    • 目标为运行速度,使用JIT技术,对Python代码动态编译
  • balabala
    • 可以将python代码转为java字节码
    • .net等等

python的数据类型

  • 整数

    • python对于整数范围没有限制
    • 十进制
    • 十六进制
      • 0xff
      • 打印出来显示是十进制255
    • 大数
      • 可以使用_隔开: 10_00 == 1000
  • 浮点数

    • python对于浮点数没有大小限制,超过一定范围表示为inf(无限大)
    • 1.24
    • 1.24e9==1.24*10^9
  • 字符串

    • 可用单引号或双引号,一对即可
    • 内部可使用\转义符 例’
    • \本身可用\表示
      • '\‘t’=='t
    • r’’ 表示字符串里默认不转移
      • '\‘t’==\'t
    • ‘’‘xxx’''中,可以直接使用enter换行表示,不用再输入\n
      • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uFVbEtp0-1653555003311)(../image/Snipaste_2022-05-26_15-33-45.png)]
  • 布尔

  • 空值

    • None 类似于null
  • 变量

    • python中的变量不用考虑类型
    • 原因在于python是动态语言,而诸如java之类的静态语言需要类型匹配,因此动态语言使用起来更加灵活
    • 当a = 'ABC’时: python解释器首先在内存中创建一个’ABC’字符串, 然后在内存中创建一个名为a的变量,将其指向该字符串
  • 常量

    • 全部大写的变量名代表常量
    • 只是一个约定,并不是规则,依然可以改变
  • 除法

    • /精确除法
    • //整数除法,地板除

python的编码

  • 最初的127字符 ASCII
  • 为了显示中文,GB2312
  • Unicode将所有语言整合
    • 它是一个标准,在不断发展
    • 需要固定的空间比较大,在只需要打英文时浪费空间
    • 目前都是使用两个字节表示一个字符
  • UTF-8
    • 可变长的编码
    • 用几个bit开头,表示当前是8位还是16位还是24还是32
    • 会浪费一定空间,但在单一短bit语言时,节省大量空间
    • 兼容ASCII
  • 当前计算机内存中,统一使用Unicode
  • 需要保存到硬盘或传输的时候,为了节省空间,转换为UTF-8
  • ord() 字符的整数表示
  • chr() 编码的字符表示
  • python字符串的编码
    • 内存中是Unicode,一个字符对应若干字节
      • 'ABC’用Unicode是3*2个字节
    • 需要传输或保存时,将其转换为bytes(以字节为单位,每个字符一个字节)
    • b’ABC’ 就是一个bytes类型的对象
      • 它是3个字节
    • 这里的bytes对象,就是bit流,byte流实际上,没啥区别
    • 对字符串编码encode(编码方式) --> bytes
    • 对bytes解码decode(编码方式) --> str
    • 对于少量不能解码的,可以用errors=‘ignore’
    • len()可以计算str字符数,也可以计算bytes的字节数
    • py文件的开头
      • #!/usr/bin/env python3 这个在学shell中也遇到过,就是指定解释器的位置,linux中可用
      • # -*- coding: utf-8 -*- 按照utf-8读取源码

字符串格式化输出

  • 用%实现
    • “hello,%s” % “world” == “hello,world”
    • %d 整数
    • %f 浮点数
    • %s 字符串
    • %x 十六进制整数
    • 不确定用什么时,%s永远可以起作用,
    • %的转义为 %%
  • format()
    • ‘hello,{0},成绩提高了{1:.1f}%’.format(‘小明’,17,125) == ‘hello,小明,成绩提高了17.1%’
    • 第一个为占位符序号,:后面是格式

list

  • -1索引表示最后一个 可以类推-2,-3…
  • 删除末尾元素,list.pop()
  • 删除任意元素,list.pop(i)
  • list中可以有list,可以如此使用a[2][1]

tuple

  • 与list十分相似,tuple一旦初始化就不能修改
  • 因为不能修改,所有就更安全
  • 定义tuple t = (1,2)
  • 定义空的tuple t = ()
  • 定义一个只有一个元素的tuple t = (1,) 用,来消除歧义

dict

  • 使用dict.get()方法时,key不存在也不会报错(None)
  • key必须是不可变对象
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值