如何使用Python的交互式Shell以及进行基本的算术运算?
off999 2024-10-11 14:02 24 浏览 0 评论
1.1一些简单的数学知识
首先,我们将使用Python来解决-一些简单的数学问题。
交互式shell可以像计算器一样工作。在交互式shell的>>>提示符之后, 输入2+2,然后按下回车键(有些键盘上显示为RETURN键)。图1-1展示了这个数学问题在交互式shell中的样子,注意,它给出的响应是数字4。
这道数学题就是一个简单的编程指令。 加号(+)告诉计算机把数字2和2相加。计算机这么做了,并且在下一行中用数字4作为响应。表1-1列出了Python中其他可用的数学符号。
减号(-)是数字相减。乘号(*)是数字相乘。除号(/) 是数字相除。当以这种方式使用时,+、一、*和/叫做操作符( operator)。操作符告诉Python要对它们旁边的数字进行何种运算。
1.1.1整数和浮点数
整数( integer )就是诸如4、99或者0这样的完整的数。浮点数(简写为float )就是诸如3.5.42.1或者5.0这样的分数或小数。在Python中 ,数字5是整数,但是5.0是浮点数。
这些数字都称为值(value ) (稍后,我们将介绍数字以外的其他的值)。在刚才我们在shell中输入的数学问题中,两个2都是整数值。
1.1.2表达式
数学题2 + 2就是表达式( expression)的一个例子。如图1-2所示,表达式是由操作符(数学符号)所连接起来的值(数字)组成的,它会产生可供代码使用的一个新的值。
计算机可以在几秒钟之内解决数百万道这样的数学题。
尝试在交互式shell中输入一些这样的数学问题,每输入完一道题后按一下回车键。
>>> 2+2+2+2+2
10
>>> 8*6
48
>>> 10-5+6
11
>>>2+2
4
这些表达式看上去都像是常规的数学公式,但是注意2+2的示例中的所有的空格。在Python中 ,在值和操作符之间可以添加任意多个空格。然而,当把指令输入到交互式shel中时,必须总是从一行的开头开始执行(即指令之前不能有空格)。
1.2 计算表达式
当计算机求解表达式10 + 5并且得到值15的时候,它就已经计算了这个表达式。计算一个表达式就是把表达式规约为一个数字,就像解答一道数学题而把问题简化成一个数字一样,这个单个的数字就是答案。表达式10+ 5和表达式10 + 3 + 2的计算结果都是15。
当Python计算一个表达式的时候,它就像你在做数学题的时候一样,按照顺序进行操作。有如下的几条规则:
●位于括号之中的表达式部分先计算;
●乘法和除法在加法和减法之前计算;
●从左向右进行计算。
表达式1 +2*3+ 4的计算结果是11,而不是13,因为先计算2*3。如果表达式是(1+2)*(3+4), 那么将会计算为21。因为(1+2)和(3+4)位于括号之中,它们会在乘法之前计算。
表达式可以是任意大小的,但它们总是会求解得到一个数字。即便单个值也可以是表达式:表达式15的计算结果就是值15。例如,表达式8*3/2+2+7-9,通过如下步骤,其计算结果是值12.0:
即便是计算机会执行所有这些步骤,我们在交互式shell中也看不到所有这些步骤。交互式shell只是把结果展示给我们。
>>> 8*3/2+2+7-9
12.0
需要注意的是,除法操作符(/)的运算结果是一个浮点数,例如,24/2的结果是12.0。即便是只使用了一个浮点数的数学运算,其结果也是浮点数,所以12.0 +2的结果是14.0。
1.3 语法错误
如果在交互式shell中输入5+,将会得到如下的一条错误消息。
>>> 5+
SyntaxError: invalid syntax
之所以会产生这个错误,是因为5+不是一个表达式。表达式通过操作符来连接值,因此加法操作符+期待在其前面和后边都有一个值。当漏掉了期待的值的时候,就会出现一条错误消息。
SyntaxError表示Python不理解这条指令,因为你的输入不正确。计算机编程并不只是告诉计算机要做什么,还要知道如何正确地向计算机传达指令。
但是,不要担心出错。错误并不会对计算机造成危害。只要在交互式shell中的下一个>>>提示符处。重新输入正确的指令即可。
1.4在变量中存储值
当表达式计算为一个值的时候,我们可以把这个值存储到变量中,以便在后面可以使用它。我们把变量当做是一个可以保存值的盒子。
一条赋值语句 ( assignment statement )会把一个值保存到一个变量中。输入变量的名称,后边跟着等号(=称为赋值操作符) , 然后是要存储到这个变量中的值。例如,在交互式shell中输入spam= 15:
>>> spam = 15
>>>
这将把值15存储到spam变量的盒子中,如图1-3所示。
当按下回车键时,你不会看到任何响应。在Python中,如果没有出现错误,就表示成功地执行了指令。然后将会出现>>>提示符,你就可以输入下一条指令了。
和表达式不同,语句是不会计算为任何值的指令。正因为如此,在spam= 15之后,交互式shell的下一行中没有显示任何的值。如果你不清楚哪些指令是表达式,哪些指令是语句,那么请记住:表达式会得到一个值,而任何其他类型的指令都是一条语句。
变量保存的是值而不是表达式。例如,考虑一下语句spam= 10 + 5和spam= 10+ 7- 2中的表达式。它们的运算结果都是15。最终结果是相同的:两条赋值语句都把值15保存到了变量spam中。
一个好的变量名能够描述它所包含的数据。想象一下,你将要搬到一个新房子中,并且将你用来搬家的所有精子都贴上一个名为“东西 ( stuf )”的标签。你什么东西也找不到!在本书中,为变量而使用的变量名的例子是spam、eggs和bacon等。
第一次在赋值语句中使用一个变量的时候, Python将会创建该变量。要查看变量中的值 ,在交互式shell中输入该变量的名称:
>>> 2+2+2+2+2
10
>>> 8*6
48
>>> 10-5+6
11
>>>2+2
4
表达式spam得到了变量spam中的值,即15。可以在表达式中使用变量。尝试在交互式shell中输入如下指令:
>>> spam = 15
>>> spam + 5
20
我们已经把变量spam的值设置为15 ,所以输入spam+ 5就像是输入表达式15+5一样。下面是spam +5的运算步骤:
在赋值语句创建变量之前,不能使用该变量。否则,Python将会给出一个NameError错误,因为尚不存在该名称的变量。输错了变量名称也会得到这样一个错误 :
>>> spam = 15
>>> spma
Traceback (most recent call last):
File "<pyshe11#8>", line 1, in <module>
spma
NameError: name 'spma' is not defined
出现这个错误,是因为虽然有spam变量,但是并没有名为spma的变量。
可以通过输入另一条赋值语句来修改变量中存储的值。 例如,尝试在交互式shell中输入如下语句:
>>> spam = 15
>>> spam + 5
20
>>> spam = 3
>>> spam + 5
8
当第一次输入spam + 5时,表达式的计算结果是20,因为我们把15存储在spam中。然而,当输入spam= 3时,用值3替代(或覆盖)了值15,因为变量一次只能保存一个值。 现在,当我们输入spam+ 5时,表达式的计算结果是8,因为现在spam的值是3。覆盖的过程如图1-4所示。
我们甚至可以使用spam变量中的这个值,来给spam赋一个新的值 :
>>> spam = 15
>>>spam=spam+5
20
赋值语句spam = spam + 5的意思是:“spam变量中的新值是, spam当前的值加上5”。通过在交互式shell中输入如下的语句,让spam中的值持续几次增加5 :
>>> spam = 15
>>>spam=spam+5
>>>spam=spam+5
>>>spam=spam+5
>>> spam
30
在这个示例中,我们在第1条语句中给spam赋了一个15的值。在下一条语句中,我们用spam的值加上了5 ,并且将新的值spam+5赋值给了spam,这个表达式会计算为20。当这么做3次以后, spam的值最终为30。
到目前为止,我们只看到了一个变量,但是,在程序中,你可以根据需要创建任意多个变量。例如,让我们给名为eggs和bacon的两个变量分配不同的值,如下所示:
>>> bacon = 10
>>> eggs = 15
现在,变量bacon中是10,变量eggs中是15。每个变量都有自己的盒子,其中拥有其自己的值,如图1-5所示。
尝试在交互式shell中输入spam = bacon + eggs,然后查看spam中的新值:
>>> 8*3/2+2+7-9
12.0
现在,spam中的值是25。当把bacon和eggs相加时,就是把它们的值10和15相加。变量包含的是值而不是表达式。把值25赋给变量spam ,而不是把表达式bacon + eggs赋给变量。在spam = bacon + eggs赋值语句之后,对于bacon或者eggs的修改不会再影响到spam。
1.5 小结
在本章中,我们介绍了关于编写Python指令的基础知识。计算机不具备人的常识,并且只能理解特定的指令。因此,Python需要你准确地告诉它要做什么工作。
表达式是用操作符(如+或- )把值(如2或5 )组合起来。Python可以计算表达式,也就是把表达式规约为一个值。可以把值保存在变量中,以便程序可以记住它们,并且随后可以使用它们。
在Python中,有许多其他类型的操作符和值。在下一章中,我们将介绍更多的基础概念,并且编写第一个程序。我们还会介绍在表达式中使用文本。Python不仅能够处理数字,它的功能比计算器要强大得多。
本文摘自《Python游戏编程快速上手(第4版)》
Python是一种高级程序设计语言,因其简洁、易读及可扩展性日渐成为程序设计领域备受推崇的语言。
本书通过编写一个个小巧、有趣的游戏来教授Python编程,并且采用直接展示游戏的源代码并通过实例来解释编程的原理的方式。全书共21章, 12个游戏程序和示例贯穿其中,介绍了Python基础知识、数据类型、函数、流程控制、程序调试、流程图设计、字符串操作、列表和字典、笛卡尔坐标系、密码学基础、游戏AI模拟、动画图形、碰撞检测、声音和图像等方方面面的程序设计知识。本书可以帮助读者在轻松有趣的过程中,掌握Python游戏编程的基本技能。
本书适合不同年龄和层次的Python编程初学者阅读。
更多相关内容文章
相关推荐
- 实战:用 Python+Flask+Echarts 构建电商实时数据大屏
-
在电商运营中,实时掌握销售趋势、用户行为等核心数据是决策的关键。本文将从实战角度,详解如何用Python+Flask+Echarts技术栈,快速搭建一个支持实时更新、多维度可视化的电商数据大屏,帮...
- DeepSeek完全使用手册:从新手到高手的2000字实操指南
-
一、工具定位与核心功能矩阵(200字)DeepSeek是一款专注于深度推理的强大AI助手,其功能丰富多样,可归纳为4大能力象限:plaintext差异化优势:DeepSeek支持最长达16Ktok...
- Python绘制可爱的图表 cutecharts
-
一个很酷的python手绘样式可视化包——可爱的图表cutecharts。Cutecharts非常适合为图表提供更个性化的触感。Cutecharts与常规的Matplotlib和Seabo...
- 第十二章:Python与数据处理和可视化
-
12.1使用pandas进行数据处理12.1.1理论知识pandas是Python中最常用的数据处理库之一,它提供了高效的数据结构和数据分析工具。pandas的核心数据结构是Serie...
- 5分钟就能做一个Excel动态图表,你确定不学学?(纯gif教学)
-
本文说明下图是一个比较酷炫的Excel动态图表,最难的部分就是用到了一个复选框控件。其实这个控件我很早就见过,但是不会用呀!望洋兴叹。这次呢,我也是借着这个文章为大家讲述一下这个控件的使用。本文没有...
- Python数据可视化:从Pandas基础到Seaborn高级应用
-
数据可视化是数据分析中不可或缺的一环,它能帮助我们直观理解数据模式和趋势。本文将全面介绍Python中最常用的三种可视化方法。Pandas内置绘图功能Pandas基于Matplotlib提供了简洁的绘...
- 如何使用 Python 将图表写入 Excel
-
将Python生成的图表写入Excel文件是数据分析和可视化中常见的需求。Python提供了多种库(如matplotlib、openpyxl和xlsxwriter)来实现这一功能。本文...
- Excel 图表制作太痛苦?用 Python 生成动态交互图表
-
做个动态图表花了3小时?你该换方法了!上周帮销售部做季度汇报图表,Excel操作把我整崩溃了——插入折线图后发现数据源选错,重新选择又得调格式想做动态筛选图表,捣鼓"开发工具"...
- Python Matplotlib 入门教程:可视化数据的基石
-
一、简介Matplotlib是Python中最流行的数据可视化库,提供从简单折线图到复杂3D图形的完整解决方案。其核心优势在于:o灵活性强:支持像素级样式控制o兼容性好:与NumPy、Pa...
- 20种Python数据可视化绘图 直接复制可用
-
本文介绍20种python数据绘图方法,可直接用于科研绘图或汇报用图。1.折线图(LinePlot)-描述数据随时间或其他变量的变化。importmatplotlib.pyplotasp...
- Python os模块完全指南:轻松玩转文件管理与系统操作
-
Pythonos模块完全指南:轻松玩转文件管理与系统操作os模块是Python与操作系统对话的"瑞士军刀",学会它能让你轻松管理文件、操控路径、获取系统信息。本教程通过场景化案例+...
- Python中h5py与netCDF4模块在Anaconda环境的下载与安装
-
本文介绍基于Anaconda环境,下载并安装Python中h5py与netCDF4这两个模块的方法。h5py与netCDF4这两个模块是与遥感图像处理、地学分析等GIS操作息息相关的模块,应用...
- python中的模块、库、包有什么区别?
-
一文带你分清Python模块、包和库。一、模块Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块能定义函数,类和变...
- centos7 下面使用源码编译的方式安装python3.11
-
centos7下面使用源码编译的方式安装python3.11,步骤如下:cd/root#只是将python3.11的安装包下载到/root目录下wgethttps://www.python.o...
- Python其实很简单 第十四章 模块
-
模块是一组程序代码,可以是别人已经写好的,也可以是自己编写的,但都是已经存在的,在编程时直接使用就可以了。模块机制的最大好处就是程序员不再编写重复的代码,而直接利用已有的成果,这样就能将更多的精力投入...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python读取文件夹下所有文件 (59)
- java调用python脚本 (56)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)