Python基础————基础数据类型
基本数据类型
包括:整型(int),浮点数类型(float),小数类型,布尔型(boolean)
整型
整型区别于Java中的整型,在Java中整型是有大小的限制,在Python中他的大小理论上是无限大小,实际上他取决于内存大小,整数型的运算得到的结果也是整数型,如果是有余数,那么结果只会取整数部分,忽略小数部分 。int()
函数,将其他的类型装换为int
整数型
1 | 1 x = |
浮点数
之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是完全相等的。浮点数可以用数学写法,如1.23,3.14,**-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。它存在大小限制,通过sys
模块的float_info
来查看,在Python**中浮点数的运算会产生一定的误差的,对精度要求高的数据(例如:金钱),就不能用浮点数类型,当整数型与浮点数进行运算的时候,得到的就过会转化成浮点数类型
1 | 0.3*3 # float类型进行运算会出现误差 f= |
1 | 1 # int与float混合运算 x = |
1 | import sys |
小数类型
他可以被看成一个固定精度的float
类型,使用时要导入一个叫decimal的模块,才能使用。decimal
的Decimal
函数
1 | '0.3')*3 x = decimal.Decimal( |
布尔类型
只存在两个值, True
和False
(注意大小写) ,如果将它与int
类型进行运算,可以看到,他会变成1和0,同Java的布尔区别不大,布尔值可以用and
、or
和not
运算,等同于Java
中的&&
,||
,!
1 | True x = |
只要x是非零数值、非空字符串、非空list
等,就判断为True
,否则为False
。
字符串(str)
有序的不可变得字符序列
声明方式:单引号''
,双引号""
,三重引号看(可以使三重单引号,也可以是三重,三重双引号),三重引号是用来声明多行字符串
转义字符:用\
来转义 ,\n
换行
r(raw)
:如果需要转义的字符太多,那么用r'zhizhi'
,就可以使用直接写,不用转义字符,多行转义:r''' '''
占位符:可以用%s
来占位,例如:
1 | '%s,你在吗 '%('小明') |
%s
表示字符串,%d
表示整数型等等
占位符 | 数据类型 |
---|---|
%d | 整数 |
%f | 浮点数 |
%s | 字符串 |
%x | 十六进制整数 |
u(Unicode)
:这是对字符串进行编码可以和r还有多行,进行使用ur''' '''
,用b'ABC'
可以申明一个bytes字节码,查看编码可以用ord()
函数,
1 | UTF-8:# -*- coding: utf-8 -*- |
声明文件以UTF-8
的格式进行编码, 之后要以UTF-8
的格式保存文件即可
字符串可以看成是一个list
,所以也可以用索引来访问其中的元素,返回的是单个字符
总的来说,如果你有多行,那么就用''' '''
或者""" """
,如果你的字符串中包含''
或""
,那么你就用另外一种方式,如果都有,那么就加上\
来表示转义,如果转义符太多了,那么就用r''
,如果还需要Unicode编码就用ur''
,
变量
由于Python是动态语言,所以他的变量不需要类型,他的变量只用一个变量名来表示。这一点区别于作为静态语言的Java。
1 | 1 #Python x = |
1 | int x = 1; //java |
同样的变量的赋值过程也是一样的概念:
1 | a = 'ABC' |
这个过程就是这样的:
执行a = 'ABC'
,解释器创建了字符串'ABC'
和变量a
,并把a
指向'ABC'
:
图片来自于廖雪峰网站
执行b = a
,解释器创建了变量b
,并把b
指向a
指向的字符串'ABC'
:
图片来自于廖雪峰网站
执行a = 'XYZ'
,解释器创建了字符串'XYZ'
,并把a
的指向改为'XYZ'
,但b
并没有更改:
图片来自于廖雪峰网站