基本数据类型

包括:整型(int),浮点数类型(float),小数类型,布尔型(boolean

整型

整型区别于Java中的整型,在Java中整型是有大小的限制,在Python中他的大小理论上是无限大小,实际上他取决于内存大小,整数型的运算得到的结果也是整数型,如果是有余数,那么结果只会取整数部分,忽略小数部分 。int() 函数,将其他的类型装换为int整数型

1
2
3
4
5
6
>>> x = 1
>>> x
1
>>> x = int('12')
>>> x
12

浮点数

之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x10912.3x108是完全相等的。浮点数可以用数学写法,如1.233.14,**-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10e替代,1.23x109就是1.23e9,或者12.3e80.000012可以写成1.2e-5,等等。它存在大小限制,通过sys模块的float_info来查看,在Python**中浮点数的运算会产生一定的误差的,对精度要求高的数据(例如:金钱),就不能用浮点数类型,当整数型与浮点数进行运算的时候,得到的就过会转化成浮点数类型

1
2
3
>>> f= 0.3*3 # float类型进行运算会出现误差
>>> f
0.8999999999999999
1
2
3
4
5
6
>>> x = 1 # int与float混合运算
>>> y = 2.0
>>> x+y
3.0
>>> y-x
1.0
1
2
3
>>> import sys
>>> sys.float_info # 查看float类型的相关信息
sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)

小数类型

他可以被看成一个固定精度的float类型,使用时要导入一个叫decimal的模块,才能使用。decimalDecimal函数

1
2
3
>>> x = decimal.Decimal('0.3')*3
>>> print (x)
0.9

布尔类型

只存在两个值, TrueFalse(注意大小写) ,如果将它与int类型进行运算,可以看到,他会变成10,同Java的布尔区别不大,布尔值可以用andornot运算,等同于Java中的&&,||,!

1
2
3
4
>>> x = True
>>> y = False
>>> print(int(x),int(y))
1 0

只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

字符串(str)

有序的不可变得字符序列
声明方式:单引号'',双引号"",三重引号看(可以使三重单引号,也可以是三重,三重双引号),三重引号是用来声明多行字符串

转义字符:用\来转义 ,\n换行

r(raw):如果需要转义的字符太多,那么用r'zhizhi',就可以使用直接写,不用转义字符,多行转义:r''' '''

占位符:可以用%s来占位,例如:

1
2
'%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
>>> x = 1 #Python
1
int x = 1; //java

同样的变量的赋值过程也是一样的概念:

1
2
3
4
5
6
a = 'ABC'
b = a
a = 'XYZ'
print(b)

ABC

这个过程就是这样的:
执行a = 'ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC'
图片来自廖雪峰网站
图片来自于廖雪峰网站

执行b = a,解释器创建了变量b,并把b指向a指向的字符串'ABC'
图片来自廖雪峰网站
图片来自于廖雪峰网站

执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:
图片来自廖雪峰网站
图片来自于廖雪峰网站