V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
saximi
V2EX  ›  Python

请问这几行代码错在哪里,谢谢

  •  
  •   saximi · 2017-07-05 20:06:05 +08:00 · 6597 次点击
    这是一个创建于 2727 天前的主题,其中的信息可能已经有所发展或是发生改变。
    a=[1]
    a=a[0]
    print("a[0]=%d"%a[0])

    上面的代码输出如下错误,请问这是什么原因呢?
    Traceback (most recent call last):
    File "d:\Python3\t1.py", line 3, in
    print("a[0]=%d"%a[0])
    TypeError: 'int' object is not subscriptable
    15 条回复    2017-07-06 14:59:56 +08:00
    isword
        1
    isword  
       2017-07-05 20:12:38 +08:00
    print("a[0]=%d"%a[0])

    你这个要干嘛,a[0] 已经是数字 1 了,当然不能用下标去访问了
    bxb100
        2
    bxb100  
       2017-07-05 20:19:38 +08:00 via Android
    23333
    SuperMild
        3
    SuperMild  
       2017-07-05 20:24:08 +08:00
    论学好英语对于编程多么重要

    'int' object is not subscriptable
    gulangyu
        4
    gulangyu  
       2017-07-05 20:27:39 +08:00 via Android
    就是你第二行 a = a[0] 使得之前是数组 [1] 的 a 变成了整数 1
    cxbig
        5
    cxbig  
       2017-07-05 20:30:54 +08:00
    弱类型赋值很方便,但是坑也多的是

    目测纯小白自学中。最好还是找个师傅带,或者先学好英语。
    Biwood
        6
    Biwood  
       2017-07-05 20:35:16 +08:00
    显然你还没明白编程中的“赋值”这个词语的含义,建议去补一补基础知识,特别是引用、堆栈相关
    misaka19000
        7
    misaka19000  
       2017-07-05 20:48:32 +08:00 via Android
    @cxbig Python 是强类型
    0asis
        8
    0asis  
       2017-07-05 20:58:59 +08:00 via iPhone
    @cxbig 你是想说动态类型吧
    Kalv8n
        9
    Kalv8n  
       2017-07-05 21:03:59 +08:00 via Android
    不会英语的尴尬
    cxbig
        10
    cxbig  
       2017-07-05 21:48:04 +08:00
    sumhat
        11
    sumhat  
       2017-07-05 22:36:25 +08:00
    应该让楼主解释一下他所理解的这段代码的意思
    leejanfin
        12
    leejanfin  
       2017-07-05 23:08:49 +08:00 via iPhone
    错误信息是说,
    类型错误:'int'对象是不能加下标的
    你的代码运行完第二行之后,a 就已经不是数组了,是个 int 对象。
    slideclick
        13
    slideclick  
       2017-07-06 09:36:41 +08:00
    @cxbig 不过,在所有动态语言里面,大概 python 是最强的:立即报错,中止执行。
    a=a[0]显然是小白
    bingoliu
        14
    bingoliu  
       2017-07-06 13:47:20 +08:00
    看代码估计是想切片,a[:1]
    kios
        15
    kios  
       2017-07-06 14:59:56 +08:00
    ,,,,
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2679 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 15:06 · PVG 23:06 · LAX 07:06 · JFK 10:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.