python中变量类型在程序中可以改变_详细解析Python当中的数据类型和变量
数据类型
计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值。但是,计算机能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型。在Python中,能够直接处理的数据类型有以下几种:
整数
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
计算机由于使用二进制,所以,有时候用十六进制表示整数比较方便,十六进制用0x前缀和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。
浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
字符串
字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:
?
表示的字符串内容是:
?
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print打印字符串看看:
?
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,可以自己试试:
?
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以自己试试:
?
上面是在交互式命令行内输入,如果写成程序,就是:
?
多行字符串'''...'''还可以在前面加上r使用,请自行测试。
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:
?
布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为True,and运算结果才是True:
?
or运算是或运算,只要其中有一个为True,or运算结果就是True:
?
not运算是非运算,它是一个单目运算符,把True变成False,False变成True:
?
布尔值经常用在条件判断中,比如:
?
空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲到。
变量
变量的概念基本上和初中代数的方程变量是一致的,只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。
变量在程序中就是用一个变量名表示了,变量名必须是大小写英文、数字和_的组合,且不能用数字开头,比如:
?
变量a是一个整数。
?
变量t_007是一个字符串。
?
变量Answer是一个布尔值True。
在Python中,等号=是赋值语句,可以把任意数据类型赋值给变量,同一个变量可以反复赋值,而且可以是不同类型的变量,例如:
?
这种变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。静态语言在定义变量时必须指定变量类型,如果赋值的时候类型不匹配,就会报错。例如Java是静态语言,赋值语句如下(// 表示注释):
?
和静态语言相比,动态语言更灵活,就是这个原因。
请不要把赋值语句的等号等同于数学的等号。比如下面的代码:
?
如果从数学上理解x = x + 2那无论如何是不成立的,在程序中,赋值语句先计算右侧的表达式x + 2,得到结果12,再赋给变量x。由于x之前的值是10,重新赋值后,x的值变成12。
最后,理解变量在计算机内存中的表示也非常重要。当我们写:
?
时,Python解释器干了两件事情:
在内存中创建了一个'ABC'的字符串;
在内存中创建了一个名为a的变量,并把它指向'ABC'。
也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:
?
最后一行打印出变量b的内容到底是'ABC'呢还是'XYZ'?如果从数学意义上理解,就会错误地得出b和a相同,也应该是'XYZ',但实际上b的值是'ABC',让我们一行一行地执行代码,就可以看到到底发生了什么事:
执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC':
执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC':
执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:
所以,最后打印变量b的结果自然是'ABC'了。
常量
所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
?
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
最后解释一下整数的除法为什么也是精确的,可以试试:
?
你没有看错,整数除法永远是整数,即使除不尽。要做精确的除法,只需把其中一个整数换成浮点数做除法就可以:
?
因为整数除法只取结果的整数部分,所以Python还提供一个余数运算,可以得到两个整数相除的余数:
?
无论整数做除法还是取余数,结果永远是整数,所以,整数运算结果永远是精确的。
小结
Python支持多种数据类型,在计算机内部,可以把任何数据都看成一个“对象”,而变量就是在程序中用来指向这些数据对象的,对变量赋值就是把数据和变量给关联起来。
您的鼓励是作者写作最大的动力
如果您认为本网站的教程质量不错,读后觉得收获很大,预期工资涨幅能超过30%,不妨小额赞助我一下,让我有动力继续写出高质量的教程:
python中变量类型在程序中可以改变_详细解析Python当中的数据类型和变量相关推荐
- python中变量类型在程序中可以改变_Python中的变量和数据类型,python,及
变量 变量的定义: 在程序中,有时我们需要对2个数据进行求和,那么该怎样做呢? 大家类比一下现实生活中,比如去超市买东西,往往咱们需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台 ...
- python中变量类型在程序中可以改变_python的可变与不可变数据类型
首先,我们需要知道在python中哪些是可变数据类型,哪些是不可变数据类型.可变数据类型:列表list和字典dict:不可变数据类型:整型int.浮点型float.字符串型string和元组tuple ...
- python中数据类型大小_详细解析Python中的变量的数据类型
变量是只不过保留的内存位置用来存储值.这意味着,当创建一个变量,那么它在内存中保留一些空间. 根据一个变量的数据类型,解释器分配内存,并决定如何可以被存储在所保留的内存中.因此,通过分配不同的数据类型 ...
- 如何使用python编程、字典中的get是什么_详细解析python字典get()实例教程
对于程序员而言,了解更多的算法,对自己的程序完善是非常有意义的,关于Get方法有小伙伴了解是如何使用吗?不了解的小编已为大家整理,一起来看下吧~ get()函数简介 get()是查找并返回字典中的某个 ...
- python 获取json中最大值_详细解析 Python 爬取 bilibili 的视频、弹幕以及封面
本文使用 Zhihu On VSCode 创作并发布 环境 用到的 Python 库: Python 3.7 requests moviepy json re os 浏览器:Firefox/ 83.0 ...
- 关于python的元组类型以下选项中描述错误的是_关于Python的元组类型,以下选项中描述错误的是【】...
[单选题]给出如下代码: fname=imput('请输入要打开的文件:') fi=open(fname,'r') for line in fi.readlines(): print(line) fi ...
- 关于python浮点数类型错误的是_关于Python的数字类型,以下选项中描述错误的是...
[单选题]以下程序的输出结果是: lcat =["狮子","猎豹","虎猫","花豹","孟加拉虎" ...
- python中复数类型与数学中复数的概念一致_2020年9月计算机二级python选择题在线题库12/15...
1.在最坏情况下比较次数相同的是(). A.冒泡排序与快速排序 B.简单插入排序与希尔排序 C.简单选择排序与堆排序 D.快速排序与希尔排序 A [解析]冒泡排序.快速排序.简单插入排序.简单选择排 ...
- python的复数类型表示数学中的复数对吗_关于Python的复数类型,以下选项中描述错误的是...
[单选题]下面代码的输出结果是 >>> x = "Happy Birthday to you!" >>> x * 3 [判断题]打开一个文本文件 ...
最新文章
- SAP WM Storage Type Search配置里的Storage Class WPC标记
- PHOTOSHOP 快捷键
- 小程序使用wxParse解析html
- 折纸计算机大全,神之折纸电脑版
- python 依据某几列累加求和_如何用Python找出OBV金叉的股票?
- pb 修改数据窗口种指定字段位置_第三章 Python数据类型 容器
- java web 耗时请求_javaweb应用中出现了一个耗时异常长的数据查询,寻求帮助
- windows下的库文件在linux的使用,Windows、Linux之间传输文件的几种方式
- MATLAB double、str、cell间的类型转换
- 变量的比较之equals 与 == 的区别
- hadoop2.6.4 在ubuntu14.04下的搭建
- phtml php,PHTML Encoder
- 我是如何从一个xss到某个浏览器的远程命令执行
- iis提示“另一个程序正在使用此文件,进程无法访问”解决办法
- 深入浅出通信原理知识点5
- Laravel下载文件及文档
- 电脑使用 Dolby Audio提示将耳机或扬声器插入系统的音频插孔,以启用Dolby Audio
- 关于英伟达显卡驱动程序(GeForce)无法下载的问题
- Win10镜像安装net3.5
- ubuntu php7 pdo,记录捣鼓ubuntu下PHP7.1下安装sqlserver拓展
热门文章
- 联想继续为其硬件产品完善Linux支持
- .NET架构小技巧(6)——什么是好的架构
- 谁说.NET不适合搞大数据、机器学习和人工智能
- C#的未来:简化参数空值验证
- Excel催化剂插件安装过程升级,离线版全网公开下载!
- 我认真写下9段如翔一般的代码,只为等你来品鉴
- 坚持一个好习惯该有多难?
- [开源]OSharpNS - .net core 快速开发框架 - 简介
- 微软开源故事 | 开启 .NET 开源革命
- NumSharp v0.6.1 科学计算库发布,支持标量和隐式转换