赵走x博客
网站访问量:151929
首页
书籍
软件
工具
古诗词
搜索
登录
Python与数据挖掘:16、Bokeh
Python与数据挖掘:15、Matplotlib
Python与数据挖掘:14、scikit-learn
Python与数据挖掘:13、Scipy
Python与数据挖掘:12、Pandas
Python与数据挖掘:11、numpy
Python与数据挖掘:10、Python实用模块介绍
Python与数据挖掘:9、面向对象编程
Python与数据挖掘:8、函数
Python与数据挖掘:7、Python基础入门---文件的读写
Python与数据挖掘:6、Python基础入门---数据结构
Python与数据挖掘:5、Python基础入门---流程控制
Python与数据挖掘:4、Python基础入门---数字数据
Python与数据挖掘:3、Python基础入门---常用操作符
Python与数据挖掘:2、Python开发环境的搭建
Python与数据挖掘:1、数据挖掘概述
Python与数据挖掘:4、Python基础入门---数字数据
资源编号:75846
书籍
Python 与数据挖掘
热度:70
这节我们将探讨Python最基本的赋值语句和数字的数据类型。
这节我们将探讨Python最基本的赋值语句和数字的数据类型。 ### 1、变量与赋值 变量是我们广为熟悉的概念。程序语言中的变量和数学上的变量类似,如果需要对x赋值3,执行下面语句: ``` >>> x = 3 ``` 这样程序将会为变量x申请地址并存储它。“=”的这个操作称为赋值。如果再执行: ``` >>>x*2 6 ```  图2-1 变量与地址 那么结果返回3*2的值,但注意运行后x的值仍为3,如果希望保存6的值,可写成x=x*2或x*=2。不过,Python的变量是不可变对象,读者可能会感到疑惑,x*=2这个语句就已经让x的值发生了改变,为什么还说变量是不可变的呢?实际上,如果变量的值发生改变,Python会自动创建另一个对象申请另一块的内存,并改变变量的对象引用,如图2-1所示。这样做的优点是减少了重复的值对内存空间的占用,而缺点则是每次修改变量都需要重新开辟内存单元,给执行效率带来一定影响。下面的代码清单2-1给出了一个例子。 代码清单2-1 变量与赋值 ``` print('变量与赋值') x=3 print(x) # result: 3 print(id(x)) # 查看x的内存地址,每次运行都会发生变化 #result: 39011144 x*=2 print (x) #result: 6 print (id(x)) # 再次查看x的内存地址,每次运行都会发生变化,但内存必然会变化 #result: 39011108 ``` ### 数字数据类型 数字的基本数据类型可分为整数、浮点数、布尔值。创建变量时,Python不需要声明数据类型,Python能够自动识别数据类型。x=3的数据类型是整数,而x=3.3的数据类型是浮点数,函数type(x)可以查看数据的数据类型。布尔值只有True和False两种值,支持and、not、or三种运算,这在2.1.4节中已经介绍到。 和数学运算不同的地方是,Python的整数结果仍然是整数,如果操作符两端其中一个操作数是浮点数,那么运算结果是浮点数。如: ``` 1+2=>整数 3 1.0+2=>浮点数 3.0 ``` 整数运算的结果永远是精确的,而浮点数运算的结果不一定是精确的。计算机的内存是有限的,无法存储无限位的小数。Python的浮点数实际上是双精度浮点数,在C中称为double类型,具体存储方式读者可以参考维基百科 [[1]](part0011.html#JV-d96a43322be247db8973f5f28dc12a37) 。举一个丢失精度的例子,如果在Shell输入: ``` >>>1/10**9*10**9 >>>0 ``` 结果返回0,这是因为1除以10的9次方的数太小,计算机只存储到前面的0,除法过后返回了结果0,然后0乘以任何数都返回0,最后导致精度的丢失。所以在数值计算算法的设计上,常常要考虑精度丢失的问题,有时候一个好的办法是改变运算顺序: ``` >>>1*10**9/10**9 >>>1 ```