Invent Your Own Computer Games with Python 翻译(二)交互式Shell
2013-07-26 15:38
471 查看
第二章 交互式Shell
表达式
值
运算符
表达式求值
变量的存储值
覆盖变量
我们开始编写计算机游戏之前,我们应该先学习一些基本的编程概念。这些概念是值,运算符,表达式和变量。我们不会在本章开始编程,但是知道这些概念和事物的名字,会让学习编程更容易。因为大多数编程是建立在由几个简单的概念结合在一起的基础上,整合成一个高级的程序。
让我们开始学习如何使用Python的交互式shell。
3.1->IDLE(Python的GUI).打开IDLE,让我们用Python做一些简单的数学。交互式shell可以像计算器一样工作。例如:在shell中输入2 + 2,点击回车键。如图2-1,电脑会做出相应回应:4
,2 + 2的和。
图2-1
正如你可以看到,我们可以把Python shell当一个计算器来使用。"+"的符号告诉计算机将数字2和2相加。数字相减使用"-",相乘使用一个星号(*),就像这样:
表2-1:
当以这种方式使用时, +,-,*,/,被称为运算符,因为它们告诉计算机,让它们周围的数字进行指定的操作.
2+2+2+2+2
8*6
10-5+6
2 + 2
如图2-2,是你在输入上述指令后得到的结果。
图2-2
这些数学计算,被称为表达式。计算机可以每秒解决数百万个这样的问题。表达式由运算符(数学符号)连接值(数字)组合而成的。让我们了解究竟什么是值和运算符。
正如你可以看到在上面的例子中的最后一个表达式,你可以在运算符和数字之间输入任意数量的空格。(但是在行头不能键入空格)
图2-3:表达式是由值和运算符组合而成
数字是值的一种类型,而整数是数字的一种类型。整数是数字,但不是所有的数字都是整数。(例如,分数和小数,如2.5是数字但不是整数。)
就好像这猫是宠物中的一种,但并不是所有的宠物都是猫。有人可能有一只宠物狗或宠物寄居蟹。
一个表达式是由运算符(如*乘号)连接着值(例如,整数,如8和6)组合而成的。但是一个单一的值也被认为是一个表达式。
在下一章中,我们将学习有关表达式中文本的处理。Python不只局限于数字,因为它不仅仅只是一个花哨的计算器!
表达式10 + 5,10 + 3 + 2有相同的值,因为它们的计算结果都为15。即使单一的值也被认为是一个表达式,表达式15计算结果是值15。
但是,如果你只在shell中需要输入5 +,你会得到一个错误信息。
>>> 5 +
SyntaxError: invalid syntax
这个错误的发生,是因为5 +并不是表达式。表达式是由运算符将值连接而成的,但是在Python中“+”这个运算符应该连接两个东西。我们只给了它一个。这就是为什么会出现错误讯息的原因。语法错误意味着计算机不能明白你给它的错误指令。如果你输入它难以明白的指令,Python会始终显示一个错误信息。
这似乎并不重要,但很多计算机编程不仅仅是要告诉计算机做什么,更重要的是要确切地告诉计算机怎么做。
可以把变量想象成一个可以容纳值的盒子。你可以用"=",将值存在变量中(称为赋值运算符)。例如,将值 15 存入一个名叫"spam"的变量中 ,在shell中输入spam = 15:
>>> spam = 15
>>>
你可以想象变量就像一个盒子里面存着一个值15(如图2-4所示)。变量名“spam”就是包装盒上的标签,所赋的值就像放在箱子内的小纸条.
图2-4
当你输入命令后按下Enter键,你会发现只是跳到的下一行。只要没有看到错误信息,你可以认为该指令已经成功运行了。>>> 提示你可以输入下一条指令了。
这个指令(spam = 15 )(称为一个赋值语句)创建变量spam,并将值15赋给它。它不同于表达式,语句是一种不会得到任何值的指令,这就是为什么shell中没有在下一行得到值的原因。
你可能会分不清哪些指令是表达式,哪些是语句。其实我们只要记住,如果指令计算结果为单个值,它是一个表达式。指反之,那么这是一个语句。
赋值语句的写法,一个变量后面跟着"=",再紧接着跟着一个表达式。变量里存着的是表达式的计算结果。15本身也是一个表达式。由单个值组成的表达式很容易计算,因为就是它本身。例如,表达式15的计算结果就是15!
记住,变量存储的是值,而不是一个表达式。例如,如果我们有这样一个语句,spam= 10 + 5,10 + 5先被计算得到值15,然后才被存储到变量spam中。
只有在你第一次使用赋值语句将值存在一个变量中的时候,Python会创建该变量。但之后继续赋值给该变量,并不会创建一个相同的变量,只会将存储在该变量中的原来的值替换掉。
现在,让我们来看看,如果我们已经正确的创建了变量。输入变量名到shell中,我们可以看到变量spam中存了什么值.
>>> spam = 15
>>> spam
15
>>>
这里有一个有趣的地方。如果我们在shell中输入spam + 5,我们得到了一个值为20的整数,就像这样:
>>> spam = 15
>>> spam + 5
20
>>>
这似乎有些奇怪,但它是有道理的,是否记得,我们将spam的值设为了15,其实spam +5 就等同于 15 +
5。
如果你在变量没被定义(创建)之前就想使用它,Python会报错,因为没有这样的变量存在。如果输入错误的变量名同样也会报错。
我们可以用另一个赋值语句来改变原本存储在变量中的值。例如,尝试以下操作:
>>> spam = 15
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
>>>
首先我们输入spam + 5,表达式的计算结果为20,这是因为我们将值15存入了变量spam。但是,当我们输入 spam=
3时,值15将会被替换或覆盖,变为3。现在,我们输入
spam + 5,表达式的计算结果为8,因为现在spam的值,是3。
要知道变量当前的值,只要输入在shell中输入变量名。
记住,我们操作变量时,其实都是在操作赋给变量的值。
甚至我们可以用spam的值,重新赋一个全新的值给spam:
>>> spam = 15
>>> spam = spam + 5
20
>>>
赋值语句 spam = spam + 5
可以解释为,“ 变量spam的新值等于spam的原值加5“ 记住,"="右边表达式所得到的计算结果会赋值给在左边的变量。
我们还可以多次给spam加上5:
>>> spam = 15
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam
30
>>>
使用一个以上的变量
当我们编程的时候,我们并不想总是被限制只有一个变量。通常情况下,我们需要使用多个变量。
例如, 让我们分配两个不同的值给变量fizz和eggs,就像这样:
>>> fizz = 10
>>> eggs = 15
现在变量fizz中有值10,eggs中有15.
图2-5
让我们试着指定新值给变量spam。在shell中输入spam = fizz + eggs,可以看到spam被赋予了一个新的值。你能猜到新值是多少么?
>>> fizz = 10
>>> eggs = 15
>>> spam = fizz + eggs
>>> spam
25
>>>
现在spam中的值是25,因为我们将变量fizz和eggs中的值相加赋给了它.
覆盖变量
更改变量里面存储的值是很容易的。只要给同一个变量执行其他的赋值语句就行了。在shell中输入以下代码,看看会发生什么:
>>> spam = 42
>>> print(spam)
42
>>> spam = 'Hello'
>>> print(spam)
Hello
最初,变量spam被整数42所赋值。这就是为什么第一次print(spam)打印出42。但是,当我们spam='Hello'的时候,值42从变量中被抛出和遗忘,变量spam被新的字符串“Hello”所赋值。
在变量中更换一个新的值叫做覆盖值。重点是要知道,旧值将会被永久遗忘。如果你想记住这个旧值并在之后的程序中使用它,你可以在它被覆盖前,将它赋值给一个全新的变量.
>>> spam = 42
>>> print(spam)
42
>>> oldSpam = spam
>>> spam = 'Hello'
>>> print(spam)
Hello
>>> print(oldSpam)
42
在上面的例子中,覆盖spam中的值之前,我们将该值复制给了变量oldSpam。这时,spam和oldSpam存储值都是42。在下一行中,字符串"Hello"被赋值给spam,但在oldSpam并未改变。
在下一章中,我们将复习更多的基本的概念,你将会开始写你的第一个程序!
----------------------------------------我是好辛苦的分割线--------------------------------------------
终于完成第二章的好感动,其实有点基础的童鞋,都可以跳过前几章~~~~~哭~~~~~~
求安慰呀~~~~~~
本章涉及的主题:
整数和浮点数表达式
值
运算符
表达式求值
变量的存储值
覆盖变量
我们开始编写计算机游戏之前,我们应该先学习一些基本的编程概念。这些概念是值,运算符,表达式和变量。我们不会在本章开始编程,但是知道这些概念和事物的名字,会让学习编程更容易。因为大多数编程是建立在由几个简单的概念结合在一起的基础上,整合成一个高级的程序。
让我们开始学习如何使用Python的交互式shell。
一些简单的数学的东西
在Windows上打开IDLE,单击开始->程序->Python3.1->IDLE(Python的GUI).打开IDLE,让我们用Python做一些简单的数学。交互式shell可以像计算器一样工作。例如:在shell中输入2 + 2,点击回车键。如图2-1,电脑会做出相应回应:4
,2 + 2的和。
图2-1
正如你可以看到,我们可以把Python shell当一个计算器来使用。"+"的符号告诉计算机将数字2和2相加。数字相减使用"-",相乘使用一个星号(*),就像这样:
2 +2 | 加法 |
2-2 | 减法 |
2 * 2 | 乘法 |
2/2 | 除法 |
整数和浮点数
在编程(也包括数学)中,如4,0,99,这类的数字,被称为整数。分数或小数(如3.5和42.1和5.0)不是整数。在Python中,5是一个整数,但是,如果我们写为5.0,它就不是一个整数。带小数点的数字被称为浮点数。在数学上,仍然认为5.0与5同样是整数,但在计算机编程中,计算机认为任何带小数点的数字不为整数。表达式
尝试在shell中输入一些数学计算,在输入每一个算式之后都按下回车键:2+2+2+2+2
8*6
10-5+6
2 + 2
如图2-2,是你在输入上述指令后得到的结果。
图2-2
这些数学计算,被称为表达式。计算机可以每秒解决数百万个这样的问题。表达式由运算符(数学符号)连接值(数字)组合而成的。让我们了解究竟什么是值和运算符。
正如你可以看到在上面的例子中的最后一个表达式,你可以在运算符和数字之间输入任意数量的空格。(但是在行头不能键入空格)
图2-3:表达式是由值和运算符组合而成
数字是值的一种类型,而整数是数字的一种类型。整数是数字,但不是所有的数字都是整数。(例如,分数和小数,如2.5是数字但不是整数。)
就好像这猫是宠物中的一种,但并不是所有的宠物都是猫。有人可能有一只宠物狗或宠物寄居蟹。
一个表达式是由运算符(如*乘号)连接着值(例如,整数,如8和6)组合而成的。但是一个单一的值也被认为是一个表达式。
在下一章中,我们将学习有关表达式中文本的处理。Python不只局限于数字,因为它不仅仅只是一个花哨的计算器!
表达式求值
当一台计算机计算表达式10 + 5,并得到值15时,我们认为表达式已经被计算。计算表达式使表达式使成为一个单一的值,就像解决一个数学问题,得到一个数字:问题答案一样。表达式10 + 5,10 + 3 + 2有相同的值,因为它们的计算结果都为15。即使单一的值也被认为是一个表达式,表达式15计算结果是值15。
但是,如果你只在shell中需要输入5 +,你会得到一个错误信息。
>>> 5 +
SyntaxError: invalid syntax
这个错误的发生,是因为5 +并不是表达式。表达式是由运算符将值连接而成的,但是在Python中“+”这个运算符应该连接两个东西。我们只给了它一个。这就是为什么会出现错误讯息的原因。语法错误意味着计算机不能明白你给它的错误指令。如果你输入它难以明白的指令,Python会始终显示一个错误信息。
这似乎并不重要,但很多计算机编程不仅仅是要告诉计算机做什么,更重要的是要确切地告诉计算机怎么做。
变量的存储值
当我们编写程序的时候,往往会想保存表达式得出的值,这样我们就可以在后面的程序中使用它们。我们可以将值存储在变量中。可以把变量想象成一个可以容纳值的盒子。你可以用"=",将值存在变量中(称为赋值运算符)。例如,将值 15 存入一个名叫"spam"的变量中 ,在shell中输入spam = 15:
>>> spam = 15
>>>
你可以想象变量就像一个盒子里面存着一个值15(如图2-4所示)。变量名“spam”就是包装盒上的标签,所赋的值就像放在箱子内的小纸条.
图2-4
当你输入命令后按下Enter键,你会发现只是跳到的下一行。只要没有看到错误信息,你可以认为该指令已经成功运行了。>>> 提示你可以输入下一条指令了。
这个指令(spam = 15 )(称为一个赋值语句)创建变量spam,并将值15赋给它。它不同于表达式,语句是一种不会得到任何值的指令,这就是为什么shell中没有在下一行得到值的原因。
你可能会分不清哪些指令是表达式,哪些是语句。其实我们只要记住,如果指令计算结果为单个值,它是一个表达式。指反之,那么这是一个语句。
赋值语句的写法,一个变量后面跟着"=",再紧接着跟着一个表达式。变量里存着的是表达式的计算结果。15本身也是一个表达式。由单个值组成的表达式很容易计算,因为就是它本身。例如,表达式15的计算结果就是15!
记住,变量存储的是值,而不是一个表达式。例如,如果我们有这样一个语句,spam= 10 + 5,10 + 5先被计算得到值15,然后才被存储到变量spam中。
只有在你第一次使用赋值语句将值存在一个变量中的时候,Python会创建该变量。但之后继续赋值给该变量,并不会创建一个相同的变量,只会将存储在该变量中的原来的值替换掉。
现在,让我们来看看,如果我们已经正确的创建了变量。输入变量名到shell中,我们可以看到变量spam中存了什么值.
>>> spam = 15
>>> spam
15
>>>
这里有一个有趣的地方。如果我们在shell中输入spam + 5,我们得到了一个值为20的整数,就像这样:
>>> spam = 15
>>> spam + 5
20
>>>
这似乎有些奇怪,但它是有道理的,是否记得,我们将spam的值设为了15,其实spam +5 就等同于 15 +
5。
如果你在变量没被定义(创建)之前就想使用它,Python会报错,因为没有这样的变量存在。如果输入错误的变量名同样也会报错。
我们可以用另一个赋值语句来改变原本存储在变量中的值。例如,尝试以下操作:
>>> spam = 15
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
>>>
首先我们输入spam + 5,表达式的计算结果为20,这是因为我们将值15存入了变量spam。但是,当我们输入 spam=
3时,值15将会被替换或覆盖,变为3。现在,我们输入
spam + 5,表达式的计算结果为8,因为现在spam的值,是3。
要知道变量当前的值,只要输入在shell中输入变量名。
记住,我们操作变量时,其实都是在操作赋给变量的值。
甚至我们可以用spam的值,重新赋一个全新的值给spam:
>>> spam = 15
>>> spam = spam + 5
20
>>>
赋值语句 spam = spam + 5
可以解释为,“ 变量spam的新值等于spam的原值加5“ 记住,"="右边表达式所得到的计算结果会赋值给在左边的变量。
我们还可以多次给spam加上5:
>>> spam = 15
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam = spam + 5
>>> spam
30
>>>
使用一个以上的变量
当我们编程的时候,我们并不想总是被限制只有一个变量。通常情况下,我们需要使用多个变量。
例如, 让我们分配两个不同的值给变量fizz和eggs,就像这样:
>>> fizz = 10
>>> eggs = 15
现在变量fizz中有值10,eggs中有15.
图2-5
让我们试着指定新值给变量spam。在shell中输入spam = fizz + eggs,可以看到spam被赋予了一个新的值。你能猜到新值是多少么?
>>> fizz = 10
>>> eggs = 15
>>> spam = fizz + eggs
>>> spam
25
>>>
现在spam中的值是25,因为我们将变量fizz和eggs中的值相加赋给了它.
覆盖变量
更改变量里面存储的值是很容易的。只要给同一个变量执行其他的赋值语句就行了。在shell中输入以下代码,看看会发生什么:
>>> spam = 42
>>> print(spam)
42
>>> spam = 'Hello'
>>> print(spam)
Hello
最初,变量spam被整数42所赋值。这就是为什么第一次print(spam)打印出42。但是,当我们spam='Hello'的时候,值42从变量中被抛出和遗忘,变量spam被新的字符串“Hello”所赋值。
在变量中更换一个新的值叫做覆盖值。重点是要知道,旧值将会被永久遗忘。如果你想记住这个旧值并在之后的程序中使用它,你可以在它被覆盖前,将它赋值给一个全新的变量.
>>> spam = 42
>>> print(spam)
42
>>> oldSpam = spam
>>> spam = 'Hello'
>>> print(spam)
Hello
>>> print(oldSpam)
42
在上面的例子中,覆盖spam中的值之前,我们将该值复制给了变量oldSpam。这时,spam和oldSpam存储值都是42。在下一行中,字符串"Hello"被赋值给spam,但在oldSpam并未改变。
总结
在本章中,你学会了编写Python指令的基本知识。Python需要你用严格的方式来告诉它到底该怎么做,因为电脑不具备常识,只能理解非常简单的指令。您已经了解到,Python可以计算表达式,以及表达式是由值(如2或5)和运算符(如+或- )组合而成的。你还了解到,你可以在变量里存储值,让你的程序能够记住它们,以便在以后使用它们。在下一章中,我们将复习更多的基本的概念,你将会开始写你的第一个程序!
----------------------------------------我是好辛苦的分割线--------------------------------------------
终于完成第二章的好感动,其实有点基础的童鞋,都可以跳过前几章~~~~~哭~~~~~~
求安慰呀~~~~~~
相关文章推荐
- Invent Your Own Computer Games with Python 翻译(三)Strings
- Invent Your Own Computer Games with Python 翻译(四)“猜数字”(1)
- Invent Your Own Computer Games with Python 翻译(一)
- Invent Your Own Computer Games with Python(第二版)(第一章(上))
- Invent Your Own Computer Games with Python(第二版)(第一章(中))
- Create Your Own Search Engine with Python
- Create Your Own Search Engine with Python 用python创建你自己的搜索引擎(二)
- Create Your Own Search Engine with Python (一)
- Create Your Own Search Engine with Python 用python创建你自己的搜索引擎(完)
- Python Flask(四) Integration with the Python Shell
- Debug your shell scripts with bashdb
- Build your OWN Apple iBeacon with a Raspberry Pi
- [翻译]<Web Scraping with Python>Chapter 0.前言
- Make Games with Python & Pygame (5)
- Selenium with Python中文翻译(四)
- Basic Authentication - Authentication with Python(翻译草稿)
- https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detecto
- 翻译:Mastering OpenCV with Practical Computer Vision Projects(第8章)(一)
- 翻译:Mastering OpenCV with Practical Computer Vision Projects(第8章)(二)
- Spark的Python和Scala shell介绍(翻译自Learning.Spark.Lightning-Fast.Big.Data.Analysis)