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

Python多条件if语句判断性别输入时出现逻辑错误求助

问题分析与解决

嘿,我一眼就揪出你代码里的问题啦!问题出在性别判断的逻辑条件错误上,咱们来拆解一下:

你写的判断条件是:

if gender!='M' or gender!='F':
    print "Wrong input."

这个逻辑完全不对哦!不管你输入M还是F,这个条件都会成立:

  • 当输入M时,gender!='M'是假,但gender!='F'是真,OR逻辑只要有一个为真就会执行代码块,所以会输出"Wrong input";
  • 当输入F时,gender!='F'是假,但gender!='M'是真,同样触发错误提示。

修正方案

你可以用两种方式修复这个逻辑:

方式1:把or改成and

只有当输入既不是M也不是F的时候,才提示错误:

if gender != 'M' and gender != 'F':
    print "Wrong input."

方式2:用not in判断(更简洁)

直接检查输入是否不在合法选项里:

if gender not in ('M', 'F'):
    print "Wrong input."

修正后的完整代码片段

def check(aw,iw):
    if abs(aw-iw)<5 :
        print "Your weight is normal."
    elif abs(aw-iw)>5 and abs(aw-iw)<15 :
        print "Your weight is about normal."
    else:
        print "Your weight is not normal."
    return

print "Enter your gender (M/F)"
gender=raw_input()
if gender not in ('M', 'F'):
    print "Wrong input."
else:
    if gender=='M':
        # 这里补充你原本的体重输入逻辑即可
        pass
    else:
        # 处理女性体重判断的逻辑
        pass

顺带提一句:如果要兼容大小写输入(比如用户输入小写m或f),可以把输入转成大写再判断:gender = raw_input().upper(),这样容错性更好~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:54:49