day004-python运算符与基本数据类型

一、运算符
1、算术运算符:主要用于两个对象算数计算(加减乘除等运算)
运算符:

  +:两个对象相加
  -:得到负数或是一个数减去另一个数
  *:两个数相乘或是返回一个被重复若干次的字符串
  /:x除以y
  %:返回除法的余数
  **:返回x的y次幂
  //:返回商的整数部分
2、比较(关系)运算符:用于两个对象比较(判断是否相等、大于等运算)
运算符:

  ==:比较对象是否相等
  !=:比较两个对象是否不相等
  <>: 比较两个对象是否不相等
  >: 返回x是否大于y
  <: 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。注意,这些变量名的大写。
  >=: 返回x是否大于等于y
  <=: 返回x是否小于等于y

3、赋值运算符:用于对象的赋值,将运算符右边的值(或计算结果)赋给运算符左边。
运算符:

  =: 简单的赋值运算符
  +=: 加法赋值运算符
  -=: 减法赋值运算符
  *=: 乘法赋值运算符
  /=: 除法赋值运算符
  %=: 取模赋值运算符
  **=: 幂赋值运算符
  //=: 取整除赋值运算符

4、逻辑运算符:用于逻辑运算(与或非等)。
运算符:

  and: 并运算符
  or: 且运算符
  not: 非运算符

5、位运算符: 对Python对象进行按照存储的bit操作。
运算符:

  &: 按位与运算符:参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
  |: 按位或运算符:只要对应的二个二进位有一个为1时,结果位就为1。
  ^: 按位异或运算符:当两对应的二进位相异时,结果为1
  ~: 按位取反运算符:对数据的每个二进制位取反,即把1变为0,把0变为1
  <<: 左移动运算符:运算数的各二进位全部左移若干位,由"<<"右边的数指定移动的位数,高位丢弃,低位补0
  >>: 右移动运算符:把">>"左边的运算数的各二进位全部右移若干位,">>"右边的数指定移动的位数

6、成员运算符:判断一个对象是否包含另一个对象。
运算符:

  in: 如果在指定的序列中找到值返回 True,否则返回 False
  not in: 如果在指定的序列中没有找到值返回 True,否则返回 False
7、身份运算符:判断是不是引用自一个对象
运算符:

  is: 判断两个标识符是不是引用自一个对象
  is not: is not是判断两个标识符是不是引用自不同对象

二、基本数据类型

1、数字: int(整数)
2、字符串(str)
  a.创建方式
    s1 = "name"
    s2 = str('myname')

  b.特有功能
    s1.upper() #转换为大写
    s1.find() #查询字符
    s1.replace() #替换
    s1.strip() #去掉首尾空白处

  utf-8编码:一个汉字,是3个字节,1个字节是8位
  c.编码、for:
    name = "李露"
    for i in name:
    print(i)
    bytes_list = bytes(i, encoding='utf-8')
    print(bytes_list)
    for b in bytes_list:
  1、python3.5 for循环时候,循环的每一个元素是“字符”
  2、字符 =》字节

    bytes_list = bytes("字符串", encoding='utf-8')

  #utf-8 => 3字节
  #gbk => 2字节
    print(bytes_list) #默认每一个字节都是16进制表示
    for b in bytes_list:
    print(b) #默认每一个字节都是10进制表示
  3、10进制的数字 ==》2进制
    bin(10进制的数字)

  4、byte 和str
    st = str()
    a.创建字符串
    b.转换成字符串、字节、编码、for
    m = bytes()
    a.创建字节
    b.转换成字节,字符串,要编程什么编码类型的字节

3、布尔值
4、元组(tuple)
  a.创建元组
    t = (11,21,33)
    t1 = tuple()
  b.特有功能
    t= tuple()
    t.count()
    t.index()
  c.嵌套(元素不可修改)

5、列表(list)
   可变元素的“集合”
   a.创建列表:
    li = [11,22,33]
    li = list() #创建一个列表

   b.将其他元素转换成列表
    字符串、元组、字典 =》列表
    t2 =("name","age")
    l2 = list(t2)

  c.特有功能
    li = list()
    li.append() #向列表中添加数据
    li.clear() #清除
    li.extend() #批量增加、扩展
    li.reverse() #翻转,自己内部元素翻转
    li.insert() #向指定的位置插入元素

6、字典(dict)

三、基本数据类型之set(set是一个无序且不允许重复的集合)
  1)创建
    a. se = set() #创建一个空集合
    b. se = {11,22,33,44}
  2)实例:
    li = [11,222,11,2]
    s1 = set(li)
    s1 = [2,11,222]
  3)set提供的方法
    a. add() #添加一个元素
    b. clear() #清空集合内容
    c. copy() #全拷贝
    d. difference #找不同的集合,并将新值赋值给新变量
    例:
      se = {11,22,33}
      be = {22,55}
      #找se中存在,be中不存在的集合,并将新值赋值给新变量
      ret = se.difference(be)
      print(ret)
      #找be中存在,se中不存在的集合
      ret = be.difference(se)
      print(ret)

    e. difference_update() #找不同的集合,并更新自己
      例:
      ss = {11,22,33}
      bbb = {22,55}
      #找se中存在,be中不存在的集合,并更新自己
      ss.difference_update(bb)
      print(ss)
      #找be中存在,se中不存在的集合,并更新自己
      bb.difference_update(ss)
      print(bb)

    f. discare()、remove() #移除指定的元素
      例:
      se = {11,22,33}
      se.discare(11)
      print(se) ==>{22,33}

    g. intersection() #找交集,并将新值赋值给新变量

    h. intersection_update() #找交集,并更新自己

    i. isdisjoint() #有交集为False, 没交集为True

    j. issubset() #是否子集合,是子集合为True,否则为False

    k. issuperset() #是否是父集合,是父集合为True,否则为False

    l. union() #并集

四、三元运算

  普通的条件语句
    if 1 == 1:
      name = "hello"
    else:
      name = "world"

  三元运算语句
    #如果条件成立,则将值1赋值给name,否则将值2赋值给name
    name = 值1 if 条件 else 值2

五、不同数据类型在内存中的存址方式

  a. 字符串srt,一次性创建,不能被修改,只要修改,再创建
  b. 列表list, 链表,下一个元素的位置,上一下元素的位置

六、深浅拷贝
  1)深拷贝:在内存中将所有的数据重新创建一份(排除最后一层,即python内部对字符串和数字的优化)
  2)浅拷贝:在内存中只额外创建第一层数据
  3)赋值:只是创建一个变量,该变量指向原来的内存地址。

  a. 对于数字和字符串而言,赋值、浅拷贝和深拷贝无意义,因为其永远指向同一个内存地址。

  b. 对于字典、元组和列表而言,赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的

原文地址:https://www.cnblogs.com/june-L/p/11489071.html