pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...
题目来源:
2021届字节跳动算法岗笔试题
题目描述:
实现一个RGB字符串(如:rgb(0, 50,255) ),按24位数字对齐后输出对应Integer型数字。R为高位,B为低位。
例如:输入 rgb(0, 50,255) ,输出13055
输入描述:
字符串(如:rgb(0, 50,255) )
输出描述:
输出 number (如:11111)
示例1
输入
rgb(192, 192, 192)
输出
12632256
代码
话不多说直接上代码
思路:题目要求按24位对齐转换,由此想到先把对应r,g,b位的Integer数字转换成16进制,因为r,g,b的取值范围是0-255,大于255也会按255算。正好对应十六进制0x00-0xff,一位16进制又对应4位二进制,六个16进制刚好是24位。之后把转换好的16进制转换为int型就可以了。
当然你也可以把r,g,b位的Integer数字直接转换成三个8位的二进制这样来算。
小提示:
格式化输出 %
%o —— oct 八进制
%d —— dec 十进制
%x —— hex 十六进制
% 不支持二进制转换,
要想实现直接输出二进制可使用 format 函数来实现,或者自己根据需求编写个二进制转换函数。
def RGB_to_Int(Red,Green,Blue):
r, g, b = (Red, Green, Blue)
packed = int('%02x%02x%02x' % (r, g, b), 16)
print(packed)
if __name__ == "__main__":
arr = input("输入数组:")
#截取字符串
str=arr[4:-1]
#获取其中的数字
str2=str.split(',')
#把str转为int,.strip()去除字符串首尾空格
Red=int(str2[0].strip())
Green=int(str2[1].strip())
Blue=int(str2[2].strip())
#调用
RGB_to_Int(Red,Green,Blue)
参考:RGB Int to RGB – Python
容易有疑问的地方
1.字符串中 百分号02x 是什么意思
1)首先该结构符合字符串格式化输出的形式:
“%x%x%x” % (r,g,b)
其中 %x 是十六进制整数
2)其次 %02x 是对 %x 的进一步补充:
% 作为格式化输出的格式符,可以用如下的方式进一步控制:
%[(name)][flags][width].[precision]typecode
(name)为命名;
flags可以有+,-,’ ‘或0。+表示右对齐。-表示左对齐。’
'为一个空格,表示在正数的左侧填充一个空格,从而与负数对齐。0表示使用0填充;
width表示显示宽度;
precision表示小数点后精度;
所以此处 %02x 表示宽度为 2 的十六进制整数、不够 2 位用 0 填充
3)再回顾整体的 “#%02x%02x%02x” 其实就是类似 “#b7bb96” 等 rgb 颜色数据
参考:参考博客
2.%02x与%2x 之间的区别
1)输出最小宽度
用十进制整数来表示输出的最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0(当最小宽度数值以0开头时)。
X 表示以十六进制形式输出
02 表示不足两位,前面补0输出;如果超过两位,则实际输出
举例:
printf("%02X", 0x345); //打印出:345
printf("%02X", 0x6); //打印出:06
而如果直接写为 %2x,数据不足两位时,实际输出,即不额外补0输出; 如果超过两位,则实际输出。
printf("%2X", 0x345); //打印出:345
printf("%2X", 0x6); //打印出:6
参考:参考博客
pythonrgb高精度浮点运算类型_python实现RGB字符串,按24位对齐后输出对应Integer行数字...相关推荐
- C++primer第五版 编写一段程序,读入一个包含标点符号的字符串,将标点符号去除后输出字符串剩余的部分
这是一个关于字符串处理的简单程序,但是里面有一些细节是值得关注的.先附上程序: // primer_3_2_3.cpp : Defines the entry point for the applic ...
- 问题 C: 1.01 字符串拼接 编写程序实现接收用户输入的两个字符串,将它们组合后输出。
问题 C: 1.01 字符串拼接 时间限制: 1 Sec 内存限制: 128 MB 提交: 8394 解决: 3559 [提交] [状态] [讨论版] [命题人:lip] 题目描述 编写程序实现接收用 ...
- python不支持单字符类型_Python数据类型之字符串
1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...
- python定义字符串类型_Python数据类型之字符串
1. Python字符串的创建 字符串是Python中最常见的数据类型,通常使用单引号或双引号来定义一个字符串,如下: str = "我是字符串" str1 = '我也是字符串' ...
- python改变字符串类型_python – Sklearn将字符串类标签更改为int
我有一个pandas数据帧,我正在尝试将字符串表示的给定列中的值更改为整数.例如: df = index fruit quantity price 0 apple 5 0.99 1 apple 2 0 ...
- python字符串类型_python字符串类型介绍
一. 字符串的写法 1.单引号或双引号 二. 字符串是不会变的 1.字符串不会变,只会新增后再赋值 a = 'ABC' b = a a = 'XYZ' print(b) 结果还是ABC 三. 字符串的 ...
- python输入的字符串转换为对应的数字类型_Python合集之Python运算符(四)
在上一节的合集中,我们了解了Python运算符中的位运算符的相关知识,本节我们将进一步了解一下Python运算符中运算符的优先级级基础的输入输出语法的相关知识. 1. 运算符优先级 Python运算符 ...
- python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
python使用matplotlib可视化.使用英文单次或者缩写指定使用的颜色.使用16进制的RGB字符串指定颜色.使用RGB或者RGBA数字元组指定颜色 目录
- python输入是什么类型_python入门04——输入输出
一.输入input python3中的input name=input("请输入你的用户名:") # name="egon" print(name,type(n ...
最新文章
- 输入输出导入导出问题
- arm clz指令c语言,协处理器及其他指令之:零计数指令CLZ-嵌入式系统-与非网
- Docker 容器CPU设置
- svpwm仿真_三相三线逆变_并网仿真建模
- 检测到在集成的托管管道模式下不适用的 ASP.NET 设置, HTTP 错误 500.23 解决方案...
- VB.net和c#的区别!
- Properties作为Map集合的使用
- python人脸识别防小偷_基于python的人脸识别(检测人脸、眼睛、嘴巴、鼻子......)...
- Mac上恢复已删除或未保存的Word文档该怎么做
- Mysql net start mysql启动,提示发生系统错误 5 拒绝訪问 解决之道
- 用友U8修改货位现存量
- 语音识别程序c语言,语音识别
- 胚胎干细胞研究成果集锦,目录大合集
- Android 之 自动拨号
- 用数据告诉你,哪位导演是漫威影片中的票房收割机?
- 父子游标不可共享的情况分析
- 第一章:Linux下shell常用命令
- 搬砖试金石!github星标7W算法刷题宝典,还愁拿不下大厂offer?
- 动态毛玻璃特效html,实现div毛玻璃背景
- CentOS安装QEMU(试验成功且简单的方法)
热门文章
- 云原生五大趋势预测,K8s安卓化位列其一
- 自研云原生数据仓库AnalyticDB再破权威评测TPC-DS世界纪录
- 阿里CTO:阿里所有技术和产品输出都将必须通过阿里云进行
- Sentinel如何通过限流实现服务的高可用性
- 因为一个循环,CPU搞了个新技术
- 360数科 CTO 王继平:金融 IT 变革浪潮下,360数科的技术破局
- 备战春招:阿里一面,给了几条SQL,问需要执行几次树搜索操作?
- “编程能力差,90%输在了数学上!”CTO:其实你们都是瞎努力!
- 这份操作系统词典请查收!
- Redis 6.0 新特性:多线程连环 13 问!