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
相关产品推荐
相关产品推荐

