这里是因为电脑突然坏了被迫拖更半天的Lam,电脑一好光速开写第二讲教程。第二讲的内容是变量类型和运算符,在python的角度给大家讲解一下一些基本的编程知识,本期的受众应该是对编程没什么基础的朋友,当然对编程已经有一定基础的同学也可以以这一讲内容作为python的语言学习资料,话说了这么多,让我们开始这一期的内容。
本文的构思框架基本如下:从变量类型和运算符两个大方向出发。在变量类型这块,简单介绍整数类型、浮点数类型、复数类型、字符串类型和布尔类型以及判断变量类型的函数type,然后一些实现基础的类型转换,会涉及eval函数的科普。在运算符方面,简单介绍算数、赋值、比较和逻辑四种基础的运算符的概念。
正文开始:
一、变量类型
首先,python的变量语法结构是name=value,把右边的值赋给左边的变量,这应该是基础到不需要讲的,以及有一些key words不能被用作变量名,这些错其实不容易犯,等大家写代码有了一定量之后什么不能作为变量名自然也牢记于心,感兴趣的同学可以自己去查一下,下面是一个变量定义的例子:
那我们如何去知道一个变量是什么类型呢?我们可以用常识判断,当然,我们也有更加准确靠谱的方法:使用内置函数type,type的用法非常简单,语句格式是:type(变量),即可输出变量类型,下面是示例:
还有两点需要提醒,第一点就是python中是允许多个变量指向同一个值的,意思就是可以实现连等的操作,如:a=b=c=100在python中是成立的,这和C语言有很大的区别。第二点和C语言是相同的,变量的命名具有敏感性,大小写是区分的。例如PAI=3.1414926和pai=3.1415926这是两个完全不同的变量。
做了这么多铺垫,下面开始对变量类型逐个介绍。
(1)整数变量(int)
在python中的整数类型有四种,分别是十进制、二进制、八进制和十六进制,默认为十进制,所以十进制是没有引导符号的,换句话说就是如果你想表明你输入的数字不是十进制而是其他进制,那你就得在你的非十进制数字前加前缀,具体是二进制前加0b或0B,八进制前加0o或0O,十六进制前加0x或0X,示例如下:
至此,整数类型的介绍完毕。
(2)浮点数类型(float)
int是整数类型,float可以被简单理解成带小数点的类型,如果只是定义一个新变量,那么name=value中没有小数点的value就是int,有小数点的就是float,我们可以用刚学的type函数来检验一下:
至此,浮点数类型介绍完毕。
(3)复数类型(complex)
complex是复数类型,就是高中学的整数和虚数的结合,个人感觉用处不会很广,以了解为主。基本格式是complex=a(实数部分)+b(虚数部分)j,我们也可以用complex.real和complex.imag来找到一个复数类型变量的实数和虚数部分,示例如下:
(4)字符串类型(str)
str是字符串类型的变量,写法是name=‘value’(其他写法前面有提及,此处用最常见的一种),需要注意如果是str类型的数字是无法直接用于计算的,他本身并没有数学意义,需要先转换。下面是str的基本写法示例:
至此,字符串类型介绍完毕。
(5)布尔类型(bool)
布尔变量算是最基础的知识,我们先上图后讲解:
而我们还有一个函数,叫bool,这个函数可以帮助我们去看某个变量的bool值。bool值判断也很简单,言简意赅就是非0即True,0即False(不论0是int还是float),以及非空字符串为True,空字符串为False。
至此,布尔类型介绍完毕。
讲了基础的五种变量类型,现在我们来学习这些变量类型如何转换。
先是最基础的int和float类型的转换,如下图所示:
然后在我们手动去转化两种变量类型时,我们能用int和float函数,用法也是很简单,int(float)=原来float的整数部分,float(int)=原来的int+.0。
再往下就是一些错误示范,但诚恳地说这些错误都是为了学习而犯的,想看看结果,我们如果是为了服务于DL做python的基础教学应该不至于犯那么蠢的错误。
下面介绍一种简单的str转换成int和float类型的方法,依然是用int和float函数,只要str是’number’这种形式的就可以直接实现转化,示例如下:
第二个例子是告诉大家,eval可以用作和input函数介绍,我们在第一讲讲到input函数提到了输入的东西是以字符串形式存在的,并没有数学意义,而eval和input的套用就可以实现输入一个有数学意义的变量。
第三个例子是为了让大家更好的理解eval函数去引号的作用,我们print变量Bai2,输出内容就是别卷了,是因为Bai2承载的就是字符串“别卷了”。但是我们然后print(‘Bai2’),那结果会是什么呢,那输出就是Bai2,因为Bai2在此处成为了字符串内容的本身。我们此时用eval函数去套,把“Bai2”变成了Bai2,本质上实现了输出内容到输出变量的转化,希望大家好好地去理解这一点。
至此,变量类型转换介绍完毕。
(1)算数运算符
需要注意的是,还是那句python比较智能,python的除法(/)在进行int和int的计算时会自动将结果转化为float,哪怕结果可以整除,这就和C有很大区别。C中的/对应python中的//,意思是整除,就是整除抹余,这一点注意一下就行。
至此,算数运算符介绍完毕。
顾名思义,比较运算符就是比较两个变量大小的,那涉及比较,就是大于(>),小于(<),等于(==),不等于(!=),大于等于(>=)和小于等于(<=)六种,先进行判断,再返回一个布尔类型的结果。这一块内容相对简单,我们以图促学:
至此,比较运算符介绍完毕。
(4)逻辑运算符
逻辑运算符有and、or和not三种。
and要求左右两边都是True结果才是True,否则其他情况就是False,示例如下:
最后是not,not就是取反,即not True就是False,not False就是True,非常好理解,代码实现如下:
到这,本讲内容就结束了,本系列的目的是速通python,所以可能有一些细节没能提及,略感抱歉。下一讲我们会介绍一些python里的结构例如if...else、elif、for、while和模式匹配等,希望自己的拙见可以帮助大家更有条理的学习。
我们下期再见!
发表评论