Python自定义函数中调用.upper()无法将字符串转大写是何原因?
问题根因
Python中字符串是不可变对象,str.upper()方法不会直接修改原字符串内容,执行后会返回一个全新的、转换为全大写格式的字符串。你的代码里仅调用了name.upper(),没有接收该方法的返回值,最终返回的还是传入的原始小写字符串,因此无法得到大写转换结果。
修复方案
直接返回upper()方法的返回值即可:
def Upper_case(name): return name.upper() x=Upper_case('hello') print(x)
运行上述代码会输出HELLO,符合预期。
如果需要保留中间处理逻辑,也可以先将转换结果赋值给变量,再返回变量:
def Upper_case(name): converted_name = name.upper() return converted_name x=Upper_case('hello') print(x)
注意:Python所有内置字符串处理方法(包括
lower()、strip()、replace()、title()等)都遵循相同逻辑:不会修改原字符串,所有处理结果都通过方法返回值返回,使用时必须接收返回值才能拿到处理后的内容。
内容的提问来源于stack exchange,提问作者geetansh pardhi
相关产品推荐
相关产品推荐

