crossin的编程教室吧 关注:3,826贴子:3,799
  • 18回复贴,共1

【Python 第17课】 类型转换

只看楼主收藏回复


python的几种最基本的数据类型,我们已经见过:
字符串
整数
小数 (浮点数)
bool类型
python在定义一个变量时不需要给它限定类型。变量会根据赋给它的值,自动决定它的类型。你也可以在程序中,改变它的值,于是也就改变了它的类型。例如
a = 1
print a
a = 'hello'
print a
a = True
print a
变量a先后成为了整数、字符串、bool类型。


IP属地:江苏1楼2013-06-18 20:23回复

    虽然类型可以随意改变,但当你对一个特定类型的变量进行操作时,如果这个操作与它的数据类型不匹配,就会产生错误。比如以下几行代码
    print ‘Hello’+1
    print ‘hello%d’ % '123'
    程序运行时会报错。因为第一句里,字符串和整数不能相加;第二句里,%d需要的是一个整数,而'123'是字符串。
    这种情况下,python提供了一些方法对数值进行类型转换:
    int(x) #把x转换成整数
    float(x) #把x转换成浮点数
    str(x) #把x转换成字符串
    bool(x) #把x转换成bool值
    上述两个例子就可以写成:
    print ‘Hello’+str(1)
    print ‘hello%d’ % int('123')


    IP属地:江苏2楼2013-06-18 20:30
    回复
      2025-08-31 11:09:12
      广告
      不感兴趣
      开通SVIP免广告
      以下等式的结果均为真:
      int('123') == 123
      float('3.3') == 3.3
      str(111) == '111'
      bool(0) == False
      并不是所有的值都能做类型转换,比如int('abc')同样会报错,python没办法把它转成一个整数。


      IP属地:江苏3楼2013-06-18 20:31
      回复

        另外关于bool类型的转换,我们会专门再详细说明。大家可以先试试以下结果的值,自己摸索一下转换成bool类型的规律:
        bool(-123)
        bool(0)
        bool('abc')
        bool('False')
        bool('')


        IP属地:江苏4楼2013-06-18 20:31
        收起回复
          #==== Crossin的编程教室 ====#
          微信ID:crossincode
          QQ群:312723402
          面向零基础初学者的编程课
          每天5分钟,轻松学编程


          IP属地:江苏通过百度相册上传6楼2013-06-18 23:12
          回复
            感觉需要特别注意一下,123是整数,而'123'是字符串呢


            IP属地:北京来自手机贴吧7楼2013-06-22 04:06
            收起回复
              我还是第一次发现bool的type转换规则蛮奇特的。一开始我还想当然地以为非正数都为False呢。原来是0和空字符会转化为False。是不是只有0和空字符会被bool转化为False?


              IP属地:广东8楼2013-07-12 19:12
              收起回复
                打卡,bool的理解还是有点绕


                9楼2015-11-26 15:53
                回复
                  2025-08-31 11:03:12
                  广告
                  不感兴趣
                  开通SVIP免广告
                  bool(-123)
                  bool(0)
                  bool('abc')
                  bool('False')
                  bool('')
                  怎么试以上结果的值,本人初学小白一个,打进代码run什么都没


                  IP属地:上海10楼2017-12-04 21:06
                  收起回复