python 占位符 连接符

‘{}字符串’.format()

print(’{0:2d} {1:3d}’.format(0,1))
{0:02d} 第一个0对应format的0位置的数据 第二个0表示两位十进制数字的字符串,不够两位用0填充
print(’{0:2d} {1:3d}’.format(0,1)) 可写成print(’{:2d} {:3d}’.format(0,1))

ord() 转字母为对应的ASCII码

各种进制之间相互转化

int('0x17', 16) # 16进制转化为10进制  23
int('101010',2) # 二进制转化为10进制
bin(42) # 十进制转化为2进制  '0b101010'
oct(10) # 十进制转化为8进制'0o12'
hex(23) # 十进制转16进制 '0x17'

可以看到,转化为2/8/16进制都有自己专门的函数,他们都支持将10进制转化为各自进制数;
而10进制使用int加参数指定从多少进制转化而来。这样以10进制为中间变量就可以实现各个进制数之间的转化。
如果我们想看各种编码对应的二进制数是多少,十进制数是多少呢,要对b \u \x这样的东西进行处理。
首先,看unicode的16/10/2进制对应数值

	s = "中文"
	" ".join("{:02x}".format(ord(c)) for c in s) # 16进制 '4e2d 6587'   遍历s转成16进制 遍历数值之间用空格连接
	" ".join("{:d}".format(ord(c)) for c in s) # 10进制   '20013 25991'
	" ".join("{:b}".format(ord(c)) for c in s) # 二进制   '100111000101101 110010110000111'

上面代码的原理是
循环中的每个c对应’\u4e2d\u6587’中的\u4e2d和\u6587 ord是可以将\u前缀的16进制数识别出来并转化为8进制数
用format再将八进制数指定格式输出成16进制数,这两步相当于去掉了\u join将得到的16进制值用空格拼在一起
下面转化为10进制、二进制只是把format输出格式换了 “::::”.join© for c int s 遍历的c之间用::::来连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值