python - for循环中缩进错误时,代码依然可以执行的问题

 mobiledu2502883527 发布于 2022-10-26 14:50

图一如下,正确缩进时:

图二如下,想问下,为何print缩进位置错误时,python依然可以执行,但却没有依次列出range(1,11)的计算,只有最后一个位置的计算?
这是涉及到全局变量,局部变量吗?

小弟刚开始学编程,如果这个问题是因为不了解哪块概念,还望各位大大告知。。。

4 个回答
  • 缩进是python的语法规则,但缩进并非作用域。比如你的例子中:

    for i in list(range(1, 11)):
        table = n * i
        

    这段代码不能将之认为是JS等语言中的:

    for (var i=1; i<11; i++){
        var table = n * i;
    }
    

    前者只是语法上的缩进,后者涉及到了作用域。
    再举个例子:

    import random
    if random.randint(0, 1):
        a = 1
    print a

    有50%的概率可以正常执行,50%不可以正常执行。这是因为 a=1有50%的概率有定义赋值。a并不是在函数内的局部变量,不存在局部变量作用域的问题。不可以跟以下的例子进行概念的混淆。

    def set_a():
        a = 1
    set_a()
    print a  # raise NameError,a没有定义
    2022-10-27 01:14 回答
  • python中,一切皆对象。
    是在用到对象的时候,才去寻找该对象。
    题中,n是题主输入的3,i是for循环后的值10,table被不断赋值,最后的table = n i = 3 10 = 30
    然后print出来。这语法没问题的。

    2022-10-27 01:14 回答
  • 单单从你的结果上来分析,print 缩进导致 for 循环里只有一句话 table = n * i,然后 print 的结果来看,i 和 table 都变成全局的了,但是很明显提示 error,说明这样做不符合规范。

    2022-10-27 01:15 回答
  • 图一图二的缩进都是符合python语法的,语法没错误。
    只不过图二这种输出情况与你预期的不同…

    你的这段代码全是全局变量,不存在局部变量…

    图一因为是print语句在for循环内部,所以循环几次输出几次。
    而图二的print语句在for循环外部,只会执行一次。

    2022-10-27 01:15 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有