python 代码的缩进位置决定执行部分

通过近期的代码训练,我发现同样的一个语句,在同一行缩进的位置不同,决定的执行部分也不同。先给一个例子(我想打出1-100中的前20个偶数)

比较第一张图和第二张图。第一张截图实现了我想要的功能。可是当我把“sum+=1”进了一个tab键时,只打出来了前十个偶数(第二张截图)。

比较第一张图和第三张图。把“i+=1”后退了一个tab时,运行为空。

这是为什么呢?是因为python对缩进有着严格的要求,所以决定了代码的运行。

图二把“sum+=1”进了一个tab,使其与if对齐,那么“sum+=1”就不再是if里面的子语句(图一每当print执行一次,“sum+=1”才执行一次。所以sum=20时,print执行了20次,while执行了40次,结束时i=40。所以输出前20个偶数),而是与if平行,每当while语句执行一次,“sum+=1”就执行一次。执行20次后sun=20,i=20.所以循环结束时print只执行了10次。

至于图三与上述类似,“i+=1”后退了一个tab,就成了 if 语句里面的一个子语句,i 的值定义为1,可是不满足if语句的条件,也就无法执行“i+=1”,所以 i 始终为1,程序执行结果为空。

时间: 2024-11-07 12:27:47

python 代码的缩进位置决定执行部分的相关文章

【python】python代码的缩进

未添加着色功能,这个比较麻烦,比如变量是什么色,函数是什么色,需要使用正则. 使用blog里自带的python代码着色,更改如下:print('<pre class="brush:python;toolbar:false">' + all +  '</pre>') 效果及代码如下: # -*- coding: utf-8 -*-   codedic={'"':'"',"'":''','<':'<','>'

python代码在linux终端中执行报错:Unable to init server: Could not connect: Connection refused

python代码在linux终端中执行时报错: Unable to init server: Could not connect: Connection refused Unable to init server: 无法连接: Connection refused 解决办法: 在要执行的python文件里加入以下两句代码: 切记:在最开头添加. import matplotlib matplotlib.use('Agg') 原文地址:https://www.cnblogs.com/ming-4/

使用Java执行python代码并得到结果

由于一些功能用python代码实现会更加方便(python有那么多实用的库真的香),所以可以用python实现部分代码并通过javaWeb来调用执行. python代码文件 test.py import time for i in xrange(1,10): print("process: " + str(i)) time.sleep(2) print("Finish.........") 加入time.sleep(2)让python的输出有停顿间隔性.主要是为了验

转:python代码缩进

习惯了java,c++之类的宽容,初学python,被它摆了道下马威,写if else,竟然必须要我正确用缩进格式,原来在python里不能用括号来表示语句块,也不能用开始/结束标志符来表示,而是靠缩进来表示,好吧,我以后多注意 空白在Python中是重要的.事实上行首的空白是重要的.它称为缩进.在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组.这意味着同一层次的语句必须有相同的缩进.每一组这样的语句称为一个块.我们将在后面的章节中看到有关块的用处的例子. 你需要

python代码缩进和循环语句2

我们接着讲for函数. range()函数和len()函数常常一起用于字符串索引,这里我们要显示每一个的元素及其索引值. #小插曲,在cmd中,清除屏幕的方法是输入cls,即 clean screen. 让我们分析一下这个语句. foo='abc' for i in range(len(foo)): print foo[i],'%d'%i    #值得注意的地方是,这个%d,的后面,要加个%i,意思是,%d要从i里面取值. [称作格式化输出.] a '0' b '1' c '2' 先输出a,我们

Python代码是编译执行还是解释执行?

转载地址:http://blog.csdn.net/zv3e189os5c0tsknrbcl/article/details/78661641 有人在讨论 Python 代码是编译执行还是解释执行?这个问题还可以换一种说法: Python 是编译型语言还是解释型语言?回答这个问题前,我们先弄清楚什么是编译型语言,什么是解释型语言. 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译.不过它是针对特定CPU体系的,这些目标代码只能在特定

关于python代码是编译执行还是解释执行

Python 是编译型语言还是解释型语言?回答这个问题前,应该先弄清楚什么是编译型语言,什么是解释型语言. 所谓编译执行就是源代码经过编译器编译处理,生成目标机器码,就是机器能直接运行的二进制代码,下次运行时无需重新编译. 不过它是针对特定CPU体系的,这些目标代码只能在特定平台执行,如果这个程序需要在另外一种 CPU 上面运行,这个代码就必须重新编译. 它不具备可移植性,但是执行速度快,C.C++这类语言属于编译型语言. 而解释型语言是在代码运行期间逐行翻译成目标机器码,下次执行时,还是需要逐

python代码执行SQL文件(逐句执行)

一.简介 关于Python如何连接数据库并执行SQL语句,几乎所有的Python教程都会讲,教程里基本只介绍了执行单条SQL语句的方法,但是实际生产过程中可不只是执行一两条语句,动辄几十条甚至上百条的SQL语句,一个.SQL的SQL文件正常都会包含多条SQL语句,如果把这些SQL语句直接贴进Python代码文件,势必会影响代码的可读性和美感,代码量也冗余,那么Python能不能像oracle的PL/SQL客户端或者navicat一样读取SQL文件并且执行会是一件非常有趣的事情. 经过不断百度和尝

PEP 8 -- Python代码格式规则

目录 PEP 8 -- Python代码格式规则 概述 教条主义是脑袋瓜中的小妖精 代码布局 缩进 制表符还是空格? 单行最大长度 该在二元运算符的前面还是后面换行 空行 源文件代码编写 导入 模块级双下名称 字符串的引号 表达式和语句中的空格 痛点 其他建议 何时使用收尾逗号 注释 块注释 行内注释 文档字符串 命名规范 最高原则 描述性:命名样式 约定俗成:名称传统 避免使用的名称 ASCII 兼容 包和模块名 类名 Type变量名 异常类名 全局变量名 函数和变量名 函数和方法的参数 方法