Boh 更新升级专用文 Python学习日记3.7/3.13

2022 3.7
凌晨的时候发了第一个python版的Boh,blog链接,出于菜鸡的纪念心理,后续的更新放在这里。
—————————————————————————————————————
3.7第一版代码见原文
—————————————————————————————————————
3.13 更新
这次的版本主要是完成了颜色的设置,还有运用函数优化了一些代码,简化了程序

这次的最大的改进也是问题就是字体颜色,一开始查阅文章得到的方法有两种:
1、利用print本身的功能
2、装在专用函数库

第一种方法看起来简单易行,虽然看到了第二种方法丰富的色彩,菜鸡还是毅然偷懒,选择了第一种方法,但是事情没有想象的那么简单。

第一次按照别人的代码操作结果是这样的:
在这里插入图片描述
没错根本没有效果而且还有一些奇怪的符号(一开始以为是乱码,后来经过师兄指点和菜鸡冷静的思考之后,发现只是\033对应的就是方框这个问题)经过多次尝试结果都一样,在确认语法没有问题之后菜鸡陷入了沉思(摆烂)。
略去过程,最终问题得到了解决(就是问师兄,问百度,问城市大脑),找到了一篇遇到了和我一样问题的文章(博主真是好心人):链接
总结一下,还是库的问题,倒不一定要用utf8的编码,只要装载了colorama,这个print的功能就可以正常使用。
讲colorama的一篇blog

接下来是一些经验总结。
在这里插入图片描述
关于print的格式化输出,就像C语言里面的printf,最值得注意的是python的数据类型问题。一开始尝试用%d,%o,%h(没有找到%b,经过尝试也产生报错),但是这些转换说明(这个概念应该也适用于这里的python)都发生了str型的报错,于是干脆全部都用%s,完全没有问题,输出的时候还是会有0x,0b,0o的标志,而且不用写四个函数(最后把不报错的int也改成str了,真香)。

在这里插入图片描述
在这里插入图片描述
没错,既然学会了一个新花样,那就要好好玩一会,这么一大坨代码还是为了开头的逼格(也就是没什么卵用,除了可以藏一下作者的id,但是也只是说明作者是个不会做水印的菜鸡)。
最后看看优化过的界面:
在这里插入图片描述
看起来应该好了不少,但是刚刚又发现一个问题:
在这里插入图片描述

是的…控制台模式下出现部分乱码(但是上面的部分没有问题),这个bug还得接着修…
—————————————————————————————————————
6.23更新

其实这次更新没啥有用的内容,主要就是证明菜鸡虽烂但是没有摆。经过一下午的研究(试错,撞墙,发呆),至少搞明白了为啥会出先上次那个bug,其实也挺好理解,就是那个格式仅适用于输出,input的字符不算严格意义的输出,所以会乱码,但是目前还没有找到解决办法,只好先删了,晚上再想 /手动狗头
—————————————————————————————————————
最新代码全部:

#functions and databases
from colorama import init
init(autoreset = True)

_break = "\t------"
def _b(_num):
	print(_break * _num)

def boh_blue(_targ):
	print("\033[1;34m%s\033[0m" % _targ)

#初始画面的设置


print()
print()
print()

print("    \033[1;30m10011001010000100001000100000100001000\033[0m")
print("    \033[1;30m110\033[0m0100100\033[1;30m101000\033[0m101000\033[1;30m00101\033[0m10\033[1;30m0011\033[0m01\033[1;30m001\033[0m")
print("    \033[1;30m001\033[0m11\033[1;30m1100\033[0m01\033[1;30m0010\033[0m10\033[1;30m1100\033[0m11\033[1;30m1001\033[0m10\033[1;30m0001\033[0m11\033[1;30m011\033[0m")
print("    \033[1;30m000\033[0m10\033[1;30m0000\033[0m11\033[1;30m1110\033[0m110\033[1;30m000\033[0m10\033[1;30m1111\033[0m11\033[1;30m1001\033[0m01\033[1;30m111\033[0m")
print("    \033[1;30m110\033[0m0001100\033[1;30m11001\033[0m01\033[1;30m0\033[0m0\033[1;30m11\033[0m00\033[1;30m1101\033[0m10001101\033[1;30m101\033[0m")
print("    \033[1;30m111\033[0m1111011\033[1;30m01100\033[0m10\033[1;30m01\033[0m1\033[1;30m0\033[0m00\033[1;30m1111\033[0m00101001\033[1;30m111\033[0m")
print("    \033[1;30m110\033[0m01\033[1;30m0000\033[0m11\033[1;30m0010\033[0m11\033[1;30m010\033[0m011\033[1;30m1110\033[0m01\033[1;30m1110\033[0m00\033[1;30m111\033[0m")
print("    \033[1;30m110\033[0m10\033[1;30m1000\033[0m01\033[1;30m0011\033[0m00\033[1;30m0110\033[0m00\033[1;30m1110\033[0m01\033[1;30m1111\033[0m10\033[1;30m010\033[0m")
print("    \033[1;30m101\033[0m1000001\033[1;30m101101\033[0m001101\033[1;30m11001\033[0m00\033[1;30m1011\033[0m10\033[1;30m110\033[0m")
print("    \033[1;30m10001001111100100001000100000FERRERO01\033[0m")

print()
_b(4)

print("Program for conversation of number system. Boh is ready.")
_b(4)
print("TIPS")
print("\033[1;30m>>>\033[0mV 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()
'''
_b(4)
print("INPUT MODE(decimalism default):  \033[1;30mB/b:Bin  O/o:Oct  H/h:Hex\033[0m")
o_ption1 = input(">>>Choose the mode:")
#o_ption1 = input("\033[1;30m>>>\033[0mChoose the mode:")
#print("\033[1;30m>>>\033[0mChoose the mode:")
print()
print("OUTPUT MODE(decimalism default):  \033[1;30mB/b:Bin  O/o:Oct  H/h:Hex\033[0m")
o_ption2 = input(">>>Choose the mode:")
print()


#store the data
print("option1:", file = fstream1)
print(o_ption1, file = fstream1)
print("option2:", file = fstream1)
print(o_ption1, file = fstream1)


#judge the mode
while judge_op == 'y':
	if len(o_ption1) == 0:
		print("INPUT")
		num = int(input("\033[1;30m>>>\033[0mInput the number:"))

		if len(o_ption2) == 0:
			num = num
			boh_blue(num)

		if o_ption2 == 'b' or o_ption2 == 'B':
			num = bin(num)
			print("\033[1;30m__1...5...9...13..17..21..25..29..33..\033[0m")
			boh_blue(num)

		if o_ption2 == 'o' or o_ption2 == 'O':
			num = oct(num)
			boh_blue(num)

		if o_ption2 == 'h' or o_ption2 == 'O':
			num = hex(num)
			boh_blue(num)

	if o_ption1 == 'b' or o_ption1 == 'B':
		print("INPUT")
		print("                    1...5...9...13..17..21..25..29..33..")
		num = input("\033[1;30m>>>\033[0mInput the number:")

		#transfer into bin
		numsum = 0
		numsum = int(numsum)

		numing = list(num)
		#print(numing)
		numlen = len(num)
		#print(numlen)
		_index = 0
		_index = int(_index)

		while int(_index) < numlen:
			numsum = int(numsum) + int(num[int(numlen)- 1 - _index]) * (2 ** _index)
			_index = int(_index) + 1

		#print(numsum)
		num = numsum

		if o_ption2 == 'b' or o_ption2 == 'B':
			num = bin(num)
			print("\033[1;30m__1...5...9...13..17..21..25..29..33..\033[0m")
			boh_blue(num)

		if o_ption2 == 'o' or o_ption2 == 'O':
			num = oct(num)
			boh_blue(num)

		if len(o_ption2) == 0:
			num = int(num)
			boh_blue(num)

		if o_ption2 == 'h' or o_ption2 == 'O':
			num = hex(num)
			boh_blue(num)

	if o_ption1 == 'o' or o_ption1 == 'O':
		print("INPUT")
		num = input("\033[1;30m>>>\033[0mInput the number:")

		#transfer into oct
		numsum = 0
		numsum = int(numsum)

		numing = list(num)
		#print(numing)
		numlen = len(num)
		#print(numlen)
		_index = 0
		_index = int(_index)

		while int(_index) < numlen:
			numsum = int(numsum) + int(num[numlen - 1 - _index]) * (8 ** _index)
			_index = int(_index) + 1

		#print(numsum)
		num = numsum

		if o_ption2 == 'b' or o_ption2 == 'B':
			num = bin(num)
			print("\033[1;30m__1...5...9...13..17..21..25..29..33..\033[0m")
			boh_blue(num)

		if o_ption2 == 'o' or o_ption2 == 'O':
			num = oct(num)
			boh_blue(num)

		if len(o_ption2) == 0:
			num = int(num)
			boh_blue(num)

		if o_ption2 == 'h' or o_ption2 == 'O':
			num = hex(num)
			boh_blue(num)

	if o_ption1 == 'h' or o_ption1 == 'H':
		print("INPUT")
		num = input("\033[1;30m>>>\033[0mInput the number:")

		#transfer into hex
		numsum = 0
		numsum = int(numsum)

		numing = list(num)
		#print(numing)
		numlen = len(num)
		#print(numlen)
		_index = 0
		_index = int(_index)

		while int(_index) < numlen:
			if num[numlen - 1 - _index] == 'a' or num[numlen - 1 - _index] == 'A':
				numsum = int(numsum) + 10 * (16 ** _index)
			if num[numlen - 1 - _index] == 'b' or num[numlen - 1 - _index] == 'B':
				numsum = int(numsum) + 11 * (16 ** _index)
			if num[numlen - 1 - _index] == 'c' or num[numlen - 1 - _index] == 'C':
				numsum = int(numsum) + 12 * (16 ** _index)
			if num[numlen - 1 - _index] == 'd' or num[numlen - 1 - _index] == 'D':
				numsum = int(numsum) + 13 * (16 ** _index)
			if num[numlen - 1 - _index] == 'e' or num[numlen - 1 - _index] == 'E':
				numsum = int(numsum) + 14 * (16 ** _index)
			if num[numlen - 1 - _index] == 'f' or num[numlen - 1 - _index] == 'F':
				numsum = int(numsum) + 15 * (16 ** _index)
			if num[numlen - 1 - _index] == '0':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '1':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '2':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '3':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '4':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '5':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '6':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '7':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '8':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)
			if num[numlen - 1 - _index] == '9':
				numsum = int(numsum) + int(num[numlen - 1 - _index]) * (16 ** _index)

			_index = int(_index) + 1

		#print(numsum)
		num = numsum

		if o_ption2 == 'b' or o_ption2 == 'B':
			num = bin(num)
			print("\033[1;30m__1...5...9...13..17..21..25..29..33..\033[0m")
			boh_blue(num)

		if o_ption2 == 'o' or o_ption2 == 'O':
			num = oct(num)
			boh_blue(num)

		if len(o_ption2) == 0:
			num = int(num)
			boh_blue(num)

		if o_ption2 == 'h' or o_ption2 == 'O':
			num = hex(num)
			boh_blue(num)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

费列罗大帝

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

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

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

打赏作者

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

抵扣说明:

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

余额充值