python意外缩进引发逻辑错误_如何编写 Python 程序
如何编写 Python 程序
从今以后,保存和运行 Python 程序的标准步骤如下:
对于 PyCharm 用户
打开 PyCharm。
以给定的文件名创建新文件。
输入案例中给出的代码。
右键并运行当前文件。
注意:每当你需要提供 命令行参数(Command Line Arguments)时,点击 Run -> Edit Configurations 并在 Script parameters: 部分输入相应参数,并点击 OK 按钮:
对于其他编辑器用户
打开你选择的编辑器。
输入案例中给出的代码。
以给定的文件名将其保存成文件。
在解释器中通过命令 python program.py 来运行程序。
案例:使用变量与字面常量
输入并运行以下程序:
# 文件名:var.py
i = 5
print(i)
i = i + 1
print(i)
s = '''This is a multi-line string.
This is the second line.'''
print(s)
输出:
5
6
This is a multi-line string.
This is the second line.
它是如何工作的
下面是这一程序的工作原理。首先,我们使用赋值运算符(=)将字面常量数值 5 赋值给变量 i。这一行被称之为声明语句(Statement)因为其工作正是声明一些在这一情况下应当完成的事情:我们将变量名 i 与值 5 相连接。然后,我们通过 print 语句来打印变量 i 所声明的内容,这并不奇怪,只是将变量的值打印到屏幕上。查看Python的运算对象、运算符、表达式和语句的使用
接着,我们将 1 加到 i 变量所存储的值中,并将得出的结果重新存储进这一变量。然后我们将这一变量打印出来,并期望得到的值应为 6。
类似地,我们将字面文本赋值给变量 s,并将其打印出来。
针对静态编程语言程序员的提示
变量只需被赋予某一值。不需要声明或定义数据类型。
逻辑行与物理行
所谓物理行(Physical Line)是你在编写程序时 你所看到 的内容。所谓逻辑行(Logical Line)是 Python 所看到 的单个语句。Python 会假定每一 物理行 会对应一个 逻辑行。
有关逻辑行的一个例子是诸如 print('hello world') 这样一句语句——如果其本身是一行(正如你在编辑器里所看到的那样),那么它也对应着一行物理行。
Python 之中暗含这样一种期望:Python 鼓励每一行使用一句独立语句从而使得代码更加可读。
如果你希望在一行物理行中指定多行逻辑行,那么你必须通过使用分号(;)来明确表明逻辑行或语句的结束。下面是一个例子:
i = 5
print(i)
实际上等同于
i = 5;
print(i);
同样可以看作
i = 5; print(i);
也与这一写法相同
i = 5; print(i)
然而,我强烈建议你对于每一行物理行最多只写入一行逻辑行。这个观点就是说你不应该使用分号。实际上,我从未在 Python 程序中使用、甚至是见过一个分号。
在一类情况下这一方法会颇为有用:如果你有一行非常长的代码,你可以通过使用反斜杠将其拆分成多个物理行。这被称作显式行连接(Explicit Line Joining)5:
s = 'This is a string. \
This continues the string.'
print(s)
输出:
This is a string. This continues the string.
类似地,
i = \
5
等同于
i = 5
在某些情况下,会存在一个隐含的假设,允许你不使用反斜杠。这一情况即逻辑行以括号开始,它可以是方括号或花括号,但不能是右括号。这被称作 隐式行连接(Implicit Line Joining)。你可以在后面当我们讨论python列表(List)的章节时了解这一点。
缩进
空白区在 Python 中十分重要。实际上,空白区在各行的开头非常重要。这被称作 Python缩进(Indentation)。在逻辑行的开头留下空白区(使用空格或制表符)用以确定各逻辑行的缩进级别,而后者又可用于确定语句的分组。
这意味着放置在一起的语句必须拥有相同的缩进。每一组这样的语句被称为 块(block)。我们将会在Python教程后文章节的案例中了解块这一概念是多么重要。
有一件事你需要记住:错误的缩进可能会导致错误。下面是一个例子:
i = 5
# 下面将发生错误,注意行首有一个空格
print('Value is', i)
print('I repeat, the value is', i)
当你运行这一程序时,你将得到如下错误:
File "whitespace.py", line 3
print('Value is', i)
^
IndentationError: unexpected indent
# 缩进错误:意外缩进
你会注意到第二行开头有一个空格。Python 指出的错误信息告诉我们程序的语法是无效的,意即,程序没有被正确地写入。这一信息对你的意义是 你不能任意开始一个新的语句块(当然,除非你一直在使用默认的主代码块)。你可以使用新块的情况将会在后面诸如控制流等章节加以介绍。
如何缩进
使用四个空格来缩进。这是来自 Python 语言官方的建议。好的编辑器会自动为你完成这一工作。请确保你在缩进中使用数量一致的空格,否则你的程序将不会运行,或引发不期望的行为。
针对静态编程语言程序员的提示
Python 将始终对块使用缩进,并且绝不会使用大括号。你可以通过运行 from __future__ import braces 来了解更多信息。
总结
现在我们已经了解了诸多本质性的细节,我们可以前去了解控制流语句等更多更加有趣的东西。记得一定要充分理解你在本章所阅读的内容。
python意外缩进引发逻辑错误_如何编写 Python 程序相关推荐
- python意外缩进引发逻辑错误_python – IndentationError:意外的缩进错误
我是 Python的新手,我得到这个错误: Traceback (most recent call last): File "/usr/local/bin/scrapy", lin ...
- python程序缩进引起的错误_以下对 Python 程序缩进格式描述错误的选项是:
以下对 Python 程序缩进格式描述错误的选项是: 答:缩进是用来格式美化 Python 程序的 有效沟通的一个基本条件是演讲者表达清楚 答:√ 中国大学MOOC: 春温临床多有动风之变,其证候多属 ...
- python中valueerror是什么错误_我对python中的请求做了什么错误:ValueError:期望值:行1列1(char 0)?...
我甚至不知道该如何提问,因为这似乎需要大量代码才能了解细节.我将讨论运行时的行为,而不是显示代码.在 我使用请求从一个在线数据库获取信息.当我运行for循环遍历我的所有条目时,在前20个条目中的一个( ...
- python怎么画出一个五环_怎么用Python绘制五环
展开全部 1.创建python文件,test5circle.py: 2.编写python代码,分别定义颜色.圆62616964757a686964616fe59b9ee7ad9431333433623 ...
- python中意外缩进是什么意思_语法错误 - 如何处理python中的“意外缩进”?
语法错误 - 如何处理python中的"意外缩进"? 如何纠正python中的"意外缩进"错误? 15个解决方案 116 votes Python在行的开头使用 ...
- python中意外缩进是什么意思_与python中的“意外缩进”怎么办?
小编典典 Python在行的开头使用空格来确定代码块的开始和结束时间.你可以获得的错误是: 意外缩进.这行代码的开头比以前的空格多,但是前面的不是子块的开头(例如if / while / for语句) ...
- python意外缩进怎么修改_意外缩进怎么解决?
Python在行的开头使用空格来确定代码块的开始和结束时间.你可以获得的错误是: 意外缩进.这行代码的开头比以前的空格多,但是前面的不是子块的开头(例如if / while / for语句).块中的所 ...
- python一直报缩进错误_如何避免Python中的缩进错误
Python是当今编程界领先和新兴的编程平台之一.凭借其丰富的功能和巨大的灵活性,人们可以在这个平台上实现很多,只要他们知道如何操作它.在Python中的这个缩进错误中,我们将介 Python是当今编 ...
- python老是报参数未定义_浅谈Python程序的错误:变量未定义
Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...
最新文章
- 网络传输模型(概念)
- 对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
- 根据当前时间如何找到上月的第一天和最后一天?
- Android 第七课 4种基本布局之FrameLayout和百分比布局
- 洛谷P4718 【模板】Pollard-Rho算法
- ruby hash方法_Ruby中带有示例的Hash.flatten方法
- 素数判断的java方法_java判断数字是否是素数的方法
- Varnish的vcl子程序
- 25个Apache性能优化技巧推荐
- php session string,教你如何使用php session
- 软件测试中的测不准原理
- Android系统优化实操总结
- android引用aar中的字体,android.mk引用aar
- 基于Modelingtoolkit的管网组件(Julia)
- HDU6143 Killer Names(数论)
- zoc license code
- html 微信登陆,登录包含微信登录.html
- php 评论插件,织梦评论插件,dedecms评论插件
- html mailto 不起作用,关于html:Mailto:准则和字符限制
- Resize a VMWare disk (zz)
热门文章
- cuda-convnet在Ubuntu12.04+CUDA5.5下的配置
- XML在线转化为JSON
- .net 下语音合成
- qt调用opencv汇总(2)
- .NET的Snk使用方法
- Java代码的维护与更新,Java常用的规则引擎,让你变动的代码更加容易维护
- Oracle sql如何把毫秒转为日期,sql – 将毫秒转换为时间戳
- netmiko 记录日志_netmiko连接网络设备
- idea lombok插件安装_mac安装的软件和idea的插件推荐
- linux 快速启动程序,在Linux上安装ULauncher快速启动应用程序的方法