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

如何用if/elif/else及比较运算符找出三个输入字母的中间字符

问题分析与代码修正

你的代码存在三个核心问题:

  1. 第三个elif逻辑错误:当第三个字母是最大的时,直接输出第一个字母完全不符合逻辑,此时中间字母应该是前两个字母中较大的那个
  2. 完全遗漏了第三个字母作为中间值的场景(比如示例输入x、c、p,中间值是第三个字母p)
  3. 未处理字母相等的边界情况

修正后的代码

first = input('1st letter: ')
second = input('2nd letter: ')
third = input('3rd letter: ')

# 统一转为大写,消除大小写对字母顺序比较的影响
f_upper = first.upper()
s_upper = second.upper()
t_upper = third.upper()

# 情况1:第二个字母是中间值(处于第一个和第三个之间)
if (f_upper < s_upper and s_upper < t_upper) or (t_upper < s_upper and s_upper < f_upper):
    print(f"The letter in the middle is {second}")
# 情况2:第一个字母是中间值(处于第二个和第三个之间)
elif (s_upper < f_upper and f_upper < t_upper) or (t_upper < f_upper and f_upper < s_upper):
    print(f"The letter in the middle is {first}")
# 情况3:剩下的所有情况(第三个字母是中间值、存在重复字母等)
else:
    print(f"The letter in the middle is {third}")

代码说明

  • 先将所有输入字母转为大写,确保大小写不影响字母顺序比较(比如x和C转大写后为X和C,能正确比较出C < X)
  • 用两个条件分支分别判断第一个、第二个字母是否为中间值,覆盖所有有序排列的场景
  • 最后的else分支兜底,覆盖第三个字母为中间值的场景,以及任意两个/三个字母相等的边界情况(比如输入a、a、b,输出a;输入b、a、a,输出a)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 22:07:25