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

咨询Python代码print('FFFFFFDCBAA'[int(input())//10])的运行原理

字符串索引实现成绩等级映射的原理解析

先看两段实现相同功能的代码:

精简实现

print('FFFFFFDCBAA'[int(input())//10])

等效的条件判断实现(注:原代码存在语法逻辑错误,已修正)

s = int(input())//10
if s == 10 or s == 9:
    print('A')
elif s == 8:
    print('B')
elif s == 7:
    print('C')
elif s == 6:
    print('D')
else:
    print('F')

二者的对应关系

要搞懂对应逻辑,拆解两个核心部分:

  1. 输入值处理:int(input())//10是把输入的0-100分除以10取整,得到s的取值范围是0到10(对应059、6069、...、90~99、100分)。
  2. 字符串索引映射:Python中字符串是有序字符序列,支持用[索引]获取对应位置的字符(索引从0开始)。把'FFFFFFDCBAA'的索引与字符对应关系列出来:
    • 索引0-5:F(对应s=05,即059分)
    • 索引6:D(对应s=6,即60~69分)
    • 索引7:C(对应s=7,即70~79分)
    • 索引8:B(对应s=8,即80~89分)
    • 索引9-10:A(对应s=910,即9099分和100分)

对比条件判断逻辑,这个字符串的索引刚好和分数段的等级一一对应,用索引直接取值就替代了冗长的if-elif-else判断。

为什么字符串可以直接用索引?

在Python里,字符串属于序列类型,和列表、元组一样,内部是有序排列的元素集合。序列类型的核心特性之一就是支持通过整数索引访问单个元素,索引从0开始计数,所以我们可以直接用字符串[索引]的方式获取对应位置的字符,这是Python内置的基础语法特性。

注:原条件判断代码里的if s==10 or 9是错误写法,9会被当作布尔值True,导致无论s是什么都会进入这个分支;而精简的字符串索引代码是完全正确的实现。

内容的提问来源于stack exchange,提问作者김은주

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 14:25:05