Python基础教程2–数据类型-numbers

原文链接:http://www.juzicode.com/archives/186

Python中有几大基本数据类型:numbers、string、list、tuple,dict,set等,本文介绍基本数据类型numbers。

1 变量

在介绍数据类型前,先看下变量是什么。在编译型语言(比如C语言)中,一个变量需要先声明其类型,再赋值和使用,比如C语言中定义一个变量a,并赋值为10:

int a;
a=10;

但是在python中,并不需要这么麻烦先声明其类型,而是简单粗暴直接定义:

a=10

这种做法有好处也有坏处,好处是使用起来更方便,但是因为没有编译型语言那样在编译阶段进行语法检查,如果没有先定义就使用在运行阶段就会导致异常。下面的例程就是一个没有定义就使用的例子,在运行阶段发生了NameError错误,提示a这个变量没有定义,这样会中断程序的运行,所以第三行的“end—”字符没有在屏幕上打印出来:

2 整数(int)

假设定义了a=3,并没有声明其类型,python解释器根据“=”后面的数据类型直接推导出左侧的a 是int类型。我们也可以通过python内置的type()函数打印出其类型:

>>> a = 3 
>>> print(a) 
3 
>>> type(a) 
< class 'int'> 
>>> 

整数类型的数据可以进行加减乘除余计算,见例程datatype-int.py

源代码运行结果
print(‘\n—–欢迎来到
www.juzicode.com!—–‘)
print(‘int数据类型例程:
‘)
a=5
b=3
print(‘a =’,a)
print(‘b =’,b)
print(‘a类型:’,type(a))
print(‘b类型:’,type(b))
print(‘a+b =’,a+b)
print(‘a-b =’,a-b)
print(‘a*b =’,a*b)
print(‘a//b =’,a//b)
print(‘a%b =’,a%b)
print(‘a/b =’,a/b)
 
print(‘a//b的数据类型:’,type(a//b))
print(‘a/b的数据类型:’,type(a/b)) 
—–欢迎来到
www.juzicode.com!—–
int数据类型例程:
a = 5
b = 3
a类型:
<class ‘int’>
b类型:
<class ‘int’>
a+b = 8
a-b = 2
a*b = 15
a//b = 1
a%b = 2
a/b = 1.6666666666666667
a//b的数据类型:
< class ‘int’>
a/b的数据类型:
< class ‘float’>

【注意】在上面的例程中,最后一个除法,得到的实际不是一个整数,而是后面要介绍的浮点数。在python里整数的除法有2种类型,一种是普通的除法,用“/”表示,得到的总是浮点数,不管这种除法的到的数据小数点后面是否都是0,(就是说即使能被整除得到的仍然是浮点数,比如3/1得到的是3.0的浮点数)。另外一种除法叫做“地板除”,用“//”表示,这种除法得到的数据是去掉小数点后面值的整数类型,类似于c语言的整型数据的除法“/”。

3 浮点数(float)

浮点数直观理解就是带小数点的数值,在下面的例子中可以看到如果定义a=6.0,print打印它的类型看到的是“float”类型。从下面的例子也可以看出如果一个浮点数据和一个整型进行运算,得到的仍然是一个浮点数。见例程datatype-float.py

源代码运行结果
print(‘\n—–欢迎来到www.juzicode.com!—–‘)
print(‘float数据类型例程:’)
a=6.1
b=3
print(‘a =’,a)
print(‘b =’,b)
print(‘a类型:’,type(a))
print(‘b类型:’,type(b))
print(‘a+b =’,a+b)
print(‘a-b =’,a-b)
print(‘ab =’,ab)
print(‘a//b =’,a//b)
print(‘a%b =’,a%b)
print(‘a/b =’,a/b)
print(‘a//b的数据类型:’,type(a//b))
print(‘a/b的数据类型:’,type(a/b))
—–欢迎来到www.juzicode.com!—–
float数据类型例程:
a = 6.1
b = 3
a类型:
b类型:
a+b = 9.1
a-b = 3.0999999999999996
a*b = 18.299999999999997
a//b = 2.0
a%b = 0.09999999999999964
a/b = 2.033333333333333
a//b的数据类型: < class ‘float’>
a/b的数据类型: < class ‘float’>

【注意】在进行除法运算时,要确保被除数不为0,否则会导致抛ZeroDivisionError异常:

>>> 5.1/0
Traceback (most recent call last):  
File “<stdin>”, line 1, in <module>
ZeroDivisionError: division by zero
>>>

浮点数还有一种指数表示方法,用字母e或者E表示10的幂,比如5.2e3或者5.2e+3表示5200,5.2e-3表示0.0052:

>>> 5.2e3
5200.0
>>> 5.2e+3
5200.0
>>> 5.2e-3
0.0052

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注