前言
上篇忘了讲文件改名了这篇加上
Python的基本数据类型
Python有着很多种数据类型,什么叫数据类型呢
我搜了一下粘贴过来:
数据类型在数据结构中的定义是一个值的集合以及定义在这个值集上的一组操作。
变量是用来存储值的所在处;它们有名字和数据类型。
这里说的变量又是啥???
如果你学过编程语言,例如大学理工科学的C和其他专业学的VB,很好理解
如果你从来没学过编程语言
那我就通俗解释一下:
在家里吃饭,用盘子盛放美味可口菜肴
盘子(盛放菜)就是变量,而盘子的名字(青花瓷盘子)则是变量名
而这里用盘子(盛放菜),而不是碗(盛放菜),因为盘子和碗不是一类东西
盘子和碗就是两种数据类型,他们都能保存数据(这里的数据指的是菜)
你理解了没?什么?本来懂的被我绕的不懂了???emmmm....
那你自我ctrl+z一下吧
数字
说到数字Python的数字也有4中数据类型(就好比盘子也有四种,大盘子,中等盘子,小盘子,迷你盘子)
分别是:整数(int)、浮点数(float)、布尔值(bool)、复数(complex)
小明提问:老湿,这些有啥不同啊?
小红interrupt小明:你就不能静静听么?
好的,那我们看一下他们有啥不同
默默打开背包里的工具箱,拿出了一个函数
type()函数
type:类型的意思
我们发现测量出的233是整数类型(int)
233.0是浮点数类型(float)、
'233'(注意有单引号)是字符串类型(str)
我们继续掏出一个函数:isinstance()
这个函数传入两个参数(也就是括号内的内容,参数之间用逗号分隔)
第一位参数:数据
第二位参数:判断该数据是否是某个类型
例如:
判断233是不是浮点数?返回False,意思是233不是浮点数
Python的基本数据类型——数字
1.整数
整数就是没有小数点嘛!
例如0,-1,23333333
Python的整数长度限制我也不清楚,反正可以写超多位
不像其他很多编程语言有int smallint longint啥的
上面的6***666意思是:6的666次方,好了,这么长的数据大小肯定够你用了吧
Python整数花头(花样)挺多的,有十进制,二进制,十六进制,八进制
现在不懂进制没关系,想了解的话可以百度,我就不长篇大论了
他们之间的相互转化可以参考:http://www.cnblogs.com/xugang/archive/2008/08/02/1258610.html
十进制写法就是正常写法
二进制写法加前缀0b,且只能出现0 1两种数字的组合,例如:0b1001110
八进制写法加前缀0o,出现0~7数字组合,例如0o76543210
十六进制写法加前缀0x,出现0~9和A~F的数字和字母组合,例如0xA20974BCF
运行时,他们会自动转为十进制输出结果,我们试试
2.浮点数
简单点数就是带小数点的数字
划重点:浮点数只能以十进制方式书写,也就是不加前缀
运行之后弹出了红绿黄相间的错误
我们谷歌翻译一下,意思是语法错误
说明不能在二进制写法中加小数点
当然,除了这个错误,你还可能犯另一个错误(如果你好好听课)
这个错误就是之前讲过的int整数可以6**666
我们给6加个小数点变成浮点数,其他不变,运行一下
显示溢出错误:结果太大了,不能承受!
这个错误大家要注意!
浮点数其实还包括分数
因为是无限循环的,所以显示和保存是有误差的
3.布尔值
布尔值就是我们常说的逻辑
可以理解为对或者错,正面与反面
我们看一下实例:
233(int)竟然等于233.0(float)
这刷新了我的三观,不是说好了他们数据类型不一样么!
注意了,这里只是比较两个值是否相等,233和233.0可以认为相等,只是精度保留不一样
那'233'和233为啥不相等呢?
因为'233'是字符串,不能数值运算,而233是数字
4.复数
复数是啥?当年初中,我们以为有理数可以表示万物,突然杀出个不讲道理的无理数
而有理数和无理数统称实数
在实数之外还有一种叫复数
有兴趣自行摆渡
在派森中,复数是这样表示的:
type返回的是complex(复杂的),意思就是复数,复数确实复杂,多了个j的部分,那女生是实数的话,男生是??【坏笑
但是你不能这样写:
学过复数都知道复数的实部和虚部
通过将他们括起来再使用real(真是的)和imag(虚假的)方法即可获得
Python的基本数据类型——字符串
1.字符串的组成
字符串,通俗的说就是字符组成的一串内容,例如'Python大法好'、'Y45160100'、'PG one'
划重点:''表示空字符串(空字符串就是字符串里没有内容)
字符串是不可变对象,至于什么是不可变对象,我们后面会提到的。
字符串之所以区别于其他数据类型,是因为它是被包含在引号里面的
你可以用单引号,也可以用双引号
划重点:但是不能一边单引号,一边双引号!
我们看一下:
第三个:两边不一致所以出错了
当然,有时候我们必须单引号和双引号都得使用:
例如我相把她说的话和所有内容都用单引号嵌套,发现报错了
大家可以看到实际被单引号引用的是红色的内容,中间有一段是黑色的没被包括进去
这是因为,派森会从左到右自动扫描到一对单引号就把它俩匹配一起
为了解决这个问题,我们同时使用单引号和双引号
这样就可以啦~
其实连续三个单引号或者双引号也可以,不过一般我们不用
什么?你问为什么,你不觉得打这么多很累么,hhhhh
说到三个引号,我们要说一下注释了
2.注释
注释,是对书籍或文章的语汇、内容、背景、引文作介绍、评议的文字。
说得通俗一点就是多写点内容帮助理解
Python中的注释分为单行注释和多行注释:
单行注释
在每行代码前写一个井号,则这行代码不会被运行
运行之后发现报错,看一下报错信息,意思是a这个变量没被定义(因为你a=1定义的这行前面有个井号,是被注释了,程序不会执行)
其实大家发现没,之前上课讲到的Markdown和这里的注释好像功能相似
没错!就是这样!
如果我连续很多行都要注释呢?
小明:我知道,每行前面加一个#不就行了么,hhhh,我真是个天才
小明啊,如果我有10000行,你还这样做么?
小明无语凝噎。。。
好了,我们讲一下多行注释怎么弄
还记得刚才我们嫌弃的三个引号么
它就可以多行注释
a的内容确实被注释掉了,所以打印a的内容会报错
当然,除了三个单引号,三个双引号也是ok的
一直看报错的不太舒服,虽然我们是将用法
来看个正常运行的(没有注释):
Python的基本数据类型——字符串
3.转义
转义转义,顾名思义,就是转换含义
通俗的说就是意思变了
Python用反斜杠(\)来转义字符
我们举几个例子理解一下:
这里的 \t 是横向制表符,也就是空出四个空格的长度
而 \n 则是换行符
这里的\b是退格,也就是我们键盘上常用的Backspace
I 被退格键删除了
退格键只会删除前面一个字符,而不是所有字符
We中只删除了e
还记得我们上节课说的单引号双引号同时使用的例子么
加了转义符,就可以只使用一种引号啦 ♪(^∇^*)
有时,我可能想打印 \t
虽然一般不会
这时候我怎么样让这个转义不生效呢
可以采用两种措施:
1.字符串前面加r
2.再加一个反斜线
4.常用字符串相关操作方法
(1)字符串长度
用len()函数,可以查看字符串的长度
划重点:字符串中的空格也是占长度的,空串:""/'' 长度是零
中文,字母,数字,符号都是占一个长度
包含转义字符的字符串长度是把每个转义字符当成一个字符,即 \t 是一个字符长度,而不是看上去的两个
(2)字符串连接
可以通过加号连接字符串
直接连接显示很不友好,我们加一下空格
这样就好多啦~
(3)字符串索引
索引是什么,举个栗子吧
每个同学都有一个学号,通过学号这个标签我们能找到对应的同学,这就是索引
那索引学了有什么用呢?感觉没用啊!
Python有两种索引方式:
(1)从前往后的正向索引:有m个字符长度的字符串,索引值是0~m-1(计算机很多都是从0开始标序号的)
(2)从后往前的负数索引:有m个字符长度的字符串,索引值是-1~-m
如果我们下标索引越界了(超过了以上规定的范围),则会报错:
(4)字符串切片
切片:顾名思义,把东西切成片,如果把字符串看成一根黄瓜,切出一部分下来是不是就是切片呢
说的专业一点就是,取出字符串中的子串!
切片最标准的写法是用两个冒号分割三个数字
第一个数字表示切片的开始位置(索引)
第二个数字表示切片的截至位置,但是不包括这个位置,也就是切到它的前一个位置结束(索引)
第三个表示切片的步长(切片的厚度),当省略步长时候,默认为1,可以省略后一个冒号
吃点栗子理解一下:
如果还是看不懂,可以留言评论哦
当然,如果越界了,不会报错哦~
人生苦短,我选Python
其实更新的这几篇文章都是我看一个教学视频来讲的。