变量和数据类型

注释

单行注释

  • 单行注释用#开头

多行注释

  • 单引号(''')
  • 双引号(""")

行与缩进

多行语句

变量

命名

  • 变量名只能是 字母、数字或下划线的任意组合 变量名的第一个字符不能是数字 关键字不能声明为变量名(import keyword查看关键字)

定义

  • 变量名不要用中文、拼音 变量名不要过长 变量名要见名知意、驼峰命名法

特性

  • 程序是从上到下执行的,所以变量必须先定义,后调用, 否则会报错

核心数据类型

可变与不可变类型

  • 不可变类型
    • 值发生改变,地址变的是地址指向
      • 整型int
      • 浮点数float
        • 需要考虑精度问题
      • 布尔类型bool
        • 为0的数字,包括0,0.0 空字符串,包括”,”“ 表示空值的None 空集合,包括(),[],{}
      • 字符串类型str
        • 引号嵌套 多行字符串用三引号 反斜杠()取消换行
        • len()返回字符串长度
        • 索引取值
          • 切片
        • .strip()去除首尾空格,.strip(‘#’)去除首尾#号
        • .lstrip()去除字符串左边; .rstip()去除字符串右边
        • .split()默认空格切分;.split(',')以.符号切分字符串;split(' ',1) 切割次数
        • .rsplit()从右边开始切割
        • '符号'.join()拼接字符
        • .replace('A','B',1)替换字符串中A为B 替换一次(默认全部替换)
        • .find('A', 0, 5) 从0索引位开始到5号索引但不包括5号索引位;.rfind()从右边开始查找;没找到会返回-1
        • .index(‘A’, 0 ,5) 从0索引位开始到5号索引但不包括5号索引位,没找到会报错
        • 转义字符反斜杠(\)
      • 元组
        • 定义()
          • 不允许修改和删除元素
          • 添加元素 tuple1 + tuple2
  • 可变类型
    • 值发生改变,改变地址上的值
      • 列表
        • 定义[]
          • 索引
          • 切片
          • len(list)长度
          • 添加元素
            • list.append() 添加在末尾
            • list.extned() 在列表末尾添加多个值
            • list.insert(1) 在1号索引位插入值
          • 修改元素
          • 删除元素
            • list.pop(2) 删除列表中的一个元素(默认不输入是末尾)
            • list.remove(‘a’)删除列表中的a元素,不存在a则会报错
            • del list[1] 删除1号索引的元素
          • list.sort()排序默认为升序;设置参数reverse=Ture则位降序;字符串按ASCII码排序
      • 字典
        • 定义{key:value}(key唯一,value可以不唯一)
          • 添加
            • dict[key] = value
            • 自由主题
          • 修改
            • dict[key] = value
          • 删除
            • del dict[key]
            • dict.pop(key)删除一个key
            • dict.clear 清空整个字典
          • {}.fromkeys(list, tuple)组成一个以list为key,以tuple为value的字典
          • dict.keys()获得所有key
          • dict.values()获得所有键值对
          • dict.get('name', 'SADC')获得name的值,没有则返回‘SADC’(默认返回None)
          • dict.update(dict2)将dict2的键值对添加到dict中
      • 集合
        • 定义set()空集合或者{1,3,4},元素必须是不可变元素,并且集合中的元素是唯一的,无序的
          • 添加
            • set.add()
            • set.update(set2)向set中添加集合set2
          • 删除
            • s.remove(val)删除指定val元素不存在会报错
            • s.discard( x )删除指定x元素,不存在不会报错
            • s.pop()随机删除元素
            • s.clear()清空集合
          • set1 - set2 (集合的差)
          • set1 & set2(集合的交)
          • set1 | set2(集合的并)
          • set1 ^ set2(集合的对称差)

is 和 ==

  • == 比较值
  • is 比较地址
  • id()查看地址

浅拷贝和深拷贝

  • 使用copy.copy(),可以进行对象的浅拷贝。
  • 可以使用copy.deepcopy()进行深拷贝
  • 对于不可变类型(如数字、字符串等等)没有被拷贝一说
  • 如果元组变量只包含不可变类型,则不能深拷贝。
  • 要注意可变类型的浅拷贝,深层次不会产生新的内存去存储变量

type()查看数据类型

类型转换

int()

bool()

float()

str()

list()

set()

dict()

\