python 猜姓氏程序 7个问题知道你姓啥

代码在后面呢

猜姓氏程序 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 个姓氏。

我写了几个版本,姓氏的数量不一样,如下图:
在这里插入图片描述

声明:本文仅学习交流使用,不要拿出去骗人哦,在生活中逗一下朋友还是有点乐趣的。

猜你喜欢

转载自blog.csdn.net/qq_52722885/article/details/126606011