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

Python 3.6.4中输出字符串内存地址而非内容的问题排查

问题分析与解决

嗨,我帮你找出问题所在啦!这是编程新手很容易踩的小坑~

错误根源

你代码里的这一行出了问题:

a=a.upper

这里的upper是字符串类型的方法对象,你直接把这个方法本身赋值给了变量a,而不是调用它来生成大写后的字符串。所以当你打印a时,输出的自然是这个方法对象的描述信息(包括内存地址),而非你想要的大写字母。

修正后的代码

只需要给upper加上括号,变成调用方法的形式就可以了:

while True:
    a = input('Type letter to be capitalised ')
    digit = ['1', '2', '3', '4', '5', '6','7','8','9', '0']
    if a not in digit:
        a = a.upper()  # 加上括号,调用方法获取大写结果
        print("The upper case of your character is {}".format(a))
    else:
        break

额外小优化

其实判断输入是否为数字,有更简洁的写法,不用手动定义数字列表:

while True:
    a = input('Type letter to be capitalised ')
    if not a.isdigit():
        a = a.upper()
        print("The upper case of your character is {}".format(a))
    else:
        break

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 03:53:55