F2446067129 2021-11-03 18:23 采纳率: 66.7%
浏览 81
已结题

完成一个“科学算命”的程序,即“科学起名”,用户可输入出生年月日时,性别,程序随机给出二字的名字,要求输入内容相同时候输出相同,输入内容不同时候输出不同。

如题,完成一个“科学算命”的程序,即“科学起名”,用户可输入出生年月日时,性别,程序随机给出二字的名字,要求输入内容相同时候输出相同,输入内容不同时候输出不同。用Python写

  • 写回答

1条回答 默认 最新

  • CSDN专家-孙老师 2021-11-03 22:51
    关注

    如果简单点,可以这样考虑:
    设置一个姓名池和一个已经存在的姓名池(初始为空)
    定义一个字典,key为出生日期+性别,value为对应的姓名
    每输入一个出生日期和性别
    去判断是否在字典中
    如果不在,就从剩余的姓名中(总的姓名-已存在的姓名)随机选取一个姓名,并将这个姓名存入已存在的姓名池
    如果存在,就直接从字典中获取“出生日期和性别”对应的姓名
    代码大致如下:

    info_dict={}
    name_exist=[]
    
    import random
    
    name_list=['张三','王五','李四']
    birthday=input('请输入出生日期(年/月/日):')
    gender=input('请输入性别(男或女):')
    
    if birthday+gender not in info_dict:
        res=set(name_list)-set(name_exist)
        name=random.choice(list(res))
        name_exist.append(name)
        info_dict[birthday+gender]=name
    else:
        name=info_dict[birthday+gender]
                           
    print(name)
    

    说明:姓名较少,用完了就会报错。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月11日
  • 已采纳回答 11月3日
  • 创建了问题 11月3日