• Python数字、字符串、字节


    一点点关于数字、字符串、字节的小知识

    def main():
        print('整数除法 5 / 3 =', 5 / 3)
        print('整数整除 5 // 3 =', 5 // 3)
        print('整数取余 5 % 3 =', 5 % 3)
        print('浮点数除法 5.0 / 3.0 =', 5.0 / 3.0)
        print('浮点数整除 5.0 // 3.0 =', 5.0 // 3.0)
        print('浮点数取余 5.0 % 3.0 =', 5.0 % 3.0)
        print('浮点数除法 2.75 / 0.5 =', 2.75 / 0.5)
        print('浮点数整除 2.75 // 0.5 =', 2.75 // 0.5)
        print('浮点数取余 2.75 % 0.5 =', 2.75 % 0.5)
        print('负数浮点数除法 -5.0 / 3.0 =', -5.0 / 3.0)  # -1.66666....
        print('负数浮点数整除 -5.0 // 3.0 =', -5.0 // 3.0)  # -1.666666... 向下取整是-2 而不是-1
        print('负数浮点数取余 -5.0 % 3.0 =', -5.0 % 3.0)  # 1 计算方法是: -5 - (3 * -2) = 1
        print('幂运算 pow(3, 2) =', pow(3, 2))
        print('幂运算 3 ** 2 =', 3 ** 2)
        print('幂运算 -3 ** 2 =', -3 ** 2)  # **的优先级比负号-高
        print('幂运算 (-3) ** 2 =', (-3) ** 2)
        # 复数
        import cmath
        print('负数开方结果为复数', cmath.sqrt(-1))
        print('复数', (1 + 3j) * (9 + 4J))  # j可以小写也可以大写
    
        print('二进制数0b110', 0b110)
        print('八进制数0o110', 0o110)
        print('十六进制数0x110', 0x110)
        print('10转二进制', bin(10))
        print('0o110转二进制', bin(0o110))
        print('0x110转二进制', bin(0x110))
        print('10转八进制', oct(10))
        print('10转十六进制', hex(10))
        print('二进制字符串0b110转整形', int('0b110', 2))
        print('八进制字符串0o110转整形', int('0o110', 8))
        print('十六进制字符串0x110转整形', int('0x110', 16))
        s = '你好'
        print('原始字符串', s)
        s_bytes = s.encode()
        print('字符串转字节', s_bytes)
        s_bytes_hex = s_bytes.hex()
        print('字节转16进制字符串', s_bytes_hex)
        hex_s_bytes = bytes.fromhex(s_bytes_hex)
        print('16进制字符串转字节', hex_s_bytes)
        s_bytes_decode = s_bytes.decode()
        print('字节转字符串', s_bytes_decode)
        bytes_list = list(s_bytes)
        print('字节转列表', bytes_list)
        list_bytes = bytes(bytes_list)
        print('列表转字节', list_bytes)
        s_unicode = [ord(c) for c in s]
        print('字符串转unicode列表', s_unicode)
        unicode_s = ''.join([chr(c) for c in s_unicode])
        print('unicode列表转字符串', unicode_s)
        unicode_hex = [hex(c) for c in s_unicode]
        print('unicode十六进制格式', unicode_hex)
        s_unicode_bytes = s.encode('unicode_escape')
        print('字符串转十六进制格式unicode的字节', s_unicode_bytes)
        unicode_bytes_s = s_unicode_bytes.decode('unicode_escape')
        print('十六进制格式unicode的字节转字符串', unicode_bytes_s)
    
        ''' 运行结果
        整数除法 5 / 3 = 1.6666666666666667
        整数整除 5 // 3 = 1
        整数取余 5 % 3 = 2
        浮点数除法 5.0 / 3.0 = 1.6666666666666667
        浮点数整除 5.0 // 3.0 = 1.0
        浮点数取余 5.0 % 3.0 = 2.0
        浮点数除法 2.75 / 0.5 = 5.5
        浮点数整除 2.75 // 0.5 = 5.0
        浮点数取余 2.75 % 0.5 = 0.25
        负数浮点数除法 -5.0 / 3.0 = -1.6666666666666667
        负数浮点数整除 -5.0 // 3.0 = -2.0
        负数浮点数取余 -5.0 % 3.0 = 1.0
        幂运算 pow(3, 2) = 9
        幂运算 3 ** 2 = 9
        幂运算 -3 ** 2 = -9
        幂运算 (-3) ** 2 = 9
        负数开方结果为复数 1j
        复数 (-3+31j)
        二进制数0b110 6
        八进制数0o110 72
        十六进制数0x110 272
        10转二进制 0b1010
        0o110转二进制 0b1001000
        0x110转二进制 0b100010000
        10转八进制 0o12
        10转十六进制 0xa
        二进制字符串0b110转整形 6
        八进制字符串0o110转整形 72
        十六进制字符串0x110转整形 272
        原始字符串 你好
        字符串转字节 b'\xe4\xbd\xa0\xe5\xa5\xbd'
        字节转16进制字符串 e4bda0e5a5bd
        16进制字符串转字节 b'\xe4\xbd\xa0\xe5\xa5\xbd'
        字节转字符串 你好
        字节转列表 [228, 189, 160, 229, 165, 189]
        列表转字节 b'\xe4\xbd\xa0\xe5\xa5\xbd'
        字符串转unicode列表 [20320, 22909]
        unicode列表转字符串 你好
        unicode十六进制格式 ['0x4f60', '0x597d']
        字符串转十六进制格式unicode的字节 b'\\u4f60\\u597d'
        十六进制格式unicode的字节转字符串 你好
        '''
    
    
    if __name__ == '__main__':
        main()
  • 相关阅读:
    java 反射 invoke()的异常问题记录
    windows安装nginx可视化工具nginxWebUI
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(三)(添加增删改查)
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(二)(添加日志打印和源码地址)
    Springboot+Mybatis+Clickhouse+jsp 搭建单体应用项目(一)
    mac + docker+单击clickhouse+Dbeaver安装全套
    线程中使用for循环的add或remove方法的两种方案
    map数据按照list排序
    oracle dbca 【bug】:JAVA_JIT_ENABLED=false
    Ubuntu(Debian):apt-get:处理repository数字签名无效、过期、没有签名:即 如何强制 apt-get update?
  • 原文地址:https://www.cnblogs.com/yarightok/p/15826602.html
Copyright © 2020-2023  润新知