在这里解决Jeremy的反应:将十六进制颜色转换为RGB,反之亦然我能够获得一个python程序来转换预设颜色十六进制代码(例如#B4FBB8),但是从最终用户的角度来看,我们不能要求人们编辑代码并从那里运行.如何提示用户输入十六进制值然后从那里吐出RGB值?
这是我到目前为止的代码:
def hex_to_rgb(value):
value = value.lstrip('#')
lv = len(value)
return tuple(int(value[i:i + lv // 3], 16) for i in range(0, lv, lv // 3))
def rgb_to_hex(rgb):
return '#%02x%02x%02x' % rgb
hex_to_rgb("#ffffff") # ==> (255, 255, 255)
hex_to_rgb("#ffffffffffff") # ==> (65535, 65535, 65535)
rgb_to_hex((255, 255, 255)) # ==> '#ffffff'
rgb_to_hex((65535, 65535, 65535)) # ==> '#ffffffffffff'
print('Please enter your colour hex')
hex == input("")
print('Calculating...')
print(hex_to_rgb(hex()))
Run Code Online (Sandbox Code Playgroud)
使用该线print(hex_to_rgb('#B4FBB8'))我能够让它吐出正确的RGB值,即(180,251,184)
它可能非常简单 - 我对Python仍然很粗糙.
我正在尝试编写一个 python 脚本(我是新手),它将在 Windows 上每个连接的驱动器的根目录中搜索密钥文件,然后返回将变量设置为驱动器号的驱动器号。
目前我有:
import os
if os.path.exists('A:\\File.ID'):
USBPATH='A:\\'
print('USB mounted to', USBPATH)
if os.path.exists('B:\\File.ID'):
USBPATH='B:\\'
print('USB mounted to', USBPATH)
if os.path.exists('C:\\File.ID'):
Run Code Online (Sandbox Code Playgroud)
-- 然后对每个驱动器字母 A 到 Z 重复出现。自然,这会需要输入很多内容,我只是想知道是否有一种解决方法可以使我的代码保持整洁并尽可能少(或者这是唯一的方法? )。
此外,如果找不到驱动器(即请插入 USB),有没有办法让它打印错误,然后返回到开始/循环?就像是
print('Please plug in our USB drive')
return-to-start
Run Code Online (Sandbox Code Playgroud)
有点像 GOTO 命令提示符命令?
编辑:
对于未来有类似疑问的人,解决方案如下:
from string import ascii_uppercase
import os
def FETCH_USBPATH():
for USBPATH in ascii_uppercase:
if os.path.exists('%s:\\File.ID' % SVPATH):
USBPATH='%s:\\' % USBPATH
print('USB mounted to', USBPATH)
return USBPATH + ""
return ""
drive = FETCH_USBPATH()
while drive == …Run Code Online (Sandbox Code Playgroud)