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

Python小写转大写函数无法运行,新手求助代码失效原因

代码失效的原因及修复方案

你的代码存在几个关键问题,导致无法正常运行:

1. 局部变量无法被外部访问

new是定义在uppercase函数内部的局部变量,函数外的print语句根本找不到这个变量,运行时会直接抛出NameError错误。

2. 函数未被调用

你仅定义了uppercase函数,但从未执行它,函数内的逻辑完全不会触发。

3. 非小写字母的字符被丢弃

循环只处理了小写字母(ASCII码97-122),其他字符(比如大写字母、数字、空格、符号)都没被添加到new中,最终输出结果会丢失这些内容。

修复后的代码示例

#!/usr/bin/python3
def uppercase(input_str):
    new = ''
    for i in input_str:
        # 小写字母转大写,其他字符直接保留
        if 96 < ord(i) < 123:
            new += chr(ord(i) - 32)
        else:
            new += i
    return new

# 调用函数并打印结果
result = uppercase("hello World! 123")
print(result)

修复说明

  • 将参数名从str改为input_str,避免和Python内置的str类型重名(虽不是错误,但不符合编码规范)
  • 给函数添加return语句,让函数能返回处理后的字符串
  • 新增else分支,保留非小写字母的原始字符
  • 调用函数并接收返回值,再执行打印操作

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 17:45:30