Prev: None
Next: Python3Ⅱ:控制结构
1 什么是Python
1.1 欢迎来到Python!(一)
Python是一种高级编程语言,被广泛应用于各种领域,包括网页编程,脚本,科学计算,和人工智能。 Python很受欢迎,并且被用于各种组织,例如Google(谷歌),NASA(美国国家航空航天局),CIA(美国中央情报局),和Disney(迪士尼)。 Python在运行时由解释器处理。Python不需要在程序执行前先编译。 Part题: Python是一个: A. 一套编辑工具 B. 开发环境 C. 编程语言 |
1.2 欢迎来到Python!(二)
Python现在主要的三大版本分别是1.x,2.x和3.x。这些大版本又被分割成一些小版本,像2.7和3.3。 在Python 3.x写下的代码可以在未来所有的版本中正常运行。 Python 2.x和3.x两个版本都是现在人们普遍使用的版本。 我们的课程使用Python 3.x,但从一个版本切换到另一版本并不难。 Python又有几个不同的解释器,以不同的语言编写。 我们的课程中使用的版本,CPython是目前为止最常用的。 解释器是运行用解释语言编写的脚本的程序,例如,Python。 Part题: 下面哪个句子是正确的? A. Pythin 1.7是最常用的版本 B. Python代码必须先编译 C. CPython是Python的一种解释器 |
2 你的第一个程序
2.1 你的第一个程序
让我们开始一个输出"Hello world!"的小程序。 在Python中,我们使用print语句来输出文字。
恭喜你!你已经创建了你的第一个程序。 在电脑上,你需要去www.python.org下载和安装Python。 Part题: 填空以输出"Hi"。
|
2.2 输出文字
print语句也可以用来输出多行文字。 举个例子:
Python代码经常包含对喜剧团体巨蟒 (Monty Python)的引用。这也是为什么词语"spam(垃圾邮件)"和"eggs(鸡蛋)"经常作为占位符变量被用在Python中,就像其他编程语言中的"foo"和"bar"一样。 Part题: 填空以输出"ni ni ni"。
|
3 简单计算
3.1 简单计算(一)
Python可以进行计算。 直接将算式输入Python控制台,它会输出答案。
加号和减号周围的空格是可选的(没了它们代码也能正常运行),但它们使代码更易读。 Part题: 这行代码的输出是?
|
3.2 简单计算(二)
Python也可以计算乘法和除法,用星号 ( * ) 表示乘法,以及正斜杠 ( / ) 表示除法。 用圆括号决定哪个运算优先计算。
用一个斜杠执行除法,会产生一个小数(编程中称为[ruby=float]浮点数[/ruby])。在后面的课程中会有更多关于浮点数的内容。 Part题: 这行代码的输出是?
A. 8 B. 6.0 C. 6 |
3.3 简单计算(三)
负号表示一个负数。 用负数进行的计算和正数一样。
正号也可以放在数字前面,但没有实际作用,只是用来强调一个数是正数,以增强代码的可读性。 Part题: 填空使代码正确。
|
3.4 简单计算(四)
Python中除以0会产生一个[ruby=error]错误[/ruby],因为答案无法被计算出来。
在Python中,一个错误信息的最后一行表明了这个错误的类型。 Part题: 用选项填空,使其产生一个ZeroDivisionError(除以0错误)
5 0 -5 |
4 浮点数
4.1 浮点数(一)
[ruby=Floats]浮点数[/ruby]在Python中用来表示非整数。 一些浮点数的例子有0.5和-7.8237591。 可以直接通过输入小数点创建一个浮点数,或也可以通过运算,例如整数的除法。浮点数后额外的0会被忽略。
电脑不总能完整精确地存储浮点数,就像我们不能完全写出1/3的小数形式(0.3333333333333333...)。记住这点,因为有时它会产生气人的bug! Part题: 下面哪个数不会被存储为浮点数? A. 7.0 B. 7 C. 2/4 |
4.2 浮点数(二)
如你之前所见,将两个整数相除产生一个浮点数。 两个浮点数的计算,或是一个整数和一个浮点数的计算,都会产生浮点数。
浮点数可以与整数相加,因为Python将整数隐式转换为了一个浮点数。然而,这种隐式转换是Python规则中的一个例外——你通常需要手动转换数值,如果你想要操作它们。 Part题: 写出这行代码的输出。
|
5 其他的数学操作
5.1 指数运算
除了加减乘除,Python同样支持指数运算,也就是计算一个数字的幂。这样的计算用两个星号执行。
Part题: 填空使代码正确。
|
5.2 商和余数
为了得出一次除法操作中的商和余数,分别用[ruby=floor division]地板除法[/ruby]和[ruby=modulo]取模[/ruby]运算符。 地板除法通过使用两个正斜杠完成。 取模运算通过百分号 ( % ) 完成。 这些运算符都可以用在整数和浮点数上。 这份代码展示了20里有3个6,以及1.25除以0.5的余数是0.25。
上面的例子中,20 % 6 = 2,因为3 * 6 + 2 = 20。 Part题: 这行代码的结果是?
A. 1 B. 7 C. 0 |
6 字符串
6.1 字符串(一)
如果你要在Python中使用文本,你需要使用字符串。 [ruby=string]字符串[/ruby]可以通过在两个单引号或双引号中间输入文本来创建。 当Python控制台显示一个字符串时,它通常使用单引号。字符串的分隔符与字符串如何运行没有任何关系。
Part题: 补全代码以创建一个包含"Hello world"的字符串。
|
6.2 字符串(二)
有些字符并不能直接包含在一个字符串中。例如,双引号不能被直接包含在一个双引号字符串;这会导致字符串不完整。 像这样的字符必须通过在其前加一个反斜杠 ( \ ) 来转义。 其他必须被转义的字符有换行符和反斜杠。 双引号只需要在双引号字符串中被转义,单引号在单引号字符串中也一样。
(另一个中文例子:)
\n代表一个新行。 反斜杠也可以用来转义制表符、随机的万国码,和其他很多不能直接输出的字符。这些字符都被称作转义字符。 Part题: 补全代码以创建一个包含单个双引号的字符串。
|
6.3 新行
Python提供了一种简单的方法让你不用手写"\n"以在字符串中换行。用三组引号创建字符串,按下回车,换行的地方会帮你自动转义。
如你所见,在我们回车的地方,\n自动出现在输出。 Part题: 补全输出。
|
7 简单输入输出
7.1 输出
通常地,一个程序接受并处理[ruby=input]输入[/ruby],然后产生[ruby=output]输出[/ruby]。 在Python中,你可以使用print函数产生输出。它将一段文本显示在屏幕上。
当一个字符串被print()输出,其周围的引号不被显示。 Part题: 这行代码的输出是?
A. 一个错误信息 B. print("print") C. 'print("print")' |
7.2 输入
在Python中,为了从用户获得输入,你可以直观地运用函数input。 这个函数图书提示用户去输入,并将他们的输入返回为一个字符串(内容都被自动转义)。
print和input函数在Python控制台中并不是很有用,因为控制台会帮你做输入和输出。然而,它们在实际应用中非常有用。 Part题: 填空使其提醒用户去输入。
|
8 字符串操作
8.1 拼接(一)
就像整数和浮点数,Python中的字符串也可以相加,这个过程叫做[ruby=concatenation]拼接[/ruby],可以在任意两个字符串上进行。 当拼接字符串时,它们是单引号字符串还是双引号字符串并不重要。
字符串与数字无法拼接。接下来我们会看到原因。 Part题: 填上空缺的字符串。
|
8.2 拼接(二)
即使你的字符串中包含数字,它们也被算作字符串而不是整数。字符串与整数相加会产生一个错误,即使它们看起来很相近,但它们仍然是两种不同的东西。
之后的课程中,我们只显示错误信息的最后一行,因为只有它才给出了产生的错误的细节。 Part题: 下面哪行代码会产生错误? A. "7" + 'eight' B. "one" + "2" C. 3 + 4 D. '5' + 6 |
8.3 字符串操作
字符串也可以与整数相乘。这样会产生原本字符串的重复版本。字符串和整数的顺序并不影响结果,但通常我们把字符串放在前。 字符串不能与其他字符串相乘。字符串也不能乘以浮点数,就算浮点数只包含整数。
试试将一个字符串乘0,康康会发生什么。 Part题: 这行代码的输出是?
|
9 类型转换
9.1 类型转换(一)
在Python中,如果不使用指定类型的数据,有些操作是不可能完成的。比如说,你不能将两个分别包含数字2和3的字符串加起来产生整数5,这样的计算会以字符串的形式进行,产生结果'23'。 解决的办法就是[ruby=type conversion]类型转换[/ruby]。 在上面那个例子中,你要用到int函数。
在Python中,目前为止我们用到的类型有整数、浮点数、字符串。用来转换到这些类型的函数分别是int,float,str。 Part题: 这行代码的输出是?
A. "34" B. "7" C. 34 |
9.2 类型转换(二)
另一个类型转换的例子是将用户输入(一个字符串)转换为数字(整数或浮点数),以进行之后的计算操作。
传递非整数或浮点数会产生错误。 Part题: 这行代码的输出是?
A. 210210.0 B. "210210" C. "420.0" D. 420 |
10 变量
10.1 变量(一)
[ruby=Variables]变量[/ruby]在很多中编程语言中都有非常重要的地位,在Python中也不例外。一个变量允许你赋给它一个名字,并给它存储一个值,这样一来你可以用这个名字引用这个值。 使用一个等号给变量赋值。不像我们之前看到的大多数代码,它在Python控制台中并不产生任何输出。
你可以用变量执行对应的运算,就像你之前用数值和字符串做的一样。如你所见,变量在整个程序中都存储着它的值。 Part题: 这些代码的输出是?
A. spamspamspam B. eggseggseggs C. "spamspamspam" |
10.2 变量(二)
你可以改变一个变量的值很多次。在Python中,变量没有特定的类型,所以你可以将字符串赋给一个变量,然后再把数值赋给同一个变量
Part题: 用选项填空,使代码正确。
7 "7" =7 |
10.3 变量名称
Python的变量名称有几个小的限制。你只可以使用字母、数字、下划线为变量命名。而且名称不能以数字开头。 违反这些限制会导致错误。
(Ps. 实测可以用汉字字符作为变量名,但不能使用标点符号,会产生SyntaxError: invalid character in identifier) Python是一个大小写敏感的编程语言。也就是说Lastname和lastname是两个不同的变量名 Part题: 下面哪个是Python中有效的变量名? A. a-variable-name B. A_VARIABLE_NAME C. a variable name |
10.4 变量(三)
尝试引用一个你没有定义过的变量会导致错误。 你可以用del语句移除一个变量,也就是说名字对值的引用被删除了,再尝试使用这个变量会导致错误。被删除的变量后面可以被正常地重新赋值。
你也可以从用户输入给变量赋值。
变量foo和bar被叫做[ruby=metasyntactic variable]伪变量[/ruby],代表它们只是在样例代码中作为占位符名称,作演示之用。 Part题: 这些代码的输出是?
|
11 原位运算符
11.1 原位运算符(一)
原位运算符让你可以更简洁地写像'x = x + 3'这样的代码,写为'x += 3'。 同样的方式对其他运算符,像-、*、/、%都适用。
Part题: 这些代码的输出是?
|
11.2 原位运算符(二)
这些运算符也可以在不是数值的其他类型上,例如字符串。
其他很多编程语言还有其他的运算符,例如 '++' 作为 'x += 1' 的缩写。Python没有这种写法。 Part题: 这些代码的输出是?
|
12 使用编辑器
12.1 使用编辑器
到现在,我们只用了Python的控制台,每次输入并执行一行代码。实际的应用是用不同的方式创建的:很多行代码写在一个文件中,然后用Python解释器执行。 在IDLE中,可以创建一个新文件,输入些代码,保存文件,并运行它。这些既可以用菜单栏完成也可以用键盘快捷键Ctrl+N,Ctrl+S和F5。 文件中的每行代码都被解释器解释,就像你每次在控制台输入一行一样。
结果: Python的源文件后缀名是.py。 Part题: 当一个Python文件运行时,哪些行被执行了? A. 每行 B. 前100行 C. 只有第一行 |
章末检测
1. 下列代码的输出是?
A. 10.0 B. 73.0 C. 703 2. 下列代码的输出是?
A. "cheeseshop" B. 'cheeseshop' C. cheese shop 3. 下列代码的输出是?
4. 填空以声明一个变量,给它加5并输出它的值。
5. 下列代码的输出是?
|