Python RGB 和十六进制颜色字符串转换
题目描述
将 #FFFFFF 和 rgb(255, 255, 255) 两种形式的字符串进行相互转换。
输入
输入多行,每一行形如题目中的字符串。
保证字符串形如 #[num1][num2][num3] 或者 rgb([num1], [num2], [num3])。
输出
对于对应的输入,输出另一种格式的字符串。
样例输入
#FFFFFF
rgb(255, 255, 255)
样例输出
rgb(255, 255, 255)
#FFFFFF
运行代码
while(1):
try:
inputstr=input()
if(inputstr[0]=="#"):
str1=inputstr[1:3]
str2=inputstr[3:5]
str3=inputstr[5:7]
num1=int('0x'+str1,16)
num2=int('0x'+str2,16)
num3=int('0x'+str3,16)
print("rgb(%s, %s, %s)" % (str(num1),str(num2),str(num3)))
else:
list=inputstr.split(',')
str1=list[0][4:]
str2=list[1][1:]
str3=list[2][1:-1]
# hex返回的字母A~F均为小写字母a~f,根据样例输出,用upper函数把字母全部转为大写
hex1=hex(int(str1))[2:].upper()
hex2=hex(int(str2))[2:].upper()
hex3=hex(int(str3))[2:].upper()
# 十进制转16进制时会出现缺省零的情况,用rjust函数可在字符串左侧填充0
# 同理 ljust函数可在字符串的右侧填充0
hex1 = hex1.rjust(2, '0')
hex2 = hex2.rjust(2, '0')
hex3 = hex3.rjust(2, '0')
outputstr="#"
outputstr=outputstr+hex1+hex2+hex3
print(outputstr)
except:
break