前言:本系列文章为本人在学习Python过程中的知识整理与总结,旨在记录本人的学习历程,如有错误,感谢指正。
目录
2.1Python的常用内置对象
与C语言不同,Python是一门面向对象的编程语言,在Python中,一切都可以是对象,例如,整数,实数,字符串,列表,元组,集合,甚至包括zip,map等函数,都可以是对象。而对象也包括3种:内置对象,标准库对象和扩展库对象。其中内置对象是可以直接使用的,本节主要介绍Python的内置对象。
2.1.1常量与变量
所谓常量,也称字面量,是指不能被改变的字面值,例如:一个数字,一个字符串,一个元组,这些都可以是常量。
而变量,是指值可以发生变化的量,在Python中,变量的类型也可以随时发生变化,在定义变量时,不需要提前声明变量类型,创建变量后直接使用赋值语句进行赋值即可。使用type()函数可以对变量类型进行查看。
那么,为什么Python的变量类型可以随时改变呢?因为Python变量并不直接存储值,而是存储了值的内存地址或者引用,简单来说,计算机在给变量分配内存时,除了给出一定量的内存空间外,还为其分配了一个单元地址,通过该单元地址,可以找到这块内存中存储的值。这一点与C中的指针变量类似。
Python中,变量的命名需要遵守以下规则:
1.变量名必须以字母,汉字,或下划线开头
2.变量名中不能有空格或标点符号
3.不能使用关键字作变量名(注:关键字是指在该语言中,具有其它作用或特殊含义的单词)
4.注意区分大小写
2.1.2整数,实数,复数与字符串
Python中,内置的数据类型有整数,实数和复数。且支持这些数据类型进行基本的数学运算
注意:
由于精度问题,Python中的实数运算可能会有一定误差,应尽量避免实数之间直接进行相等性测试。
而比较运算可以转化为以两数之差的绝对值是否足够小作为判断两数大小的依据。
Python中没有字符常量和变量的概念,只有字符串类型的常量和变量,即便是单个字符也是字符串。Python中使用单引号,双引号,三引号作为定界符来表示字符串,且字符串的引号之间是可以互相包含的。
由于a变量并未被定义,且没有引号作为定界符,故也无法被识别为字符串 。
有了引号作为定界符,故a被识别为字符串,赋值给变量x。
引号嵌套举例,且“+” 可以连接字符串。
另外,列表,元组,字典,集合都属于Python的内置的容器类对象,具体会在第三章中说明。
2.2Python的运算符与表达式
本节介绍一些Python中常用的运算符,使用运算符将常量,变量连接起来,便组成了表达式,再运用表达式去解决一些问题,以便满足我们的需求。
2.2.1算术运算符
“+”,“-”,“*”,“/”等符号就是数学中最基本的四则运算。
“//”符号为整除符号,即只保留商的整数部分。
“%”为取余符号,即把两数相除的余数作为运算结果。
“**”为幂运算符。
其中,“+”可以支持相同内置类型的对象之间的相加或连接。
“*”可以表示序列元素的重复,生成新的序列对象。
2.2.2关系运算符
关系运算符可以用来判断内置对象的大小关系。在Python中,关系运算符可以连用,要求操作数之间可以比较大小。
2.2.3成员测试运算符
成员测试运算符in可用于成员测试,即测试一个对象是否为另一个对象的元素。
2.2.4逻辑运算符
逻辑运算符and,or,not常用来连接多个条件表达式构成更加复杂的条件表达式
其中and和or具有惰性求值的特点,即当连接多个表达式时,只计算必须要计算的值。下面通过实例来进行详细说明。
如下图,由于and符号前面的表达式已经为假,编译器就直接给出结果,并未判断第二个表达式,所以,第二个表达式的“变量a未被定义”的错误,就没有检查出来,这就是惰性求值,只计算了必须计算的部分
将下图和上图对比起来,会对惰性求值这一特点更有感觉。
2.3Python中常用的内置函数
Python中有许多的内置函数供我们使用,使用这些函数,可以简化,解决许多的问题,比如之前使用的type()函数,可以查看变量的类型。使用dir(__builtins__)可以查看所有内置函数和内置对象。使用help(函数名)可以查看某个函数的用法。本节简单介绍一些常用的内置函数
2.3.1类型转换与判断
内置函数int()可用来获取实数的整数部分,或者在赋值时,对数据进行强制类型转换。
float()函数可以转换为实数,complex()函数可以用来生成复数。ord()函数可以返回单个字符的Unicode码,len()函数可以求字符串的长度,这里就不一一举例了。
2.3.2基本输入/输出(重要)
input()函数与print()函数是Python的基本输入/输出函数,前者用来接受用户键盘的输入,后者用来把数据按照指定格式输出到标准控制台或指定的文件对象。
需要注意的是,input函数一律返回的是字符串,必要时候可以用内置函数对其进行类型转换。
内置函数print()的语法格式如下:
print(value, sep=' ', end='\n')
其中,sep参数用于指定数据之间的分隔符,默认为空格,end参数表示结束符,默认为换行符。可以对其进行修改,达到预期的效果。
这两个函数在用户和计算机之间架起了一座桥梁,实现了计算机与用户之间最基本的交互,在今后的学习过程中将会经常使用。
2.3.3其它常用内置函数
1.range()函数
该函数为Python开发中常用的内置函数,语法格式有3种,下面直接通过实例来进行说明。
range()函数表示生成一个数字区间上的整数序列,默认从0开始,且如果是0的话,则第一个参数可以省略。
第三个位置的参数,表示区间上取数时的间隔,默认为1且可以省略。
2.map()函数
内置函数map()把一个可调用对象func依次映射到一个或多个可迭代对象对应位置的元素上,返回一个map对象,map对象属于迭代器类型。
光从概念上,可能不太好理解,下面举出一些实例。
把range对象中的元素转换为字符串
将range()函数生成的序列依次放入add5函数中,并将返回的结果以列表的形式打印出来
将两个range序列生成的整数依次且对应的放入add()函数中,并将返回的值以列表的形式打印出来
3.zip()函数
该函数用来把多个可迭代对象中对应位置上的元素组合到一起,返回一个zip对象,其中每个元素都是包含原来多个可迭代对象对应位置上元素的元组,最终结果zip对象中包含的元素个数取决于所有参数可迭代对象中最短的那个。
只看定义还是不太好理解,下面举出一些实例加以说明
组合字符串和列表中对应位置的元素,并返回一个列表类型的对象
将字符串拆分成一个个元素,并将其组成一个新的列表
组合3个字符串中对应位置上的元素,组合成元组,再将元组组合成一个新的列表
4.filter()函数
该函数可以将一个单参数函数作用到一个可迭代对象上,返回其中使得该函数返回值等价于True的那些元素组成的filter对象,如果指定函数为None,则返回可迭代对象中等价于True的元素。
func函数用于判断列表中的元素是否由数字和字母组成,filter函数将符合条件的元素筛选出来,组成一个新的列表。