如何用Python做一个RGB和16进制的互转工具

 时间:2024-10-22 17:24:34

1、原理:①首先知道RGB如何转成16进制,把R、G、B三个值首先转为16进制,转换后不足2位的用“0”补齐,再把转换后的结果依次连接在一起,前面加上一个“#”就可以了。②16进制转RGB只要把16进制按照相反的步骤转为10进制就可以了。

如何用Python做一个RGB和16进制的互转工具如何用Python做一个RGB和16进制的互转工具

2、代码整体分为3部分:①定义RGB转16进制函数。②定义16进制转RGB的函数。③询问用户是要进行RGB转16进制还是16进制转RGB,然后根据输入进行函数调用。

如何用Python做一个RGB和16进制的互转工具如何用Python做一个RGB和16进制的互转工具

3、def rgb_to_hex(): #首先定义一个RGB颜色转16进制的函数 while True: #无限循环 try: #尝试获取RGB值的输入 r = int(input('请输入RGB中R的数值:')) g = int(input('请输入RGB中G的数值:')) b = int(input('请输入RGB中B的数值:')) if r < 0 or r > 255 or g < 0 or g > 255 or b < 0 or b > 255: #如果RGB的值不在0-255之间,就打印一条提示语 print('RGB请输入0-255之间的整数!\n') #提示语 else: #RGB的值在0-255之间就终止循环 break except ValueError: #如果引发了类型错误也会打印一条提示语 print('RGB请输入0-255之间的整数!\n')

如何用Python做一个RGB和16进制的互转工具

4、 hex_r = hex(r)[2:].upper() #10进制转16进制,并去掉16进制前面的“0x”,再把得出的结果转为大写 hex_g = hex(g)[2:].upper() hex_b = hex(b)[2:].upper() hex_r0 = hex_r.zfill(2) #位数不足2位时补“0” hex_g0 = hex_g.zfill(2) hex_b0 = hex_b.zfill(2) print('16进制:#' + hex_r0 + hex_g0 + hex_b0) #打印最终结果(格式如“#ff0402”)

5、def hex_to_rgb(): #再定义一个16进制转RGB颜色的函数 while True: #无限循环 hex_color = str(input('请输入16进制颜色:')) #获取16进制颜色的输入 if hex_color[0] != '#' or len(hex_color) != 7: #如果16进制颜色前面没有“#”或16进制字符串的长度不为7,就打印一条提示语 print('请输入标准的16进制颜色,以“#”开头,字符长度为7!\n') else: #如果16进制颜色符合标准 try: #尝试进行16进制转10进制 r = int('0x' + hex_color[1:3],16) #16进制颜色格式如“#ff0402”,提取出其中的“ff”、“04”、“02”三个16进制数字,并在前面加上“0x”,表示16进制 g = int('0x' + hex_color[3:5],16) b = int('0x' + hex_color[5:7],16) break #转换完成就退出循环 except ValueError: #引发了类型错误就打印提示语 print('请输入标准的16进制颜色,以“#”开头,字符长度为7!\n') print('RGB值:' + str(r) + ',' + str(g) + ',' + str(b)) #打印出RGB值,用“,”分开

如何用Python做一个RGB和16进制的互转工具

6、while True: #无限循环 user_in = str(input('请输入你要怎样转换:输入“1”是RGB转16进制,输入“2”是16进制转RGB:')) #提示用户输入“1”或“2” if user_in == '1': #如果用户输入“1”就运行RGB转16进制的函数 rgb_to_hex() break #终止循环 elif user_in == '2': #如果用户输入“2”就运行16进制转RGB的函数 hex_to_rgb() break else: #如果输入其他的内容,就打印一条提示语 print('只能输入“1”或“2”!\n')

如何用Python做一个RGB和16进制的互转工具

7、#完整代码def rgb_to_hex(): #定义一个RGB颜色转16进制的函数 while True: #无限循环 try: #尝试获取RGB值的输入 r = int(input('请输入RGB中R的数值:')) g = int(input('请输入RGB中G的数值:')) b = int(input('请输入RGB中B的数值:')) if r < 0 or r > 255 or g < 0 or g > 255 or b < 0 or b > 255: #如果RGB的值不在0-255之间,就打印一条提示语 print('RGB请输入0-255之间的整数!\n') #提示语 else: #RGB的值在0-255之间就终止循环 break except ValueError: #如果引发了类型错误也会打印一条提示语 print('RGB请输入0-255之间的整数!\n') hex_r = hex(r)[2:].upper() #10进制转16进制,并去掉16进制前面的“0x”,再把得出的结果转为大写 hex_g = hex(g)[2:].upper() hex_b = hex(b)[2:].upper() hex_r0 = hex_r.zfill(2) #位数不足2位时补“0” hex_g0 = hex_g.zfill(2) hex_b0 = hex_b.zfill(2) print('16进制:#' + hex_r0 + hex_g0 + hex_b0) #打印最终结果(格式如“#ff0402”)def hex_to_rgb(): #再定义一个16进制转RGB颜色的函数 while True: #无限循环 hex_color = str(input('请输入16进制颜色:')) #获取16进制颜色的输入 if hex_color[0] != '#' or len(hex_color) != 7: #如果16进制颜色前面没有“#”或16进制字符串的长度不为7,就打印一条提示语 print('请输入标准的16进制颜色,以“#”开头,字符长度为7!\n') else: #如果16进制颜色符合标准 try: #尝试进行16进制转10进制 r = int('0x' + hex_color[1:3],16) #16进制颜色格式如“#ff0402”,提取出其中的“ff”、“04”、“02”三个16进制数字,并在前面加上“0x”,表示16进制 g = int('0x' + hex_color[3:5],16) b = int('0x' + hex_color[5:7],16) break #转换完成就退出循环 except ValueError: #引发了类型错误就打印提示语 print('请输入标准的16进制颜色,以“#”开头,字符长度为7!\n') print('RGB值:' + str(r) + ',' + str(g) + ',' + str(b)) #打印出RGB值,用“,”分开while True: #无限循环 user_in = str(input('请输入你要怎样转换:输入“1”是RGB转16进制,输入“2”是16进制转RGB:')) #提示用户输入“1”或“2” if user_in == '1': #如果用户输入“1”就运行RGB转16进制的函数 rgb_to_hex() break #终止循环 elif user_in == '2': #如果用户输入“2”就运行16进制转RGB的函数 hex_to_rgb() break else: #如果输入其他的内容,就打印一条提示语 print('只能输入“1”或“2”!\n')

如何用Python做一个RGB和16进制的互转工具
  • win一直提示激活怎么办 win提醒升级怎么办
  • 怎样用VBS运行计算器
  • 综合管廊的施工方法
  • 普通cad里如何插入图,并将图中要素与cad对齐?
  • 如何在vs中修改QT窗口图标和名称?
  • 热门搜索
    乐山旅游 海南三亚旅游 陕西旅游景点大全 三亚旅游攻略自由行 厦门旅游景点大全 常州旅游商贸高等职业技术学校 贵州旅游自由行攻略 六安旅游 日本个人旅游签证 重庆旅游攻略景点必去