第三章 数字和运算
第三章 数字和运算
- 在上一章中,我为大家讲解了如何安装运行环境,演示了python shell,还玩了一个猜数字的游戏,如果你不能理解代码,完全没关系的,从今天开始我将为大家python编程的方方面面,只要大家跟着我动手实践,就完全没问题的。
3.1 数字和运算(1)
1.Python里的数字
- 先看6*7,在Python中,整数是int,比如6,7,-1,0,42等;小数是float,叫浮点数,比如1.0,-2.21;此外还有复数complex,比如1+1j,12j等;在Python中使用整数和浮点数并没有什么特别之处,只需要沿用输入即可,复数比较少见,我会在之后的课程中再给大家介绍。
- 我们可以用type()来查看数据类型,看起来是不是很像中学中函数的概念?关于函数和内置函数的概念我也会在之后的课程中给大家介绍。
- 比如输入type(42),得到<class 'int'>,这里的class代表的类,int代表42是整数类型; type(-1)类似
- 输入type(1+1j),可以看到输出是<class 'complex'>,表示复数类型
- 注意的是Python中的类型可不止这三个哦,事实上Python中有许许多多的类型,还可以自己定义类型,不同的数字类型之间可以相互转换,比如float(1),1是整形,但Python可以帮我们转换为浮点型,所以输出是1.0;反过来,我们输入int(1.0),Python也会帮我们转换为1;需要注意的是浮点数转换为整数会损失小数部分,比如int(1.2),输出则是1,很明显和1.2不相等了
2. 数字的表示方法
- 在了解了不同的数字后,我们再来看看数字的表示方法,常用的表示数字的方法是十进制表示法,例如42=4X101+2X100=40+2,这里,高位数字代表的是基数10的n次方倍大小,4代表的是40;
- 在计算机的硬件里,只能存储和使用0和1,因此计算机世界里的数字都会表示成0和1两个数字的组合,比如42=101010,这种表示方法叫二进制表示法。
- 和许多编程语言一样,Python默认使用的是十进制表示法,因此你就可以直接使用熟悉的数字系统来编写程序了,不过有时候为了使用方便,也会使用其他进制,Python支持的有二进制、八进制、十六进制表示法,我们再打开Python Shell来实验一下:输入0b101010、 0o52、0x2a,可以看到它们实际上表示的都是同一个数字,42,只是表示方法不同,分别对应42的二进制、八进制、十六进制表示法
- 二进制表示法:以 0b 开头,后面只能跟着0或1
- 八进制表示法:以 0o 开头,后面可以跟着0-7
- 十六进制表示法:以 0x 开头,后面跟着0-9,以及a-f 十六个字符,其中a-f表示十进制中的10-15,因为我们对十进制比较熟悉,所以通常把数字换算成十进制来表示,这里我们简单换算一下:0x2a = 2X161 + aX160 = 32+10 = 42,同样你也可以换算一下上面的两个二进制和八进制
- 在Python里你可以很方便的进行进制的转换,比如bin(42)、 oct(42)、 hex(42),你可以将42分别转换为它的二进制、八进制、十六进制表示,也可以使用hex(0b101010)将二进制转换为十六进制
3. 变量
3.1 变量的定义
- 在小学中我们就接触过变量了,y=1+2x,y和x就是变量,Python中,变量实际就是一个值的名字,变量不仅仅可以表示数值类型,还可以表示其他类型,我们现在先介绍表示数值类型,例如输入 x=1.0,我们就定义了一个变量x,其值为1.0,现在我们只需要知道这是一个赋值语句即可,Shell不会输出任何东西,我们可以输入 x 来获取变量的值;我们在试一下输入 y=0x2a,定义y的是时候我们使用了十六进制来书写这个数字,然后再输入 y 获取它的值,然后看到值是整数42了;然后我们可以改变它的值,输入 x=2.0,再输入 x ,可以看到x 的值变为2了
- 要使用一个变量必须先定义它,使用 变量名=数值 的格式,如果你没有定义就使用它,那么Python就会报错说名字未定义,比如输入 z ,因为之前没定义过z,所以Python就会报错
3.2 变量名必须符合一定的规则
- 在Python中变量名只能包含 字母(a.b.c....)、数字(1,2,3,...)和下划线(_),并且不能以数字开头,不能使用Python中内置的一些关键词汇,此外,一般来说,以下划线(_)开头的变量名一般都有一些特殊的含义,建议初学者不要使用,以后会为大家介绍,牢记这个规则,现在给大家展示一些正确和错误的命名
- 正确: x y z counter the_forty_two a1 _type
- 错误: 0a int float type 【因为0a以数字开头,而后面三个都是Python的内置关键字】
- 建议大家在取名字的时候都遵循固定的规则,并且取有意义的名字,这样会让你的程序更加易懂
- 变量也可以通过type()来查看类型,其类型和其值的类型一致,x是float型,y是int型;在Python中,变量的类型也是可以改变的,比如输入 z=x,再输入 z,再输入type(z),此时可以看到z和x一样都是float类型,值为2.0;输入 z=y,再输入z,再输入type(z),可以看到z变为了int型
3.2 数字和运算(2)
在上一小节中,我们了解了数字、数字类型和变量,这节课里,我将继续为大家介绍Python中的运算
- 首先我们来看一下最简单的四则运算:+-*/,分别对应加减乘除,此外还有除法取整//,让我们来验证一下:
图片!!
- 在这里我们需要注意的是,在计算机中浮点数表示是有精度限制的,无法表示任意精度的小数,比如我们计算 5/3 ,原本应该是无限循环的小数,但Python由于精度的限制,只能表示有限位
图片!!
- 以上计算都比较直观,我们来看一看另一比较特殊的除法取整//,5//4=1,6//7=0,type(5//4)为整形int,这是怎么回事呢?————在Python2和很多早期的编程语言中,整数的除法默认都是只能得到整数的结果的,比如5/4只能得到1,因为会把1.25转为整数1,就会损失小数部分,因此人们需要用5.0/4来得到1.25,Python3改进了除法的计算,使得结果更符合人们的感觉,也避免了很多因为类型的原因导致的计算错误,而//这个计算符号则替代了老的整数除法,用于计算除法,对结果取整,需要注意的是//是向下取整,也就是说是向数轴左侧取整;我们再来试试数字是负数的//,比如-11//3=4
图片!!