zoukankan      html  css  js  c++  java
  • 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. 对于字典、元组和列表而言,赋值、浅拷贝和深拷贝时,其内存地址的变化是不同的

  • 相关阅读:
    Servlet-RequestDispatcher.forward方法
    Servlet---RequestDispatcher.include方法
    解决用了vertical-align: middle,但是文字图片依旧不居中的问题
    vue项目中rem适配问题
    微信小程序之使用ecarts---详细步骤
    微信公众号之input输入框获取焦点后,底部固定定位的按钮顶起问题解决办法
    微信公众号开发之解决IOS点击input 、textarea页面错位的问题
    微信小程序用navigationStyle自定义导航栏做法
    微信小程序 mpvue + picker
    PyCharm怎么整理(格式化)当前代码
  • 原文地址:https://www.cnblogs.com/june-L/p/11489071.html
Copyright © 2011-2022 走看看