You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何根据用户的多选项输入生成对应的个性化回复?

修改后的完整可运行代码
from datetime import datetime

# 1. 询问姓名
name = input('你叫什么名字?')
print(f'嗨 {name} !很高兴认识你~')

# 2. 询问性别并匹配回复
gender = input('你的性别是什么?').strip()
# 兼容多种输入格式,不区分大小写和中英文
is_male = gender in ['男', 'male', 'Male', 'M', 'm']
is_female = gender in ['女', 'female', 'Female', 'F', 'f']
if is_male:
    print('Nice to meet you dude!')
elif is_female:
    print('Nice to meet you miss!')
else:
    print('Nice to meet you!')

# 3. 询问喜欢的颜色
favorite_color = input('你最喜欢的颜色是什么?').strip()
print(f'{favorite_color}?我也超喜欢{favorite_color}的!')

# 4. 询问出生年份计算年龄,加容错和不同回复
while True:
    birth_year = input('你的出生年份是哪一年?').strip()
    try:
        birth_year = int(birth_year)
        # 自动获取当前年份,不用写死
        current_year = datetime.now().year
        age = current_year - birth_year
        if age < 0 or age > 120:
            print('你输入的年份不太对哦,再输一次吧~')
            continue
        # 不同年龄不同回复
        if age < 18:
            print(f'你才{age}岁?好小呀,太羡慕了!')
        elif 18 <= age < 30:
            print(f'你{age}岁?正是青春正好的年纪呀!')
        else:
            print(f'你{age}岁?你年纪好大哦!')
        break
    except ValueError:
        print('输入的不是合法年份哦,请输入数字~')

# 5. 询问是否养宠物并匹配回复
pets_ans = input('你有没有养宠物?').strip().lower()
if pets_ans in ['有', '是的', '对', 'y', 'yes', 'yeah']:
    print('太棒了!你的宠物一定超级可爱吧~')
else:
    print('要是以后想养的话,粘人小猫和温顺小狗都是很不错的选择哦~')
主要改动说明
  • 修复了原代码性别逻辑硬编码的问题:原来的is_male = True是写死的,完全没有用到用户输入的gender值,现在通过判断用户输入的内容来设置变量,同时兼容中英文、大小写多种输入格式,还加了非男非女的兜底回复。
  • 优化了年龄计算逻辑:用datetime模块自动获取当前年份,不用每年手动修改固定值;加了输入容错,避免用户输入非数字或者不合理年份时程序直接崩溃;还根据不同年龄段返回了差异化的回复,更符合交互需求。
  • 修复了原代码的类型错误:原代码直接把int类型的age和字符串拼接,会触发TypeError,现在用f-string自动处理类型转换,不会报错。
  • 补充了宠物问题的回复逻辑:根据用户的肯定/否定回答返回对应的内容。
  • 所有输入都加了strip()去掉首尾空格,避免用户不小心输入的空格影响判断。

内容的提问来源于stack exchange,提问作者jcs1989

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 18:45:04