一、数据类型
上一节我们曾讲到a=1,b=2,c=“b”之类的东西,我们知道a,b,c叫做变量,而现在所谓的数据类型,其实就是1,2,“b”他们分别属于什么。而我们将数据们分为以下几个类型:
1、整数
整数,就是我们日常生活中的整数,如1,2,3,-1,-2,0,10,90之类。
定义方式:
a=1
2、浮点数
浮点数,就是小数,如1.2,3.6,-1,7等
定义方式:
a=1.2
3、字符串
字符串,就是双引号(单引号)括住的东西,通常是字,字母,如“a”,“bde”,‘c’,“你今天笑了吗”中的a,bde,c,你今天笑了吗都是字符串。
定义方式:
a="你今天笑了吗"
问题来了,“1”是整数还是字符串?
答案是:字符串。因为它也被双引号括住了。所以我才说通常啊,毕竟如果数字加了双引号或者单引号,它就变成字符串了哦。
所以以下输出的两个1,它就不是同一个1了。一个是数字1,一个是字符1。
第二个问题来了,如果字符是‘或者“呢?
之前我们讲过了,可以用双引号括住单引号,单引号括住双引号,如下:
问题第二问:如果它既有单引号又有双引号呢?比如我们想说:
A.sir说:"今天讲讲'沙发土豆'这个词。"
这就可以用到转义字符了,简单来说就是 \ ,\ 加上你要表达的东西就OK了,比如下面这种表示方法:
我们在“”和‘’前面加上 \ 就可以完美解决了!
4、布尔类型
布尔类型,用bool表示。用人话说,bool类型可以理解为“真还是假的类型”
它不像整数、浮点数、字符串都包括很多东西,bool只有两个东西,一个是True,一个是False。
所谓True,就是真的,比如3>2对不对?对,那3>2就是真的,它就是True。也就是说,我们说True就是一条很对的语句,而False就是一条不对的语句,我们来看下面这个例子:
3>2很对啊,所以计算机输出True,1>4不对啊,所以计算机输出False
有人说,这个有什么用?其实……目前来说,作用不大,但你要知道,因为后面有大用。
二、进制数
进制数,标准解释是:
进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每一位上的数运算时都是逢X进一位。 十进制是逢十进一,十六进制是逢十六进一,二进制就是逢二进一,以此类推,x进制就是逢x进位。
人话版(已经懂了的天才可跳过):
我且问你,1,2,3,4,5,6,7,8,9后面是多少?答案是10.那么10后面是多少,是11,12,13,14……。其中从9加上1到10就是进位,就是把一位数变成了两位数,然后第一位数清0,第二位数进1。这是我们常用的十进制,就是逢10进1.等到19的时候,再次进位,前面的1进位成了2,后面的9再次清零成为0,然后从头加起。
所以进制数,就是逢几进一,然后清零后面的其他位数。比如下面的几个进制数:
1、二进制
二进制,到2进1。
我们对照下面这个转换表:
十进制 | 二进制 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
…… | …… |
100 | 1100100 |
十进制的2对应二进制10(读作一零,不是十),当二进制下1再加上1,它要进位了,首先把前面那个没显示出来的0,加一个1变成1(插个点1,待会讲),然后把后面的东西清0,所以1变成10.
十进制4对应二进制100(读作一零零),当11加上1时,后面的1进位,给前面的1加一个1,然后自己变成了0,这时前面的1加1又要进位,所以再给前面加一个1,然后自己变成0,这就成了100.
点1:我们知道十进制里01和1其实是一个数,其他进制里也一样,所以上表正确的写法,应该是下表才对:
十进制 | 二进制 |
1 | 0000001 |
2 | 0000010 |
3 | 0000011 |
4 | 0000100 |
5 | 0000101 |
…… | …… |
100 | 1100100 |
前面加上0,既是为了方便进位,有时也为了美观。至于前面写几个0,完全看个人意愿了,当然不写也是可以的。
Tips小技巧:给你一个数1100100,有什么办法能快速转换成十进制数吗?
方法:把二进制数拆成单个单个的数,然后当做2的乘数,再从右到左按次0123作为指数,最后加在一起就是十进制数。
比如:二进制下的100,拆成1,0,0,就是1乘2的2次方+0乘2的1次方+0乘2的0次方=4
如果不懂,那就直接看图找规律吧:
简单来说,就是用二进制的数确定2前面乘0还是1,用从右往左数第几个数来确定2的指数是多少。
什么?你问为什么是2,因为这是二进制啊。如果是八进制,那就是8喽。
下一个问题,如何把十进制快速转换成二进制?
答案,短除法,将其一直÷2.比如33:
33÷2=16…… 1
16÷2=8 …… 0
8÷2=4 …… 0
4÷2=2 …… 0
2÷2=1
所以33转换二进制得:10001
2、八进制
八进制,到8进1。
话不多说,上对照表:
十进制 | 八进制 |
1 | 1 |
2 | 2 |
…… | …… |
7 | 7 |
8 | 10 |
9 | 11 |
…… | |
97 | 141 |
如果二进制你能明白,八进制想必也不用多说了。
八进制转十进制,比如八进制下141:
1*8^2+4*8^1+1*8^0=97(十进制)
十进制转八进制:就是一直÷8,原理同二进制。
3、十六进制
十六进制,到16进1.
不用多说,跟二进制大同小异,唯一需要说明一点:
十六进制里,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15.
所以说,38D76CA,相当于下图:
4、符号说明
(1)二进制以 0b 或 0B 开头:0b1101
(2)八进制以 0o 或 0O 开头:0o456
(3)十进制:123
(4)十六进制以 0x 或0X 开头:0x1A(注意开头是零!)
用法如图:
三、补充知识
1、科学计数法:
对于很大或很小的浮点数,就必须用科学计数法表示,把 10 用 e替代,1.23x10的9次方就是 1.23e9,或者 12.3e8,0.000012 可以写 1.2e-5
2、进制转换函数:
a = 10 #十进制数
b = bin(a) #转换为二进制
c = oct(a) #转换为八进制
d = hex(a) #转换为十六进制
都是死记硬背的东西,不过用的不多是啦。
3、其他:
对于很大的数,例如 1000000000,很难数清楚 0 的个数。Python 允许在数字中间以_分隔,因此,写成 1_000_000_000和 1000000000 是 完 全 一 样 的 。
标签:10,进制,Python,数据类型,十进制,二进制,八进制,白版,进位 From: https://blog.csdn.net/2301_81711570/article/details/143080377