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

Python调用字符串upper/lower方法返回<built-in method>错误的解决

问题原因

你看到的<built-in method upper of str object at 0x102760528>是因为没有调用字符串的upper()和lower()方法——你只是引用了方法本身(未加括号),所以打印的是方法对象的内存地址,而非转换后的字符串。

修复方案

1. 核心修正:调用方法而非引用方法

将User_letter.upper改为User_letter.upper(),User_letter.lower改为User_letter.lower(),这样才能得到转换后的大小写字符串。

2. 优化后的完整代码

def check_letter():
    count = 0

    user_letter = input("Enter a single letter: ").strip()
    user_string = input("Now, enter a string: ").strip()

    # 调用upper()和lower()方法获取转换后的字母
    cap_inp = user_letter.upper()
    low_inp = user_letter.lower()
    print(cap_inp)
    print(low_inp)

    for letter in user_string:
        if letter == cap_inp or letter == low_inp:
            count += 1
    
    print(f"匹配次数: {count}")
    return count > 0

print(check_letter())

3. 简化逻辑(可选)

如果你的需求只是判断字母是否存在(不关心计数),可以直接用成员运算符简化代码,避免遍历计数:

def check_letter():
    user_letter = input("Enter a single letter: ").strip()
    user_string = input("Now, enter a string: ").strip()
    # 不区分大小写判断存在性
    return user_letter.lower() in user_string.lower()

print(check_letter())

补充说明

如果需要严格区分大小写(比如输入"A"只匹配字符串中的"A",不匹配"a"),则无需转换大小写,直接用原始输入的user_letter与字符串字符比较即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 05:03:12