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

如何简化大小写英文字母转对应序号的Python实现?

英文字母转对应整数的简洁实现方案

问题背景

输入单个英文字母(覆盖小写a-z、大写A-Z),需输出对应整数规则:

  • 小写字母:a→1,b→2……z→26
  • 大写字母:A→27,B→28……Z→52

现有如下可行代码,寻求更简洁的实现方式:

c = input()
if "a" <= c <= "z":
   print (ord(c)-ord("a")+1)
elif "A" <= c <= "Z":
    print (ord(c)-ord("A")+27)

几种简洁实现方式

1. 字符串索引定位法

直接将所有符合顺序的字母拼接成字符串,通过索引位置+1得到结果,一行搞定:

print('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'.index(input()) + 1)

注:和原代码一样,未处理非字母输入的异常情况,若需要可额外添加判断。

2. 三元表达式简化分支

用islower()替代范围判断,把条件逻辑压缩成一行:

c = input()
print(ord(c) - ord('a') + 1 if c.islower() else ord(c) - ord('A') + 27)

逻辑和原代码完全一致,只是写法更紧凑。

3. 统一计算逻辑

利用布尔值转整数的特性,简化大写字母的偏移计算:

c = input()
print(ord(c) - ord('a') + 1 + 26 * c.isupper())

原理:c.isupper()返回的布尔值在计算时会自动转成整数,True对应1、False对应0,大写字母直接加26即可从小写对应值跳到大写区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 01:35:18