首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在for循环外部引用'line‘时,为什么我的代码说没有定义它?

当我在for循环外部引用'line‘时,为什么我的代码说没有定义它?
EN

Stack Overflow用户
提问于 2019-09-25 03:33:58
回答 1查看 59关注 0票数 0
代码语言:javascript
复制
def attack(n, file):
    global line
    j = randint(0, n-4)
    for i in range(0, j):
        line = file.readline()
    print(line[slice(0, len(line)-1)])

为什么在此语句中没有定义line

代码语言:javascript
复制
print(line[slice(0, len(line)-1)])
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-25 03:44:20

https://docs.python.org/2/library/random.html#random.randint

如果您阅读这里的文档,randint(...)中的值是包含的。因此,在某些情况下,j的值等于0。

由于您在循环内为line赋值,并且如果循环从不执行,则变量line永远不会被赋值。

您可以将randint更改为:

代码语言:javascript
复制
randint(1, n-4) # assuming n > 4, otherwise you will get an error

或者预先为line分配一个虚拟值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58087089

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档