python数据类型强制转换和运算符

 # Number 强制类型转换

   (1) int 强制类型转换整型

   将浮点型数据强制转换成整型,它会默认将小数点后的数值舍去,不存在四舍五入
   将布尔值强制转换成整型,它会默认将True和False的值转变为1和0
   复数不能强制转化成整型,它会报错
   字符串能够强制转化为整型,但首先字符串必须是全数字,否则不行,会报错

   int只能对   int   float   bool   str(必须是全数字) 进行转换

  # (1) float 强制转换为浮点型

   将整型强制转化为浮点型,它会默认在整型之后面加上小数点.0
   将布尔值强制转化为浮点型,它会默认将Ture和False的值转化为1.0和0.0
   复数不能转化为浮点型,它会报错
   字符串能够强制转化为浮点型,但首先字符串必须是全数字,否则不行,会报错

  # (3) complex 强制转化为复数

   将整型强制转化为复数,它会默认在整型后面加上 0j
   将浮点型强制转换为复数,同上
   将布尔值强制转化为复数,它会将True转化为 1+0j,False转化为 0j
   将字符串强制转化为复数,但首先字符串必须是全数字,否则不行,会报错

  # (4) bool 强制转化为布尔类型 结果只有两种 要么True 要么False

  # bool 可以转换所有的数据类型均为True

  # 唯独有以下十种情况 会为False   0   0.0    0j   False   ‘‘空   ()空元祖     []空列表    set()空集合    None

  # None 系统关键字 无特殊意义 代表啥也没有一般用于初始化变量的时候用

 # 容器类型强制转换 (str list tuple set dict) 只能相互转换,不能转换Number数据类型

      (1) str 所有数据类型都可以强制转化成字符串str
        规律:   在原有类型基础上,在外套一层引号即可
        repr   打印出字符串类型的那个引号(原型化输出)

     (2) list 所有数据类型都可以强制转化为列表list
         规律:强制转换:如果是字符串,把字符串当中的每一个字符当成列表
            中的新元素,其它都是在原有数据类型上,在外面套一个[]即可

      将字符串强制转化为列表时,它会在外套一层  []  同时里面的字符也会一一显示出字符串的引号
       将字典强制转化为列表型时,它会在外套一层  []  同时只保留字典里的键,而忽略字典里的值

      (3) tuple 所有数据类型都可以强制转化为元组tuple
         规律:强制转换:如果是字符串,把字符串当中的每一个字符当成列表
                    中的新元素,其它都是在原有数据类型上,在外面套一个 () 即可

         将字典强制转化为元组时,它会在外套一层  ()  同时只保留字典里的键,而忽略字典里的值

(4) set 所有数据类型都可以强制转化为集合set
              规律:强制转换:如果是字符串,把字符串当中的每一个字符当成列表
              中的新元素,(列表中的字符串会无序排列,因为集合本是无序排列)
              其它都是在原有数据类型上,在外面套一个  {}  即可

      # 将字典强制转化为集合时,它会在外套一层{}同时只保留字典里的键,而忽略字典里的值

   (5) dict 强制转化为字典类型

   # 多级容器数据: 该类型是容器数据,并且里面的元素还是容器类型数据

   # ## 二级容器

   # 二级列表
    listvar = [1,2,3,4,5[6,7,8,9]]

   # 二级元组
    tuplevar = (1,2,3,4,5(6,7,8,9))

   # 二级集合 (只能在里面放元组作为集合里面的容器数据,只能放可哈希不可变的数据)
    setvar = {1,2,3,(4,5,6)}

   # 二级字典
    dictvar = {‘a‘:{‘c‘:3},‘b‘:2}

   # 四级容器

    content = [1,2,3,4,(4,6,{‘a‘:{4,5,6,7,8},‘b‘:2},7),5]

   # 等长的二级容器

    ‘‘‘
    首先容器是两个,代表二级容器
    每一个容器元素个数都是一样的叫做等长
    ‘‘‘
    listvar = [(1,2,3,4),(5,6,7,8)]
    tupvar = ([1,2],[3,4],[5,6])

   # ## dict 强制转换成字典: (里面的元素只能是两个)

   # (1) 外面是列表,里面是 列表、元组、字符串(元素个数只能是两个,否则会报错)
    listvar = [[‘a‘,1],(‘b‘,2)]

   # (2) 外面是元组,里面是列表、元组、字符串
    tupvar = ([‘c‘,3],(‘d‘,33))

   # (3) 外面是集合,里面是元组、字符串

    setvar ={(‘a‘,1),(‘b‘,2)}

   # 总结:
    ‘‘‘
    容器类型数据强转:
    str()   tuple()   list()   set()   dict() 都能转换成对应的数据类型
    Number数据类型强转:
    int()   float()   bool()    complex() 都能转换成对应的数据类型

    可以强转函数值进行初始化
    ‘‘‘

 # 变量存储的缓存机制 (为了节省空间)

  # (1)Number (int float bool complex)

  # int (整型类取值在-5~正无穷范围内,取两个相同的值,
  # 这两个值得地址就相同,若超过这个取值范围,地址就不同)

  # float (浮点型取值只要是非负数,值得地址就相同)

  # bool (在布尔值相同的情况下,值得地址相同)

  # complex (在实数加虚数的情况下,永远不一样,只有虚数的情况下,就会一样)

  # (2)容器类型数据 (str list tuple set dict)

  # str (字符串值相同情况下,值得地址是一样的)
  # list   tuple   set   dict (无论啥情况,值得地址都不一样)
  # 例外: (空元祖的值得地址是一样的)

  # # python 运算符

  # (1) 算数运算符: + - * / //地板除 %取余 **幂运算

  #    /  (除法,结果一定是小数)
  #   //  地板除(整除) (如果相除的两个含有小数,那么就在结果上加上.0)

  var1 = -7
  var2 = 4
  res = var1 % var2
  print(res) => 1
  # 把-7的负号拿走,然后7 - 4 = 3
  # 算出结果,再把负号拿回来变成-3
  # 这时在与4相加,-3 + 4 = 1
  # 就可求得整除的结果

  var1 = 7
  varl = -4
  res = var1 % var2
  print(res) => -1

  # 跟上述同理,先7 - 4 = 3
  # 然后再用3 + (-4)
  # 就可求得整除的结果

 # ## 比较运算符   >    <    >=    <=    ==等于    !=不等于

  # 比较运算符就只有两种结果,要么是True 要么是False

  ‘‘‘
  是两个等号,不是一个等号,1个等号是在做变量的赋值,两个是比较是否相同
  ‘‘‘

  # ### 身份运算符 is 和 is not (检测两个数据在内存中是否是同一个值)

  var1 = 5
  varl = 6
  print(id(var1),id(var2))

  # is 用来判断两个变量的地址是否一致
  res = var1 is var2
  print(res) => True

  res = var1 is not var2
  print(res) => False

  # var1 == var2 与 var1 is var2 的区别
  ‘‘‘
  一个是比较两个值是否相同
  一个是比较两个值的地址是否相同
  ‘‘‘

 # ### 逻辑运算符 and or not

  # and 与
  ‘‘‘全真则真,一假则假‘‘‘
  res = True and True => True
  res = True and False => False
  res = False and True => False
  res = False and False => False
  print(res)

  # or 或
  ‘‘‘全真则真,全假则假,(一假一真,一真一假 => 都为真)‘‘‘
  res = True or True => True
  res = True or False => True
  res = False or True => True
  res = False or False => False
  print(res)

  # not 非
  ‘‘‘真变假,假变真‘‘‘
  res = not False => True
  res = not True => False

 # (1)逻辑短路 (后面代码不走了)
  ‘‘‘
  # 两种情况
  res = False and 布尔值 => False
  res = True or 布尔值 => False
  ‘‘‘
 # print 默认返回一个 None 而None的布尔值是假

  res = False and print(1) => False
  print(res)
  res = True and print(1) => 1 None
  res = True or print(3) => True
  res = False or print(4) => 4 None

 # 逻辑运算符优先级
  ‘‘‘()  >  not  >  and  >  or‘‘‘

  res = 5 or 6 and 7
  # 5 or 7 => 5
  print(res)

  res = (5 or 6) and 7
  # 5 and 7 => 7

  res = not (5 or 6) and 7

  # (5 or 6) => 5
  # not 5 => False
  # False and 7 => False

  res = 5>6 or 7<8 and 9>10 or 11<12
  print(res) => True

  ‘‘‘
  有一种情况不用考虑and和or优先级问题,
  就是or短路 比如 True or ...... => 结果一定为 True
  ‘‘‘

  # ## 数据类型的判断 isinstance
  ‘‘‘
  isinstance(要判断的数据,判断的类型) 要么返回真,要么返回假
  ininstance(要判断的数据,(元组,放上各种数据类型,满足一个条件即为真))
  ‘‘‘

  # 5 是 int 类型的吗?
  res = isinstance(5,int) => True
  res = isinstance(‘123‘,list) => False
  print(res)

  # 有一个类型满足 反为真,一个都不满足,反为假
  res = isinstance(5,(list,tuple,str,int))
  print(res) => True
  res = isinstance(5,(list,tuple,str,))
  print(res) => False

原文地址:https://www.cnblogs.com/kangqidong/p/10780828.html

时间: 2024-11-08 23:02:56

python数据类型强制转换和运算符的相关文章

python的强制转换(当出现 not supported between instances of &#39;str&#39; and &#39;int&#39; 的错误时)

当我们编程时,有时会出现如下错误:TypeError: '>' not supported between instances of 'str' and 'int' 如下图: 这是因为input()返回的数据类型是str类型,不能直接和整数进行比较,必须先把str转换成整型,使用int()方法:age = int(input ("请输入你的年龄:")) 改正之后为: 这样程序就达到了预期的效果了 python的强制转换(当出现 not supported between inst

python学习笔记表达式和运算符(一)

表达式和运算符 什么是表达式? 1+2*3 就是一个表达式,这里的加号和乘号叫做运算符,1.2.3叫做操作数.1+2*3 经过计算后得到的结果是7,就1+2*3 = 7.我们可以将计算结果保存在一个变量里,ret = 1-2*3 . 所以表达式就是由操作数和运算符组成的一句代码或语句,表达式可以求值,可以放在"="的右边,用来给变量赋值. 算术运算符 : + - * / //(取整除) %(取余) ** >>> 2+3 >>> 3-2 >>

【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符

02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 字符串常量        用双引号括起来的内容 整数常量        所有整数 小数常量        所有小数 字符常量        用单引号括起来的内容,里面只能放单个数字,单个字母或单个符号 布尔常量        较为特殊,只有true和false 空常量        null(数组

第2课 python数据类型与转换

上次说了什么?复习一下吧!!! 我们只是学习了print() 函数,print(可以是数字 或者 '想打印的内容'),通常print函数在调试也非常好用,不然我们不会第一时间学习.print("你好,世界"),开始今日我们的内容. python 数据类型 只有3 类 :字符str,数字int,浮点float 要不要死记?不用的.....计算机无论是程序,还是网络对应一下现实世界就好 python 现实世界 字符串str 字符串 英文,法文,象形字 int整数 数字,去买包烟都要算钱吧

python数据类型的转换

#软件工具:Sublime Text #引出问题:为什么需要数据类型的转换?a = '1'b = '2'c = a + bprint(c)#结果为12,因为字符串类型相加实际为拼接#想要结果为3,就需要将字符串类型转换为整型d = int(a) + int(b)print(d)#结果为3 #一.转换成整型#1.浮点类型转换成整型a= 4.567b = int(a)print(b)#结果为4,所以浮点类型转换成整型,舍去了所有小数部分,只保留整数部分 #2.字符串类型转换成整型a = '1234'

python基础---格式化输出和运算符

格式化输出与运算符 1.格式化输出 name='egon'print('myname is '+name)print('myname is',name) 如果需要传多个变量,这种方法就不合适了 使用%s.%d来接受变量 %s:既可以接受数字,也可以接受字符串 %d:只能接受数字 name='egon'age='18'print('my name is: %s my age is %s' %(name,age)) 练习: 打印某用户的姓名.年龄.工作.爱好等信息 users=[{'username

[2016-02-09][javascript][数据类型强制转换]

和隐式转换类似 Boolean()转换成布尔值 String()转换成字符串 Number()转换成数值类型 parseInt(string,radix)//转换成整型 string需要转换的字符串, 字符串以0开头,8进制 以其他数字开头,10进制 0x开头,16进制 以其他形式,会读取数字合法部分,(类似C语言中scanf读取int的时候) 注意:不能把bool转换成0 | 1 允许开头结尾有空格 不能转换成数字,返回NaN redix进制,默认10进制 parseInt(0x123);//

Javascript数据类型强制转换

一.转换为数值类型 1.Number(参数) 把任何的类型转换为数值类型 A.如果是布尔值,false为0,true为1 B.如果是数字,转换成为本身.将无意义的后导0去掉. C.如果Null转换为0 D.如果是undefined 转换为NaN  not a number E.如果对象则会先调用对象的 valueOf(),如果valueOf()返回的是NaN,然后再调用对象        的toString() F.如果是字符串 1.如果字符串当中只有数字,转换为10进制(忽略前导0和后导0)

JavaScript数据类型、数组和运算符

1.数据类型 (1)JavaScript常见数据类型:数字.字符串.布尔值(ture或false) 全部数据类型有:string, number, boolean, null, undefined, symbol. (2)用变量来存储字符串 Javascript中的字符使用一对双引号("  ")或一对单引号('  ')括起来.             比如:var deskName1,deskName2;                 deskName1='小学生课桌';