零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

一.数据类型

1.定义:在python中,数据类型分为两种。内置的和自定义的。内置的包括数字,字符串,布尔,列表,元组,字典,Bytes,集合这些常用的以及一些不常用的数据类型。而自定义的,一般以类的形式,根据需要的组合以上内置类型成为独特的数据类型。

2.区分数据类型优点:

(1)更好的分配管理内存;节省不必要的开支,提高读取速度和运行效率。

(2)方便统一管理,提供同样的API。这样我们可以为同一数据类型,提供同样的操作,限制其它不允许的行为,也易于查找错误,定位错误。

(3)区分数据类型,更贴切人类对自然事物的分类管理习惯。可以让我们对抽象的数据有了可分辨的行为和自然的记忆。

二.数字类型(整数int,浮点数float,复数complex)

1.数字类型

(1)定义:数字类型是不可变类型。所谓不可变类型,指的是类型的值一旦有所不同,那么它就是一个全新的对象,数字1和2代表两个不同的对象。对变量重新赋值一个数字类型,会新建一个数字对象。

(2)注意:这里还是要强调一下python中变量与数据类型的的关系,变量只是对某个对象的引用或者是代号,名字,调用等等,变量本身没有数据类型概念。

2.整数int

(1)定义:通常被称为整型,数值为正或者负,不带小数点。python3的整型可以当做Long类型使用,所以python3没有python2的long类型。通常表示数字的时候,通常使用十进制(decimal)来表示。有时我们还会用八进制和十六进制来表示:十六进制用0x前缀和0-9,a-f来表示,例如:0xff00;八进制用0o前缀和0-7表示,例如:0o45。

(2)内存:python的整数长度为32位,并且通常是连续分配内存空间的。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(3)小整数对象池:python初始化时会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含262个指向整数对象的指针数组,范围是-5到256。即使我们没有创建它,python后台已经悄悄为我们创建了。这样做的好处时可以节省内存。范围也是我们常用的数值。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(4)整数缓冲区:除了小整数对象池,python还有整数缓冲区的概念,也就是刚刚删除的整数不会真正立刻删除回收,而是在后台缓冲一段时间,等待下次调用。(注意:在交互环境中演示不出效果,该效果在pycharm中实现;且注意不是小对象池中的值。)

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

3.浮点数float

(1)定义:浮点数也就是小数,如1.23,3.14,-9.15等等,但是对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代,1.23*10^9就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。

(2)浮点数与整数转换:向下取整。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

4.复数complex

(1)定义:复数是由实数部分和虚数部分组成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

 (2)复数的创建:

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 

5.数学计算

对于数学计算,python中有一个math库,它包含了我们大多可能需要的科学计算函数,如下:

ceil(x)     返回数字的上入整数,如math.ceil(4.1) 返回 5
exp(x)      返回e的x次幂(ex),如math.exp(1) 返回2.718281828459045
fabs(x)     返回数字的绝对值,如math.fabs(-10) 返回10.0
floor(x)     返回数字的下舍整数,如math.floor(4.9)返回 4
log(x)      如math.log(math.e)返回1.0,math.log(100,10)返回2.0
log10(x)     返回以10为基数的x的对数,如math.log10(100)返回 2.0
modf(x)     返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。
pow(x, y)     x**y 运算后的值。
sqrt(x)     返回数字x的平方根
acos(x)     返回x的反余弦弧度值。
asin(x)     返回x的反正弦弧度值。
atan(x)     返回x的反正切弧度值。
atan2(y, x)    返回给定的 X 及 Y 坐标值的反正切值。
cos(x)      返回x的弧度的余弦值。
hypot(x, y)    返回欧几里德范数 sqrt(xx + yy)
sin(x)      返回的x弧度的正弦值。
tan(x)      返回x弧度的正切值。
degrees(x)     将弧度转换为角度,如degrees(math.pi/2) , 返回90.0
radians(x)     将角度转换为弧度

 例如:

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 

6.python常用内置函数

max(x1, x2,...)   返回给定参数的最大值,参数可以为序列。
min(x1, x2,...)   返回给定参数的最小值,参数可以为序列。
abs(x)            返回数字的绝对值,如abs(-10) 返回 10。
round(x [,n])     返回浮点数x的四舍六入五成偶,如给出n值,则代表舍入到小数点后的位数。

二.布尔类型bool

1.定义:对于错,0和1,正和反,都是传统意义上的布尔类型,但是在python中,布尔类型只有两个值,True和False,请注意是英文单词的对错,并且首字母要大写,不能其他花式变形。且布尔值通常用于判断条件是否成立。例如:

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

2.bool()的使用:python内置的bool()函数可以用来测试一个表达式的布尔值结果。

>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(-1)
True
>>> bool('')
False
>>> bool("False")
True
>>> bool("True")
True
>>> bool(0.0)
False
>>> bool(1.0)
True
>>> bool(-0.0)
False

 总而言之,0,0.0,-0.0,空字符串,空列表,空元组,空字典,这些都被判定为False;而-1,"False"被判定为True。即非零非空即为True。

3.布尔类型运算

(1)and运算是与运算,只有所有都为True,结果才为True:

>>> True and True
True
>>> True and False
False
>>> False and False
False
>>> 5 > 3 and 3 > 1
True

 (2)or运算时或运算,只要其中一个为True最后结果即为True:

>>> True or True
True
>>> True or False
True
>>> False or False
False
>>> 5 > 3 or 1 > 3
True

 (3)not运算是非运算,它是单目运算符,把True变为False,False变为True:

>>> not True
False
>>> not False
True
>>> not 1 > 2
True

(4)在做四则运算时,把True看做1,False看做0:

>>> True > False
True
>>> True < False
False
>>> True >=False
True
>>> True -1
0
>>> True + 1
2
>>> True *3
3
>>> False -1
-1

4.空值None

空值不是布尔类型,严格来说放在这里是不合适的,只不过和布尔值关系比较紧密。空值是python里的一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是一个整型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。

>>> bool(None)  # None的bool值永远为False
False

>>> type(None)
<class 'NoneType'>

三.字符串类型str

1.定义:字符串是python中最常用的数据类型之一,使用单引号或双引号来创建字符串,使用三引号创建多行字符串。

2.字符串的创建:

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

注意:单引号和双引号是一对对的;所有符号都是英文状态下的。

3.存储方式:字符串是不可变的序列数据类型,不能直接修改字符串本身,和数字类型一样!

对于以下num和num1存储是一样的吗?

num = 200
num1 = '200'

 实际上。对于数值类型而言,一个字节最大可存储的值是256,所以,num就存储在一个字节中。但是字符串因自身序列数据结构,所以num1为'200'的存储模式为'2''0''0'分别存储在三个字节中。

4.字符串的下标:由于字符串是序列数据结构,所以当我们要从字符串中取出某一个字母,可以通过它的下标索引来索取(默认从0开始)。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型) 

 注意,索取不能超过它的下标索引,否则就会报错。且字符串是不可变的。

 

5.字符串切片  s[start:stop:step]  (默认s为我的一个字符串)

切片参数:start 起始位置,默认索引从0开始;   stop  结束位置,默认最后一个元素; step  步长,默认为1。注意切片索引是左闭右开的。

例子:s = "hello world"

(1)取出s中的world值

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(2)隔一个字符取一个

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型) 

(3)将s逆序取出

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

6.字符串类型转换

(1)将字符串转为整数类型

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型) 这里报错注意,int()为十进制。

(2)将整数类型转为字符串

>>> str(1)
'1'

 

7.字符串组成方式

(1)+号直接拼接

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 (2)%s %d %f

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 (3)str.format()

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 (4)f"

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 

8.字符串的常用函数

(1)s.find(sub)    返回该元素最小索引。零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(2)s.index(sub)   返回该元素最小索引。实际上,该方法与s.find()方法一样,只不过当元素不存在时,它会报错,所以建议使用s.find()。

(3)s.replace(old,new[ ,count])    替换。 

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(4)s.split(sep=None)    以sep来分割字符串,并返回列表。sep默认为None,分割默认为空格。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型) 

 (5)s.startswith(prefix[ ,start[ ,end]]    判断字符串是否以某前缀开始,返回值为bool值。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

(6) s.endswith(suffix[ ,start[ ,end]]    判断字符串是否以某后缀开始,返回值为bool值。

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 (7)s.lower()     将字符串全部转为小写

 (8)s.upper()    将字符串全部转为大写

 (9)s.strip([chars])    默认去掉字符串左右字符

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 (10)s.isalpha()    判断字符串是否全为字母,返回的是bool值

 (11)s.isdigit()      判断字符串是否全为数字,返回的是bool值

(12)s.isalnum()     判断字符串是否全为数字或者字母,不存在特殊字符,返回的是bool值

(13)s.join(iterable)   将序列中的元素以指定的字符连接生成一个新的字符串

零基础学Python——python基础数据类型(数字类型,布尔类型,字符串类型)

 

上一篇:python对象的布尔值


下一篇:poj 1056(水题)