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

Python是否有命令将字符串转整数?自定义姓名转整数需求

解决方案:将姓名转换为字母数值总和

核心思路

你需要遍历姓名中的每个字母,把每个字母转换成对应的1-26的数值(A/a=1,B/b=2…Z/z=26),再将这些数值相加得到最终整数。ord()函数是正确的工具,只是需要结合循环来处理每个字符。

代码实现

这里有两种适合新手的写法:

写法1:基础循环(易理解)

name = input("请输入姓名:").strip().upper()  # 转成大写统一处理
total = 0
for char in name:
    # 大写字母A的ASCII值是65,减去64后得到1-26的对应数值
    value = ord(char) - ord('A') + 1
    total += value
print(total)

测试输入Rob时,会先转成ROB:

  • R: ord('R')=82 → 82-64=18
  • O: ord('O')=79 →79-64=15
  • B: ord('B')=66 →66-64=2
    总和18+15+2=35,完全符合你的需求。

写法2:生成器表达式简化(进阶)

name = input("请输入姓名:").strip().upper()
total = sum(ord(char) - ord('A') + 1 for char in name)
print(total)

效果和基础循环一致,用sum()函数直接计算每个字符的对应值,代码更简洁。

注意事项

  • 如果需要兼容小写字母,转成小写后用ord(char) - ord('a') +1计算即可。
  • 若姓名包含空格或非字母字符,可先过滤:
name = input("请输入姓名:").strip().upper()
total = 0
for char in name:
    if char.isalpha():  # 只处理字母
        value = ord(char) - ord('A') +1
        total += value
print(total)

学习方向

  • 先吃透Python的for循环结构,掌握如何遍历字符串的每个字符。
  • 熟悉常用字符串方法:upper()、strip()、isalpha()等,这些是文本处理的基础。
  • 理解ord()和chr()的对应关系,它们是字符与ASCII值转换的核心工具。
  • 后续可以学习生成器表达式和内置函数sum()的用法,逐步简化代码逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 12:35:19