python简单数据类型变量_(八)python的简单数据类型和变量
什么是数据类型?
程序的本质就是驱使计算机去处理各种状态的变化,这些状态分为很多种。
例如英雄联盟游戏,一个人物角色有名字,钱,等级,装备等特性,大家第一时间会想到这么表示
名字:德玛西亚------------->字符串
钱:10000 ----------------->数字
等级:15 ------------------->数字
装备:鞋子,日炎斗篷,兰顿之兆----->列表
(记录这些人物特性的是变量,这些特性的真实存在则是变量的值,存不同的特性需要用不同类型的值)
python中的数据类
python使用对象模型来存储数据,每一个数据类型都有一个内置的类,每新建一个数据,实际就是在初始化生成一个对象,即所有数据都是对象-------------一切切对象。
对象三个特性
身份:内存地址,可以用id()获取
类型:决定了该对象可以保存什么类型值,可执行何种操作,需遵循什么规则,可用type()获取
值:对象保存的真实数据
注:我们在定义数据类型,只需这样:x=1,内部生成1这一内存对象会自动触发,我们无需关心
这里的字符串、数字、列表等都是数据类型(用来描述某种状态或者特性)除此之外还有很多其他数据,处理不同的数据就需要定义不同的数据类型
标准类型
其他类型
数字----整型,长整型,布尔,浮点,复数
类型type
字符串
Null
列表
文件
元组
集合
字典
函数/方法
类
模块
Python的基本数据类型有5种: 整型(int), 浮点型(float), 字符型(string), 布尔型(bool),空值(None).其他数据类型后面讲到。
整数
Python可处理任意大小的整数,在程序中的表示方法和数学上的写法完全一样。
浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,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个字符。
如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:
'I\'m \"OK\"!'
表示的字符串内容是:
I'm "OK"!
转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print打印字符串看看:
>>> print 'I\'m ok.' I'm ok. >>> print 'I\'m learning\nPython.' I'm learning Python. >>> print '\\\n\\' \ \
如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,可以自己试试:
>>> print '\\\t\\' \ \ >>> print r'\\\t\\' \\\t\\
如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以自己试试:
>>> print '''line1 ... line2 ... line3''' line1 line2 line3
上面是在交互式命令行内输入,如果写成程序,就是:
print '''line1 line2 line3'''
多行字符串'''...'''还可以在前面加上r使用,请自行测试。
布尔值
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:
>>> True True >>> False False >>> 3 > 2 True >>> 3 > 5 False
布尔值可以用and、or和not运算。
and运算是与运算,只有所有都为True,and运算结果才是True:
>>> True and True True >>> True and False False >>> False and False False
or运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True True >>> True or False True >>> False or False False
not运算是非运算,它是一个单目运算符,把True变成False,False变成True:
>>> not True False >>> not False True
布尔值经常用在条件判断中,比如:
if age >= 18: print 'adult' else: print 'teenager'
空值
空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
此外,Python还提供了列表、字典等多种数据类型,还允许创建自定义数据类型,我们后面会继续讲到。
变量和常量
在计算机中,变量就是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标识符,一个变量应该有一个名字,并且在内存中占据一定的存储单元,在该存储单元中存放变量的值。
变量命名规则
先介绍标识符的概念。和其他高级语言一样,用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。变量名是标识符的一种,变量的名字必须遵循标识符的命名规则。
Python语言和java,c++等很多语言一样,规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。下面列出的是合法的标识符,也是合法的变量名:
sum, average, total, day, month, Student_name, tan, BASIC, li_ling
下面是不合法的标识符和变量名:
M.D.John, $442, #4, 3G64, Alex Li, C++, Zhang-ling,姓名, U.S.A.
注意:在Python中,大写字母和小写字母被认为是两个不同的字符。因此,sum和SUM是两个不同的变量名。一般地,变量名用小写字母表示,与人们日常习惯一致,以增加可读性。应注意变量名不能与Python的关键字、系统函数名和类名相同。
变量名命名习惯
当你的代码越写越多的时候,你会发现你定义的变量也会越来越多,为了增加代码的易读性和方便调试,给变量起名时一定要遵循一定的命名习惯,你起的变量名称最好能让人一眼就大概知道这个变量是干什么用的,比如,getUserName一看就知道,这个变量应该是要获取用户的姓名,check_current_conn_count代表是要检查现在的连接数,只有这样,别人才能在看你的代码时知道你的这些变量的作用,而如果你把变量名全起成了var1,var2,var3…..varN,那别人再看你的代码时会骂死你的。
变量名的定义在能表达清楚它的作用的前提下最越简洁越好,能用一个单词表述清楚的尽量就不要用两个。变量起名时一般有这么几种写法,你觉得哪种最简洁,你就选哪种吧。
CheckCurrentConnCount
check_current_conn_count
checkCurrentConnCount
不好的起名:
CHECKCURRENTCONNCOUNT
Var1 var2 var3 varN
Checkcurrentconncount
定义变量
了解了变量的概念和用途后,我们一起来定义几个简单的变量看一下
name = ‘Alex Li’ #name是字符串,字符串要加上引号噢
age = 29 #age是整数,整数不要加引号,加了引号后就变成字符串了
has_girlfriend = False #是布尔值,一般用这个做逻辑判断,如if has_girlfriend:print ‘good for you !’
age = age + 1 #这个结果应该是30,运算流程是先将=号后面的age +1结果算出,然后再把这个结果重赋值给age,由于age之前的值是29,重新赋值后,age值变为30.
最后,理解变量在计算机内存中的表示也非常重要。当我们写:
name = 'Alex'
时,Python解释器干了两件事情:
在内存中创建一个”Alex”的字符串;
在内存中创建了一个名为name的变量,并把它指向”Alex”的内存地址。
也可以变量name赋值给另一个变量name2,这个操作实际上是把变量name2指向的数据,例如:
唉?不是已经把name2 等于name变量了吗?name 值改了以后,name2不跟着改吗?没错,当name 的值由”Alex”改成”Jack”后,name2还是指向原来的”Alex”,我们来一步步分析一下:
1. 定义name=”Alex”,解释器创建了字符串”Alex”和变量name,并把name指向了”Alex”
2. 执行name2=name,解释器创建了name2变量,并把name2指向了name变量所指向的字符串
3. 这时通过id内置函数来查看一下这两个变量分别指向的内存地址,结果都是指向了同一地址。
4. 执行name=”Jack”,解释器创建一个新的变量”Jack”,并把name的指向改成了”Jack”
5. 此时再查看两个变量的内存地址指向就会发现,name的指向已经变成了一个新的地址,也就是”Jack”所在内存地址,但是name2依然还是指向原来的”Alex”。
Now, 你明白了吗? 再总结一下,当你把一个变量name赋值给另一个变量name2时,解释器只是把name变量所指向的内存地址赋值给了name2,因此name 和 name2并未发生直接的关联,只不过是他们都同时指向了同一个内存地址而已,这也就是为什么你把name再指向一个新地址后,而name2的值还保持不变的原因。
常量
刚才说到了变量,还有一概念就是常量,所谓常量就是不能变的变量,比如常用的数学常数π就是一个常量。在Python中,通常用全部大写的变量名表示常量:
PI = 3.14159265359但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,所以,用全部大写的变量名表示常量只是一个习惯上的用法,如果你一定要改变变量PI的值,也没人能拦住你。
python简单数据类型变量_(八)python的简单数据类型和变量相关推荐
- python大数据免费_用python做大数据
不学Python迟早会被淘汰?Python真有这么好的前景? 最近几年Python编程语言在国内引起不小的轰动,有超越Java之势,本来在美国这个编程语言就是最火的,应用的非常非常的广泛,而Pytho ...
- python大数据论坛_干货 | Python+大数据计算平台,PyODPS架构手把手教你搭建
数据分析和机器学习 大数据基本都是建立在Hadoop系统的生态上的,其实一个Java的环境.很多人喜欢用Python和R来进行数据分析,但是这往往对应一些小数据的问题,或者本地数据处理的问题.如何将二 ...
- python爬虫数据可视化_适用于Python入门者的爬虫和数据可视化案例
本篇文章适用于Python小白的教程篇,如果有哪里不足欢迎指出来,希望对你帮助. 本篇文章用到的模块: requests,re,os,jieba,glob,json,lxml,pyecharts,he ...
- python两行数据相加_小白python入门基础——Python安装教程与特色介绍
简介 Python语言是少有的一种可以称得上即简单又功能强大的编程语言.你将惊喜地发现Python语言是多么地简单,它注重的是如何解决问题而不是编程语言的语法和结构. Python的官方介绍是: Py ...
- python交互式数据可视化_基于Python实现交互式数据可视化的工具,你用过几种?...
作者:Alark Joshi 翻译:陈雨琳 来源:数据派THU(ID:DatapiTHU) 我教授了一门关于数据可视化的数据科学硕士课程.我们的数据科学硕士项目是一个为期15个月的强化项目,这个项目已 ...
- python简历数据提取_提取python简介
书籍:掌握Python的网络和安全 Mastering Python for Networking and Security - 2018.pdf 简介 掌握Python的网络和安全 掌握Python ...
- python串口数据绘图_使用Python串口实时显示数据并绘图的例子
使用pyserial进行串口传输 一.安装pyserial以及基本用法 在cmd下输入命令pip install pyserial 注:升级pip后会出现 "'E:\Anaconda3\Sc ...
- python证券交易数据接口_实战 | Python获取股票交易数据
项目介绍 看到标题大家的第一反应估计是怎么用爬虫来获取股票交易数据,要获取股票交易数据确实是需要用爬虫没错,不过还有比使用爬虫更加方便的方式.今天要给大家介绍的是一个专门用来获取国内股票交易数据的开源 ...
- python进行数据查询_使用Python实现NBA球员数据查询小程序功能
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章来源于早起Python ,作者投稿君 一.前言 有时将代码转成带有界面的程序,会极大地方便 ...
最新文章
- js 复制 标签中的内容 方法
- 多数据源:spring boot+mybatisplus配置
- python和嵌入式哪个容易_嵌入式与python选哪个
- Georgia and Bob(Poj 1704)Nim 博弈
- 建立属于自己的Cydia源,并获取cydia中的deb安装包,cyder不报错汉化版
- c#明华rf读卡器_C#调用第三方API接口-案例明华读卡器
- matlab结果导入ug,matlab与UG数据交换.docx
- 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
- 服务器与Tomcat区别
- springboot绑定邮箱激活发邮件
- 总是听到有人说AndroidX,到底什么是AndroidX?
- java软尾山地车评测_JAVA FURIA 27.5入门软尾山地车评测
- html meta标签‘http-equiv’属性的详解用法
- KeyguardBouncer启动流程
- python中怎么统计英文字符的个数_python怎样实现字符串中字符分类及个数统计
- 【板栗糖GIS】怎么将网络上只能在线预览文档另存为pdf(插件篇)
- java 纳秒 格式化_Java日期时间API系列35-----Jdk8中java.time包中的新的日期时间API类应用,微秒和纳秒等更精确的时间格式化和解析。...
- python从视频中提取音频信号_通过python从音频文件中提取音频
- 鞋为什么会臭?14个方法巧除鞋臭脚臭
- 小程序如何关联微信小程序二维码,实现二码聚合
热门文章
- Python爬虫实战-----案例分析爬虫一般过程
- Unity实战项目 ☀️| 教你如何在Unity中通过 代码获取 URL链接网页 的 标题 等各种信息✨
- JavaScript 基础语法
- HK-2010/3三通道脉象传感器/脉象传感器数据读取
- JS与JQuery点击事件传递参数
- 谈灰色地带的科研诚信——中科院神经科学研究所2012年年会蒲慕明所长的讲话...
- mysql-5.6.15-win32免安装版本
- 创业半年的思考,如何做出一个成功的游戏
- Java数据库连接(Oracle数据库)
- js日期加减一天_js 日期加减 (转)