[TOC]
Python的数值类型
Python中的基本数据类型有数值类型、字符串型、列表、元组、字典、集合等。本节介绍数值类型。数值类型包括整型、布尔型、浮点型和复数类型。
基本整形四则运算
用Python实现简单的加减乘除
我们先进入Python的交互模式
或者执行ipython
加法
1 | In [1]: 1+1 |
减法
1 | In [3]: 21-1 |
乘法
1 | In [5]: 2*2 |
除法
1 | In [9]: 4/2 |
以上就是我们所遇到的一些基本的加减乘除运算,接下来我们再看看其他形式的扩展。
保存计算结果-基本的赋值运算
在我们后面的学习中,经常会遇到需要保存计算结果的情况,下面我们来看一下如何保存我们的计算结果。
1 | In [11]: a = 1+1 |
基本整数与小数四则运算
计算机在计算的时候,除了整数运算,还有小数运算,还有小数和整数的混合运算。
加法
1 | In [14]: 2+1.2 |
减法
1 | In [16]: 2.2-2 |
乘法
1 | In [17]: 3.3*2 |
除法
1 | In [18]: 2.4/4 |
小数一般是
float
类型
1
2
3
4
5 > In [19]: b = 3+2.2
>
> In [20]: type(b)
> Out[20]: float
>
但是
浮点数
不是我们真正看到的数,比如1.2
实际是1.1999999999
所以小数计算都是不精确的,那么我们如何进行精确计算呢?
精确计算-decimal的运算
在Python
中如果我们要实现精确计算,我们是使用decimal
这个库函数
1 | In [27]: import decimal |
布尔型的计算
布尔型变量
只有True
和False
两种情况,True
就是1
,False
就是0
。
基本情况
1 | In [34]: a = True |
运算
1 | In [39]: a + 1 |
复数类型
1 | In [42]: 1 + 2j |
总结
整型、布尔型、浮点型和复数类型
1 | In [45]: type(2) |
扩展
整除-向下取整
//
在Python
中是指的向下取整
:1 < 1.n < 2 ==> 1
1 | In [49]: 2.3 / 2 |
整除-向上取整
向上取整
:使用math
库函数实现
1 | In [52]: import math |
幂运算
1 | In [54]: 2 * 2 *2 |
取余
1 | In [56]: 6 % 4 |
这就是我们常见的数值类型的相关使用和运算。
Python的序列类型
前面我们遇到的都是一些数值类型的使用与运算,但是如果我想在Python中表示字母怎么办呢?这就是我们接下来看一下序列类型。
字符串-str
1 | In [57]: 'abc' |
字符串的使用
字符串是通过下标索引值来获取对应值的。
1 | In [74]: a = 'abc' |
列表-list
数值和字符串的混合使用
1 | In [61]: ['abc', 123, 'dde'] |
列表的使用-简单取值
根据下标取出对应数据,下标从0开始计数:0,1,2,3…
1 | In [65]: a = ['abc', 123, 'dde'] |
列表的使用-切片
通过
list[start_index : end_index : stride ]
来进行切片
,切片
方式类似数学中的左闭右开区间
start_index:
开始的索引值
end_index:
结束的索引值
stride:
步长
1 | In [78]: a = ['abc', 123, 'dde'] |
其中:[-1]:
表示倒着计数
1 | In [92]: a = [1,2,3,4,5,6,'a','b','c'] |
元组-tuple
1 | In [63]: (123, 'abc', 'seven') |
元组的使用
元组的使用是和列表的类似的。
1 | In [70]: b = (123, 'abc', 'seven') |
类型转换
我们经常会使用到这几种类型, 所以这几种类型间的转换又尤为关键
字符串转列表
1 | In [111]: a = 'abcd' |
列表转字符串
列表变成字符串会把列表里的中括号和空格也变成字符串
1 | In [123]: a = ['a', 'b', 'c', 'd'] |
字符串转元组
1 | In [116]: a = 'abcd' |
元组转字符串
列表变成字符串会把列表里的小括号和空格也变成字符串
1 | In [128]: a = ('a', 'b', 'c', 'd') |
元组和列表的区别
在我们前面的接触过程中,列表和元组基本的功能是一样的,那列表和元组都存在,是为什么呢?
1 | In [133]: a = ('a', 'b', 'c', 'd') |
扩展:
1 | In [140]: a = 'abcdefg' |
总结:列表:可变
元组: 不可变
字符串: 不可变
所以,在序列类型中,只有列表才是可变的类型。
更改字符串和元组的元素
前面我们讲了在序列类型中,只有列表才是可变的类型。那我们如何来更改不可变数据类型的元素呢?
1 | In [151]: a = 'abcdefg' |
拆包
元组拆包可以应用到任何迭代对象上, 唯一的要求是, 被可迭代对象中的元素数量必须要和这些元素的元组的空档数一致, 除非我们用* 来表示忽略多余的元素。
1 | In [157]: a = ('a', 'b', 'c', 'd') |
x
接收第一个元素,z
接收最后一个元素,由于y
前面有*
号,所以剩余的元素由y
接收总结:有多少个元素就需要多少个变量来接收,除非有
*
号,不然就会报错。
1 | In [163]: x,y,z = a,a,a |
变量的赋值
变量的保存都是保存在内存中
注意:
变量
是没有类型的,有类型的是他所指向的数据
1 | In [167]: a = 123 |
id()
:查看数据的地址总结:赋值给变量是保存在内存中,重新赋值后,变量指向新的地址
变量的引用-成员运算
通过
in
或者not in
来进行成员运算
1 | In [173]: a = 'abcd123' |
转载请注明:Seven的博客