制作桌面进制转换(二进制,八进制,十进制,十六进制)小工具 Python学习日记 2.28~3.6

博主分享了从C语言编写进制转换程序到使用Python实现的历程,探讨了优化快捷方式、界面及用户体验的方法。通过创建批处理文件实现桌面快捷启动,并用Python简化了代码,增加了功能。文章讨论了Python的灵活性,如print函数、数据类型的处理,并提出了程序待改进的地方,如颜色突出、历史记录等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2022 3.6

*boh的更新都放在另外一篇blog里面。
最近的更新:优化了界面颜色,用函数精简了一些代码。

0 开头的废话

菜鸡的日记终于又更新了,这次的日记有点长,想看有点用的内容的师傅可以直接跳目录
好久没有写日记,是菜鸡放弃了吗?并不是的。只是菜鸡对自己的菜有了新的认识\苦.jpg,决定从基础开始,一步步走好ctf的道路,最近学习的是python,也将会是相当一段时间内的学习内容(当然,越快越好),这个项目算是自己的第一个python程序,没有什么特别的技术内涵,不过做项目带来的实战经验和光看书是完全不一样的,虽然简单,但是也有很多收获。
在这里插入图片描述

1 起源和C语言始祖

这个项目(就这么叫吧,字面上不能亏待自己)的开始,除了正在学习python的原因,更重要的是,出于保存对学习或工作的热情而进行的必要休战——即偷懒——的原因。曾经的菜鸡饱受进制转换(CONS,conversation of number system)的折磨。在小学初中的奥数课堂中没什么好说,毕竟考的就是这个计算,但是到了大学,还依靠草稿纸实在是很跌份(好吧,我承认,主要是老是算错),加上开始学习C语言,做了一些关于进制转换的题目,就产生了这个想法:
1,要做一个程序,帮人类完成进制转换的繁重工作
2,最好放在桌面上,就像计算器一样方便使用(如果计算器有这个功能就不会有这篇文章了)

这应该也是大部分程序设计和使用的要求,于是在相当一段时间的苦肝之后(相信我,虽然那是C语言作为一门正课而且菜鸡有足够的热情,写完那个功能残缺操作复杂的程序花的时间也超过了python版本),有了第一个版本:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
没错,这个没有生成exe的cbp就是第一代的cons,为了符合第二条标准即打开方便(也是为了显逼格),菜鸡甚至通过更改图标来使那个快捷方式显得不一样,但即便是用了快捷方式(说到快捷,我可以很坦诚地说,codeblocks的打开速度其实让这个快捷方式失去了意义),打开后的程序也是不能直接用的:
在这里插入图片描述
没错,还要build and run,完了之后退出也是要连点好几个x,还要经过人工智障“save or not"的亲切询问,实在很拉胯。而功能的实现也是个问题:
在这里插入图片描述

没错,只有二进制和十进制的互相转换,而且(十分丢脸地)由于技术上的问题,二进制转换十进制还要计算数字的长度。
——————
*注:这里的界面是powershell,是因为方便检查报错在编写python版本的时候更换的,powershell虽然很友善地提供报错,但是一些过分自信的操作使得它在使用的时候会多一些不必要的操作,之后我们会换回控制台方便程序使用(一开始为了查错对控制台极限截屏实在是很难忘的一段经历,powershell的报错还是很值得肯定的)。

至于代码么,总共分成一个main,还有四个file包括不同功能,加起来两百余行代码,才实现了二进制和十进制的互相转化,而且用户体验也很一般(虽然字体和颜色重点突出做到了尽可能地美观,但是这个“快捷方式”直接把它打回原点)
在这里插入图片描述
——————
*dtb和btd各花了八十多行代码,现在看来真的实在是一个事倍功半的实现方式。

综上所述,其实这个程序在完成之后就再没有大规模地被使用,直到上个月末开始夯实python的内容(寒假所谓的一天学完python只是看完了语法,而且很多细节就直接忘掉了),看到了bin(),oct(),hex()函数,才再次萌生了这个想法,做一个练习来使用这些容易被遗忘的函数(当然,后来发现这些使用这几个函数都是不值一提的问题)。

2 构建真正的“快捷方式”

之所以能有信心重启这个项目的另一些底气来源于对非图形化界面系统的深入了解,因为就桌面实现小工具快捷方式这个效果,已经有了另外的实现方法:
在这里插入图片描述
没错啊,又是为了偷懒。因为实在是怀念直接点关机键的感觉(win11有些地方操作实在不人性化,不过这才有菜鸡发挥的空间嘛),不知道从哪里找到了使用txt生成可以直接执行的.bat命令,方法很简单,先新建一个普通的txt文件,在里面写好相应的控制台命令(既然放在桌面,就要注意路径):
在这里插入图片描述
——————
*这个就是打开新的python版本的脚本,使用python3编译,稍微有点麻烦的是当时写好了路径之后还是打不开,最后发现是因为用了中文的输入法然后shift,这个要求比较苛刻,不管是字母还是字符,都必须是半角的英文输入法,不然就算看起来一摸一样,还是会出问题,而且使人发疯。

在txt中写好命令之后,用另存为的方式,选择“所有文件”格式,然后再文件名中手动加入“.bat”的格式:
在这里插入图片描述
保存到桌面,就形成了一个真正意义上的快捷方式。
——————
*理论上,windows里应该也有c的编译器,可以直接运行之前的cbp程序,但是之所以作者在这里扯淡显然那是因为他懒得百度(开玩笑,下次更新一定补上)
在这里插入图片描述
——————
*放在goobers的下面,方便识别,至于为什么不用tools而是goobers,自行观看《蜘蛛侠:平行宇宙》吧\笑哭.jpg

3 python——程序主体

为了方便大家参考,这里先直接放代码,细节后面记录,主要是给菜鸡自己看的,不感兴趣的师傅可以直接跳过
——————
*自从菜鸡的一篇水得不能再水的文章有了上千阅读量——没人点赞———菜鸡意识到不管自己的日记多没营养,还是有怀着希望的宝宝进来观看的,再多嘴一句,其实有水平高一点的师傅能在菜鸡的日记下面喷几句还是很有价值的(言下之意:赶紧来骂!大佬快出现!不要管tmd 素质了,只要能说点有价值的评论,菜鸡愿意被口水淹没),毕竟菜鸡已经彻底厌倦了没有指导的学习(还不如叫摸索),这其实是低效而且折磨的一个过程,虽然每一次的突破都会很振奋,但是就像之前自己闭门推导三角形面积公式的一个大爷,用尽退休时间最后发现其实相应的定理在初中教科书中就有提及(说到这里还是有点悲哀,而且很对不起看过菜鸡的日记的读者,因为这么多所谓文章加起来真的还没有很多up的一篇有价值)。

'''
进制转换小程序,希望能比C语言写出更加简单实用的效果
'''

#初始画面的设置
_break = "\t------"

print()
print()
print()

print("\t0100100      101000     10    01")
print("\t11    01    10    11    10    11")
print("\t10    11    110   10    11    01")
print("\t0001100     01 0  00    10001101")
print("\t1111011     10  1 00    00101001")
print("\t01    11    11   011    01    00")
print("\t10    01    00    00    01    10")
print("\t1000001      001101     00    10" "\t@Ferrero")

print("")
print(_break * 4)

print("Program for conversation of number system. Boh is ready.")
print(_break * 4)
print("TIPS")
print(">>>V to view history data.")
print("")

'''
类似于宏的设置区域
'''

#file
fstream1 = open("d:\python_projects\CONS\data.txt", mode = "w")


#variables
judge_op = 'y'
o_ption1 = None
o_ption2 = None
num = None


'''
main()
'''
print(_break * 4)
print("INPUT MODE(decimalism default):  B/b:Bin  O/o:Oct  H/h:Hex")
o_ption1 = input(">>>Choose the mode:")
print()
print("OUTPUT MODE(decimalism default):  B/b:Bin  O/o:Oct  H/h:Hex")
o_ption2 = input(">>>Choose the mode:")
print()


#store the data
print("option1:", file = fstream1)
print(o_ption1, file = fstream1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

费列罗大帝

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值