如何编写 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 程序相关推荐

  1. python意外缩进引发逻辑错误_python – IndentationError:意外的缩进错误

    我是 Python的新手,我得到这个错误: Traceback (most recent call last): File "/usr/local/bin/scrapy", lin ...

  2. python程序缩进引起的错误_以下对 Python 程序缩进格式描述错误的选项是:

    以下对 Python 程序缩进格式描述错误的选项是: 答:缩进是用来格式美化 Python 程序的 有效沟通的一个基本条件是演讲者表达清楚 答:√ 中国大学MOOC: 春温临床多有动风之变,其证候多属 ...

  3. python中valueerror是什么错误_我对python中的请求做了什么错误:ValueError:期望值:行1列1(char 0)?...

    我甚至不知道该如何提问,因为这似乎需要大量代码才能了解细节.我将讨论运行时的行为,而不是显示代码.在 我使用请求从一个在线数据库获取信息.当我运行for循环遍历我的所有条目时,在前20个条目中的一个( ...

  4. python怎么画出一个五环_怎么用Python绘制五环

    展开全部 1.创建python文件,test5circle.py: 2.编写python代码,分别定义颜色.圆62616964757a686964616fe59b9ee7ad9431333433623 ...

  5. python中意外缩进是什么意思_语法错误 - 如何处理python中的“意外缩进”?

    语法错误 - 如何处理python中的"意外缩进"? 如何纠正python中的"意外缩进"错误? 15个解决方案 116 votes Python在行的开头使用 ...

  6. python中意外缩进是什么意思_与python中的“意外缩进”怎么办?

    小编典典 Python在行的开头使用空格来确定代码块的开始和结束时间.你可以获得的错误是: 意外缩进.这行代码的开头比以前的空格多,但是前面的不是子块的开头(例如if / while / for语句) ...

  7. python意外缩进怎么修改_意外缩进怎么解决?

    Python在行的开头使用空格来确定代码块的开始和结束时间.你可以获得的错误是: 意外缩进.这行代码的开头比以前的空格多,但是前面的不是子块的开头(例如if / while / for语句).块中的所 ...

  8. python一直报缩进错误_如何避免Python中的缩进错误

    Python是当今编程界领先和新兴的编程平台之一.凭借其丰富的功能和巨大的灵活性,人们可以在这个平台上实现很多,只要他们知道如何操作它.在Python中的这个缩进错误中,我们将介 Python是当今编 ...

  9. python老是报参数未定义_浅谈Python程序的错误:变量未定义

    Python程序的错误种类 Python程序的错误分两种.一种是语法错误(syntax error).这种错误是语句的书写不符合Python语言的语法规定.第二种是逻辑错误(logic error). ...

最新文章

  1. 网络传输模型(概念)
  2. 对象统计信息锁定的解决办法(ORA-20005/ORA-38029)
  3. 根据当前时间如何找到上月的第一天和最后一天?
  4. Android 第七课 4种基本布局之FrameLayout和百分比布局
  5. 洛谷P4718 【模板】Pollard-Rho算法
  6. ruby hash方法_Ruby中带有示例的Hash.flatten方法
  7. 素数判断的java方法_java判断数字是否是素数的方法
  8. Varnish的vcl子程序
  9. 25个Apache性能优化技巧推荐
  10. php session string,教你如何使用php session
  11. 软件测试中的测不准原理
  12. Android系统优化实操总结
  13. android引用aar中的字体,android.mk引用aar
  14. 基于Modelingtoolkit的管网组件(Julia)
  15. HDU6143 Killer Names(数论)
  16. zoc license code
  17. html 微信登陆,登录包含微信登录.html
  18. php 评论插件,织梦评论插件,dedecms评论插件
  19. html mailto 不起作用,关于html:Mailto:准则和字符限制
  20. Resize a VMWare disk (zz)

热门文章

  1. cuda-convnet在Ubuntu12.04+CUDA5.5下的配置
  2. XML在线转化为JSON
  3. .net 下语音合成
  4. qt调用opencv汇总(2)
  5. .NET的Snk使用方法
  6. Java代码的维护与更新,Java常用的规则引擎,让你变动的代码更加容易维护
  7. Oracle sql如何把毫秒转为日期,sql – 将毫秒转换为时间戳
  8. netmiko 记录日志_netmiko连接网络设备
  9. idea lombok插件安装_mac安装的软件和idea的插件推荐
  10. linux 快速启动程序,在Linux上安装ULauncher快速启动应用程序的方法