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

Python字符串大小写互换及数字+5模10功能实现求助(附尝试代码)

问题分析与修复方案

你的代码存在几个核心问题,导致功能无法正常运行:

  • 直接对整个字符串做判断,而没有遍历逐个字符处理。string.upper是方法对象,不是布尔值,所以第一个if判断完全不生效;而且第一个分支里直接return了,后面的数字处理代码永远不会执行。
  • isdigit()是方法,必须加括号调用(char.isdigit())才会返回布尔值,同样不能直接对整个字符串判断,要针对单个字符。
  • 数字处理时,字符串不能直接和整数相加,必须先转成int类型,处理完成后再转回字符串。

下面是修复后的代码,完全符合你的需求:

def fc1(input_string):
    result = []
    for char in input_string:
        if char.isupper():
            result.append(char.lower())
        elif char.islower():
            result.append(char.upper())
        elif char.isdigit():
            num = int(char)
            new_num = (num + 5) % 10
            result.append(str(new_num))
        else:
            # 非字母数字的字符直接保留原样
            result.append(char)
    return ''.join(result)

# 测试示例
print(fc1("Hello World, 521"))  # 输出:hELLO wORLD, 076

代码逻辑说明

  1. 用列表result收集每个处理后的字符,比直接拼接字符串效率更高;
  2. 遍历输入字符串的每个字符,根据类型分别处理:
    • 大写字母转小写后加入列表;
    • 小写字母转大写后加入列表;
    • 数字转成整数,计算(数字+5)%10,再转回字符串加入列表;
    • 逗号、空格这类非字母数字的字符直接保留;
  3. 最后用''.join(result)把列表中的字符拼接成完整字符串返回。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 04:25:35