代码在后面呢
猜姓氏程序 7个问题知道你姓啥
假设一位小姐姐姓 张 ,我们用程序来猜出她的姓,她只要依次回答7个问题即可,过程图如下:
经过7个问题的回答,已经得出小姐姐姓 张 了。神奇吧!
原理就不说了,自行去百度了解一下
原理:自己去百度搜索一下
代码实现如下:
print()
print(" "*15, "猜 [姓氏] 程序\n")
print("回答下面的7个问题,猜出你姓什么?你信不信??")
print("在回答前你需要认真的、诚实的回答,否则就不灵了!")
print("_"*50)
print()
dic = {
1: '赵',
2: '钱',
3: '孙',
4: '李',
5: '周',
6: '吴',
7: '郑',
8: '王',
9: '冯',
10: '陈',
11: '蒋',
12: '沈',
13: '韩',
14: '杨',
15: '朱',
16: '秦',
17: '许',
18: '何',
19: '吕',
20: '张',
21: '孔',
22: '蓸',
23: '严',
24: '华',
25: '金',
26: '魏',
27: '姜',
28: '戚',
29: '谢',
30: '柏',
31: '窦',
32: '苏',
33: '潘',
34: '葛',
35: '奚',
36: '范',
37: '彭',
38: '鲁',
39: '马',
40: '花',
41: '方',
42: '俞',
43: '任',
44: '袁',
45: '柳',
46: '鲍',
47: '史',
48: '唐',
49: '费',
50: '薛',
51: '雷',
52: '贺',
53: '倪',
54: '汤',
55: '殷',
56: '罗',
57: '郝',
58: '安',
59: '于',
60: '卞',
61: '齐',
62: '余',
63: '顾',
64: '孟',
65: '黄',
66: '萧',
67: '尹',
68: '姚',
69: '邵',
70: '汪',
71: '毛',
72: '戴',
73: '宋',
74: '茅',
75: '熊',
76: '纪',
77: '祝',
78: '董',
79: '梁',
80: '杜',
81: '季',
82: '贾',
83: '江',
84: '郭',
85: '梅',
86: '林',
87: '刁',
88: '徐',
89: '邱',
90: '高',
91: '夏',
92: '蔡',
93: '田',
94: '胡',
95: '万',
96: '卢',
97: '莫',
98: '房',
99: '缪',
100: '解',
101: '丁',
102: '邓',
103: '洪',
104: '石',
105: '崔',
106: '吉',
107: '邢',
108: '陆',
109: '翁',
110: '储',
111: '全',
112: '宫',
113: '仇',
114: '刘',
115: '景',
116: '詹',
117: '叶',
118: '屠',
119: '乔',
120: '翟',
121: '谭',
122: '牛',
123: '尚',
124: '矍',
125: '冷',
126: '沙',
127: '竺',
}
def fillzero7(num):
return "%07d" % num
allCard = [[], [], [], [], [], [], []]
def createCard():
for i in range(1, len(dic)+1):
strs = fillzero7(int(bin(i)[2:]))
for j in range(1, 8):
if strs[-j] == "1":
allCard[j-1].append(dic[i])
createCard()
List = [1, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048]
def show():
q = 0
global res
for subList in allCard:
q += 1
print("+---+---+---+---+---+---+---+---+")
l = len(subList)
for i in range(1, l+1):
print("|", subList[i-1], end="", sep=" ")
if i % 8 == 0:
print("|")
print("+---+---+---+---+---+---+---+---+")
if i % 8 != 0:
print(
"\n+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+")
print()
yn = input("第%d问,你的姓在上面的表中吗(y/n):" % q)
if yn == "y":
res += List[q-1]
print()
print("#"*50)
res = 0
show()
input("我已经知道你姓什么了:")
if res > 0:
print("\n你姓 -> ", dic[res])
else:
print("\n你不诚实哦!")
缺点:该版本只有 127 个姓氏。
我写了几个版本,姓氏的数量不一样,如下图:
声明:本文仅学习交流使用,不要拿出去骗人哦,在生活中逗一下朋友还是有点乐趣的。