代码之家  ›  专栏  ›  技术社区  ›  Leif Andersen

带范围函数的python 3

  •  0
  • Leif Andersen  · 技术社区  · 14 年前

    我可以在终端中输入以下代码,它可以工作:

    for i in range(5):
        print(i)
    

    它将打印:

    0
    1
    2
    3
    4
    

    如预期。但是,我试图写一个类似的脚本:

    print(current_chunk.data)
    read_chunk(file, current_chunk)
    numVerts, numFaces, numEdges = current_chunk.data
    print(current_chunk.data)
    print(numVerts)
    
    for vertex in range(numVerts):
        print("Hello World")
    

    当前chunk.data通过以下方法获得:

    def read_chunk(file, chunk):
        line = file.readline()
        while line.startswith('#'):
            line = file.readline()
        chunk.data = line.split()
    

    其输出为:

    ['OFF']
    ['490', '518', '0']
    490
    Traceback (most recent call last):
      File "/home/leif/src/install/linux2/.blender/scripts/io/import_scene_off.py", line 88, in execute
        load_off(self.properties.path, context)
      File "/home/leif/src/install/linux2/.blender/scripts/io/import_scene_off.py", line 68, in load_off
        for vertex in range(numVerts):
    TypeError: 'str' object cannot be interpreted as an integer
    

    那么,它为什么不吐出“你好世界”490次呢?或者490被认为是一根绳子?

    我像这样打开文件:

    def load_off(filename, context):
        file = open(filename, 'r')
    
    2 回复  |  直到 14 年前
        1
  •  2
  •   Ignacio Vazquez-Abrams    14 年前

    '490' 是一个字符串。尝试 int('490') .

        2
  •  0
  •   Leif Andersen    14 年前

    叹息,没关系,结果它被评估为一个字符串。将for循环更改为

    for vertex in range(int(numVerts)):
        print("Hello World")
    

    解决了问题。