位置: 编程技术 - 正文

Python 实现一个颜色色值转换的小工具(编写一个python函数is_multiple)

编辑:rootadmin

推荐整理分享Python 实现一个颜色色值转换的小工具(编写一个python函数is_multiple),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python编写一个程序,如何用python编写一个程序,如何用python编写一个程序,python编写一个程序,编写一个python,编写一个python,编写一个python,编写一个python,内容如对您有帮助,希望把文章链接给更多的朋友!

  需求说明

  公司的 UI 设计小哥,已经转用 Zeplin 很久了。Zeplin 的设计稿展示页面的颜色色值使用十进制的 RGB 表示的,在 Android 中的颜色表示大多情况下都需要十六进制的 RGB 表示。我的数学没有好到直接看到十进制就可以心算得到十六进制的结果,所以我需要一个工具,输入十进制的 RGB ,得到十六进制的色值,最好可以方便复制。

Zeplin 的颜色色值显示示例

  原有处理方式

  因为我会 Python (仅限于终端输入 python 然后当做计算器算,或者用 hex() 函数把十进制转换成十六进制),所以遇到这样的问题我当然是采用python 的 hex() 函数做转换,然后手动结果输入到 Android Studio 中。

采用 hex 函数手动转换色值

  动机

  人总是懒得,想要写这个小工具已经很久了,我也打过有过构思就是:

  输入: 类似 RGB 的十进制值(, ),用空格或者逗号分割一下。

  输出: 一个十六进制的 RGB 颜色色值(#6e7a8a)。

  但就一直没动手,一直讲究着。真懒!

  开干

  1.首先我需要输入函数

  我打开我之前学习 Python 的文件夹,里面正好有一个 raw_input 的示例:

Python代码

  在终端执行 python input.py 后, 可以输入文字。

  我需要接受到用户输入的信息。怎么接收忘记了, Google 之,得到结果,顺便改改输入提示语,打印出输入的内容:

Python代码

  2. 需要分割字符

  查询到python 字符分割函数 split(),默认不传入参数就可以用空白符分割。原本还说用英文逗号(,)作为分隔符,现在看来可以省了,直接用空格分割,无论多少空格都可以自动分割。于是加上代码:

Python代码

  3. 需要遍历数组

  简单的遍历数组的是怎么弄的也忘记了,同样搜索:

Python代码

  4. 字符转成十六进制

  这个时候拿到了字符串,要变成十六进制的字符串。这个时候需要两个函数, int() 和 hex(),int 函数可以将字符串转成 int 类型,而 hex 则接受数字参数,返回字符串。 0x开始的字符串。

  于是就有了版的。

于是就有了第一个版本。

  第一个版本

第一个版本

第一个版本执行结果

  写出这样的基础版本已经基本可以得到我想要的结果了,缺点是还需要我手动收入,动用大脑记忆十六进制色值然后输入。希望可以直接复制最后结果。

  再进一步

  虽然结果已经出来了,但是还是希望可以在进步一些,有几个问题:

  1. 当要转换的数字小于的时候 只有一位不显示,比如 显示的结果是0xB

  2. 现实的结果多了0x

Python 实现一个颜色色值转换的小工具(编写一个python函数is_multiple)

  3. 显示的结果最好连在一起方便复制,而不是每个颜色一行。

  那么就需要遍历颜色值数组,去掉0x 字符串, 判断小于的前面补上0。连续在一起输出结果。

  for 循环遍历数组

  前面用到了 for 循环,是从查到的范例,不过多行就不知道怎么弄了。java 写多了一般都是 { } 大括号括起来。

  继续查资料,于是知道是大概下面这样的用法。

Python代码

  变量声明

  由于需要不换行,所以就需要字符连接,而不是直接 print。

  声明变量又遇到问题了。根据前面的变量使用情况,找了些 python 代码看了看,大概知道不用声明什么类型,直接用就好了。于是有了代码:

Python代码

  字符串裁剪和拼接

  需要把多余的0x 两位去掉。

  用到字符串裁剪,依然寻找范例。

Python代码

  这个范例的执行结果:

Python代码

  顺便问了旁边也在学习 python 的同事,他告诉我后面的索引可以省略,代表直接裁剪到结尾。

  比如上面的例子如果 print "var2[1:]", var2[1:] 得到的结果应该是 ython Runoob

  所以有代码:

Python代码

  也可以从后往前数,比如还是上面的范例可以写成。比如上面的例子如果 print "var2[-1:]", var2[-1:] 得到的结果应该是 ob 也就是字符串的后两位。

  于是我们这里可以写成hex(intx)[-2:] (因为输出字符串类似是0x, 这样的)就是这个导致我后面写了个 bug,我也文章最后说明这个 bug 是什么。

  if else 判断

  接着要做一个判断,给一位的补上0

Python代码

  这样就有了python 文件:

Python代码

  还有最后一步:把 ColorU 加入到环境变量中

  这个时候我可以得到我要的记过了,但是有点不太方便,我需要到这个 python 文件所在的目录下写

Python代码

  或者写全 colorU.py 这个路径。都是很麻的事情,所以我需要把 colorU 加入环境变量中。我用的是 zsh,所以找到环境变量的配置文件:~/.zshrc,末尾加上配置:

Python代码

  这个是经过另外以为同事指导后的最后可行版本,我最初的思路是把 colorU.py 文件设置成可执行文件,然后加入到 Path 当中。结果我把 colorU.py 这个文件的地址加入到了 Path 中,世界上PATH 应该是一个目录。这样添加别名的方式更方便。

也就是说如果我装客户端就可以不用我写的这个脚本了。但没关系我学习了 python,写了我自己的第一个真正有用的 python 代码。

  2. 一个bug:我是在写这篇文章的时候才发现这个 bug 的,类似0x这样的字符串从后往前裁剪的时候写[-2:],当然没有问题,但是写0xf 这样的字符串就会有问题了。程序输入 5 5 5得到的结果是 #0xxx5。修改成[2:] 的裁剪就可以了。

倒向裁剪字符串引起的bug

  还可以继续升级体验:

  a. 直接在终端中输入 colorU 就可以得到结果 #e7ea7b;

  b. 配合Alfred, 呼出 Alfred 窗口后,输入色值,得到结果,回车直接复制十六进制到粘贴板。

  c. 保存之前已经转换过的色值,方便重复使用的颜色,直接复制十六进制颜色。

Python应用 使用PyQT制作视频播放器实例 最近研究了Python的两个GUI包,Tkinter和PyQT。这两个GUI包的底层分别是Tcl/Tk和QT。相比之下,我觉得PyQT使用起来更加方便,功能也相对丰富。这一篇用PyQT

详解Python 数据库 (sqlite3)应用 Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLit

Python制作钉钉加密/解密工具 又是很久没有写技术博客了,盖因最近都在学习知识,也没有总结出什么值得分享的内容,所以一直停笔至今。最近的工作和钉钉的开发打上了交到,

标签: 编写一个python函数is_multiple

本文链接地址:https://www.jiuchutong.com/biancheng/382414.html 转载请保留说明!

上一篇:python 线程的暂停, 恢复, 退出详解及实例(python线程启动和暂停)

下一篇:Python应用03 使用PyQT制作视频播放器实例(python3.8.3怎么用)

  • 小规模纳税人起征点和免征额
  • 代垫水电费增值税
  • 关税消费税增值税计算公式
  • 异地缴纳税款
  • 发票上有字迹可以拿去作废吗
  • 借款当月算利息吗
  • 公司购买的货架入哪个科目
  • 残疾人保障金做什么会计科目
  • 初始余额录入时需要录入什么
  • 加计抵减其他收益汇算清缴填哪里
  • 对外投资企业利润回国意愿的政策建议
  • 内部往来科目设置在哪类下
  • 应交税费应交增值税转出多交增值税
  • 多付的货款怎么追回
  • 委托加工的材料计入什么科目
  • 医院其他收入包括哪些项目
  • 增值税抵扣进项税额交税账务处理
  • 进项不够怎么避税
  • 委托加工代扣代缴的消费税如何计算
  • 电商平台小规模纳税标准
  • 地方水利建设基金的会计分录
  • 职工教育经费能抵扣进项税
  • 现金折扣发票如何开具
  • 待摊费用做账
  • 发票金额与实际付款金额不一致
  • 若依框架入门
  • 完工转出产成品成本计算
  • 前端vue实现预览excel
  • 如何压缩文件打包发送微信
  • 房产证工本费怎么做账
  • mac如何恢复到出厂系统版本
  • 政府的奖励金计入哪个科目
  • 多台电脑如何建立局域网
  • phppost提交json
  • 海带下载
  • 为什么要进行税费改革
  • 广告费应该计入产品成本吗
  • 未达起征点怎么填申报表
  • 企业可以将自己辞退吗
  • 结转成本费用
  • mysql基本sql语句大全(基础用语篇)
  • python字符串方法总结
  • 映射器可以定义参数类型
  • mysql的删除
  • mongodb官方文档中文
  • 质量赔偿可以开什么费用发票
  • mysql误删数据
  • 企业计提固定资产折旧以什么假设为前提
  • 小微企业的所得税税率是多少
  • 政府补助属于营业外收入吗
  • 关联表的作用
  • 个体工商户还没开业也要报税吗
  • 出口不退税进项税是否可以抵扣
  • 什么单位需要
  • 航天信息的发票以什么形式导入开票信息
  • 房地产公司销售土地使用权
  • 借款合同需要交印花税吗
  • 上期留抵税额可以留多久
  • 存货周转次数越高好还是越低好
  • 研究费用和开发费用加计扣除的究竟是哪部分
  • 员工伤残补助会计分录
  • 开服装店如何做销售
  • 商业企业资产负债表
  • 通透Windows 2008系统状态变化
  • freebsd6.2 nginx+php+mysql+zend系统优化防止ddos攻击
  • u盘怎么安装驱动程序
  • Mac系统怎么设置开机密码
  • mac系统怎么删除用户
  • Win10中SmartScreen无法设置需要系统管理员身份该怎么办?
  • mac命令行窗口怎么打开
  • Win10更新KB3156421补丁后出现设备运行缓慢现象的解决方案
  • 深入理解python特性 pdf
  • fragment里面如何嵌套fragment
  • 一些常用的网络命令
  • windows安装程序安装在哪里
  • 东莞市税务局稽查局
  • 北京比较大五金市场在哪
  • 虚假新闻造成的真实伤害
  • 保险机构如何代收车船税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设