• python之数据类型转换


    一、隐式类型转换
    隐式类型转换 - 自动完成

    我们对两种不同类型的数据进行运算,较低数据类型(整数)就会转换为较高数据类型(浮点数)以避免数据丢失

    num_int = 123
    num_flo = 1.23
    
    num_new = num_int + num_flo
    
    print("datatype of num_int:",type(num_int))
    print("datatype of num_flo:",type(num_flo))
    
    print("Value of num_new:",num_new)
    print("datatype of num_new:",type(num_new))

    查看运行结果:

     

    二、显式类型转换

    显式类型转换 - 需要使用类型函数来转换

    整型和字符串类型运算结果会报错,输出 TypeError。 Python 在这种情况下无法使用隐式转换,我们使用 int()、float()、str() 等预定义函数来执行显式类型转换

    num_int = 123
    num_str = "456"
    
    print("num_int 数据类型为:",type(num_int))
    print("类型转换前,num_str 数据类型为:",type(num_str))
    
    num_str = int(num_str)    # 强制转换为整型
    print("类型转换后,num_str 数据类型为:",type(num_str))
    
    num_sum = num_int + num_str

    查看运行结果:

     

    三、数据类型之间的转换内置函数
    1.int(x [,base])
    (1)作用:将x转换为一个整数
    (2)语法:class int(x, base=10),base为进制数,默认十进制,若 x 不符合 base 规则,则报错
    (3)实例:

    #3.int(x [,base])
    print(int(3.6))
    print(int("1001",2))
    print(int("0xa",16))

    查看运行结果:

     

    2.float(x)
    (1)作用:用于将整数和字符串转换成浮点数。
    (2)语法:float([x]),x -- 整数或字符串
    (3)实例:

    #2.float(x)
    str1 = "3.14"
    str2 = 2
    f1 = float(str1)
    f2 = float(str2)
    print(f1,f2)

     查看运行结果:

     

    3.complex(real [,imag])

    (1)作用:创建一个值为 real + imag * j 的复数或者转化一个字符串或数为复数。如果第一个参数为字符串,则不需要指定第二个参数。。
    (2)语法:complex([real[, imag]]),real -- int, long, float或字符串;imag -- int, long, float;
    (3)实例:

    #3.complex(real [,imag])
    c1 = complex(1,2)
    c2 = complex(3)
    print(c1,c2)

    查看运行结果:

    4.str(x)
    (1)作用:将对象转化为适于人阅读的形式。
    (2)语法:str(object=''),返回一个对象的string格式
    (3)实例:

    #4.str(x)
    s1 = 'python'
    s2 = {'python': 'python.com', 'google': 'google.com'}
    print(str(s1),str(s2))

    查看运行结果:

    5.repr(x)
    (1)作用:将对象转化为供解释器读取的形式。
    (2)语法:repr(object),返回一个对象的 string 格式
    (3)实例:

    #5.repr(x)
    s1 = 'python'
    s2 = {'python': 'python.com', 'google': 'google.com'}
    print(repr(s1),repr(s2))

    查看运行结果:

    6.eval(str)
    (1)作用:用来执行一个字符串表达式,并返回表达式的值
    (2)语法:eval(expression[, globals[, locals]]);expression -- 表达式;globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象;locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
    (3)实例:

    #6.eval(str)
    x,y= 1,2
    e1 =eval('3 * x')
    e2 =eval('pow(2,3)')
    e3 =eval('y+10')
    print(e1,e2,e3)

    查看运行结果:

    7.tuple(s)
    (1)作用:将可迭代系列(如列表)转换为元组
    (2)语法:tuple( iterable );返回元组。(可以将字符串,列表,字典,集合转化为元组)
    (3)实例:

    #7.tuple(x)
    l1 = ['python', 'ruby', 'golang', 'java']
    t1 = tuple(l1)
    print(t1)

    查看运行结果:

     8.list(s)

    (1)作用:将元组或字符串转换为列表;元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中
    (2)语法:list( seq ),seq -- 要转换为列表的元组或字符串
    (3)实例:

    #8.list(x)
    t1 = (123, 'Google', 'Python', 'Taobao')
    l1 = list(t1)
    s1 = "hello"
    l2 = list(s1)
    print(l1,l2)

    查看运行结果:

    9.set(s)

    (1)作用:创建一个无序不重复元素集,可进行关系测试,删除重复数据
    (2)语法:set([iterable]),返回新的集合对象
    (3)实例:

    # 9.set(x)
    l1 = ['a', 'b', 'b', 'c', 'c', 'c']
    s1 = set(l1)
    print(s1)

    查看运行结果:

    10.dict(d)
    (1)作用:创建一个字典,d 必须是一个 (key, value)元组序列
    (2)语法:dict(**kwarg),dict(mapping, **kwarg),dict(iterable, **kwarg),**kwargs -- 关键字,mapping -- 元素的容器,映射类型(Mapping Types)是一种关联式的容器类型,它存储了对象与对象之间的映射关系,iterable -- 可迭代对象
    (3)实例:

    #10.dict(d)
    d1 = dict(a='a', b='b', t='t') #传入关键字
    d2 = dict(zip(['one', 'two', 'three'], [1, 2, 3])) #映射函数方式来构造字典
    d3 = dict([('one', 1), ('two', 2), ('three', 3)]) #可迭代对象方式来构造字典
    print(d1)
    print(d2)
    print(d3)

    查看运行结果:

    11.frozenset(s)
    (1)作用:返回一个冻结的集合,冻结后集合不能再添加或删除任何元素
    (2)语法:frozenset([iterable]);iterable -- 可迭代的对象,比如列表、字典、元组等等。返回新的 frozenset 对象,如果不提供任何参数,默认会生成空集合。
    (3)实例:

    #11.frozenset(s)
    f1 = frozenset(range(10))
    f2 = frozenset(['h','e','l','l','0'])
    print(f1)
    print(f2)

    查看运行结果:

    12.chr(x)
    (1)作用:用一个范围在 range(256)内的(就是0~255)整数作参数,返回一个对应的字符
    (2)语法:chr(i);i -- 可以是10进制也可以是16进制的形式的数字。返回值是当前整数对应的 ASCII 字符。
    (3)实例:

    #12.chr(x)
    print(chr(0x30), chr(0x31), chr(0x61)) # 十六进制
    print(chr(48), chr(49), chr(97)) # 十进制

    查看运行结果:

    13.ord(x)
    (1)作用: chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常
    (2)语法:ord(c);c -- 字符。返回值是对应的十进制整数。
    (3)实例:

    #13.ord(c)
    o1 = ord('a')
    o2 = ord('b')
    o3 = ord('c')
    print(o1,o2,o3)

    查看运行结果:

    14.hex(x)
    (1)作用:用于将10进制整数转换成16进制,以字符串形式表示。
    (2)语法:hex(x);返回16进制数,以字符串形式表示。
    (3)实例:

    #14.hex(x)
    print(hex(255),hex(-42),hex(1),hex(12),type(hex(12)))

    查看运行结果:

    15.oct(x)
    (1)作用:将一个整数转换成 8 进制字符串。Python3.x 版本的 8 进制以 0o 作为前缀表示
    (2)语法:oct(x);x -- 整数。返回 8 进制字符串。
    (3)实例:

    #15.oct(x)
    o1 = oct(10)
    o2 = oct(20)
    o3 = oct(15)
    print(o1,o2,o3)

    查看运行结果:

     

  • 相关阅读:
    C# 实现任务栏图标程序
    C#实现的木马之客户端
    sql基本语法
    水晶报表引用DataSet做数据源
    解决多线程操作控件时可能出现的异常:“在某个线程上创建的控件不能成为在另一个线程上创建的控件的父级”
    电子书籍制作工具软件大全
    C#实现的木马之服务端
    2进制、8进制、10进制、16进制...各种进制间的轻松转换
    VC# .Net中使用Crystal Report水晶报表
    P2P技术学习
  • 原文地址:https://www.cnblogs.com/mrwhite2020/p/16614549.html
Copyright © 2020-2023  润新知