缘起:
上计算机导论课的时候,老师给我们讲了一个读心术的魔术。大致的玩法和原理可以自行在百度上查找一下,不算很难。我突发奇想,可不可以自己做一个生成读心术卡片的程序呢?知道原理就不难,马上动手。
java遇难
我本身是主攻Java的,所以第一想法肯定是用java做,但是实际上手就发现不简单。首先是Java的类型转换比较严格,还有就是切分字符串不好循环,还有嵌套循环的话java语句很多,写起来不顺手。
python惊喜
突然想到之前写一些小工具时发觉python的简洁,于是转念去用python写,经过半小时的编写(主要是python有点久没用好多语法都生疏了混淆了),就写出了不太简洁的第一版,但足矣。
list1=[]
list2=[]
list3=[]
list4=[]
list5=[]
for a in range(0,32):
b=bin(a)
i=0
#把bin()函数产生的多余字符去掉
b=b[2:]
#把字符填充到五位,以0补足
b=b.zfill(5)
print("当前数字: %d" % a)
print("二进制表示:"+b)
for letter in str(b):
i+=1
if (int(letter)==1):
print(i)
if i==1:
list1.append(a)
elif i==2:
list2.append(a)
elif i==3:
list3.append(a)
elif i==4:
list4.append(a)
elif i==5:
list5.append(a)
else:
print("超过31了")
print("")
print("第1张卡片:")
print(list1)
print("第2张卡片:")
print(list2)
print("第3张卡片:")
print(list3)
print("第4张卡片:")
print(list4)
print("第5张卡片:")
print(list5)
总结
我很清楚代码多么不简洁多么不美观,但总归是自己写出来了,以后有机会(大概率不会有)再迭代一下吧。最近学校事情好多,好忙,高数作业还没写呢,文章就只能隔三岔五更新了。