Python 学习之路(二)

来源:互联网 发布:银行家算法例题 编辑:程序博客网 时间:2024/05/16 01:41

Python数据类型和操作



1.Python中的概念层次

一般来说,Python 的程序由模块,语句,表达式,对象组成。

层次结构如下:

1.程序由模块组成

2.模块包含语句

3.语句包含表达式

4.表达式产生对象,并对对象进行处理


我们先从底层学习,先学习Python的内置对象,即内置的一些数据类型,内置数据类型列表如图1所示。由于内置数据类型较多,不可能一次讲完,所以我们会在以后的博客中逐步讲解,这里我们只讲Numbers即数值类型。


图1

2.Numbers数值类型简介

数值类型,包含了整型(int)、浮点型(float)、复数、分数等类型。对于常用的int和float,由于Python不声明变量的类型,所以不能通过类型声明能够区分它们,Python通过是否含有小数点区分它们。这里介绍两个函数用于检测类型和判断类型,type()函数可以用来检测类型,isinstance()判断一个变量或值是不是某个类型。

>>> type(1)<class 'int'>>>> type(1.2)<class 'float'>>>> type('str')<class 'str'>>>> type('hello world!')<class 'str'>>>> isinstance(1.2,float)True>>> isinstance(1,int)True



2.1 强制类型转换

对于从float到int的强制类型转换要注意一点,int强制性类型转换是向0取整,而从int到float的转换不存在问题。

>>> int(-2.3)-2>>> int(2.4)2>>>


2.2 常见数值类型运算

数值类型中常见的运算有/,//,%,*,**等。

(1) / 运算符表示浮点除法,即使分子和分母是整数,结果也是浮点数。

(2) // 运算符 表示整数除法,这个整数除法返回的是不大于浮点数结果的最大整数,比如5//2=2,浮点结果为2.5,2是不大于2.5的最大整数,-5//2浮点结果是-2.5,-3是      不大于-2.5的最大整数,4//2结果是2。

(3)%表示取余

(4)**表示指数幂

>>> 3/21.5>>> 3//21>>> 3%21>>> 3.0//21.0>>> 3**29>>> 3*39>>> 5//22>>> -5//2-3


2.3 分数

Python中要使用分数,首先得引入模块fractions,分数的表示为: fractions.Fraction(A,B),A是分子,B是分母,使用如下:
>>> import fractions>>> fractions.Fraction(2,3)Fraction(2, 3)>>> fractions.Fraction(2,3)*2Fraction(4, 3)>>>

2.4 数学运算

首先要引入模块math,一般的三角函数如sin、cos、tan、asin、acos和atan等都有实现,调用方式则类似于math.sin,参数默认是弧度制,math.pi是圆周率,其他简单函数则可以直接调用,如pow,min,max,sum等,这里注意sum的参数是一个序列,可以用元组或列表等表示。

>>> import math>>> math.sin(math.pi/2)1.0>>> math.pi3.141592653589793>>>>>> math.sqrt(4)2.0>>> abs(-1)1>>> max(2,3)3>>> min(3,4)3>>> sum((2,3,4))9>>> pow(2,3)8>>> sum([2,3])5


注意到sum函数的两次调用的不同,第一次sum((2,3,4))是对(2,3,4)这个元组进行求和,第二次是对列表[2,3]进行求和。

2.5 复数

复数由实部和虚部组成,这里在虚部数值后加j或J即可表示复数,但要注意当虚部的数值为1时不可省略该数值也就是说,1+j或者1-j错误,下面的测试中可以看到1+j这种使用方式出错,使用如下

>>> 1+3j(1+3j)>>> 1-3j(1-3j)>>> (1+3j)*(1-3j)(10+0j)>>> 1+jTraceback (most recent call last):  File "<pyshell#50>", line 1, in <module>    1+jNameError: name 'j' is not defined>>>


2.6 二进制 八进制 十六进制

      十六进制的表示,开头为0x或0X,后面是数值

    八进制的表示,开头为0o或0O,后面是数值

    二进制的表示,开头为0b或0B, 后面是数值

>>> 0X22>>> 0X2335>>> 0x2335>>> 0o2319>>> 0O2319>>> 0b10019>>> 0B1004>>>

十进制数值在十六进制,八进制,二进制下的表示由oct(),hex(),bin()函数完成。

>>> oct(255)'0o377'>>> hex(255)'0xff'>>> bin(255)'0b11111111'
同时Python还提供了由字符串转化为整型的函数int(),使用如下

>>> int('17',8)15>>> int('176',16)374>>> int('100',2)4

注意这里第一个参数是字符串,第二个参数是进制,这里的字符串是不需要加0X,0O,0B等前缀的。

Python的一个内置函数eval(),可以执行Python代码,即在参数中输入Python的代码字符串,可以得到结果。比如

>>> eval('1+1')2>>> eval('0b0001')1

2.7 位操作

Python提供了C语言中常用的位操作,包括移位,或,与和异或
>>> x<<332>>> x>>40>>> x>>50>>> x|37>>> x&00

2.8 Decimal

Decimal是一种小数,精确度有限。
>>> from decimal import Decimal>>> Decimal('0.1')+Decimal('-0.1')Decimal('0.0')>>> Decimal('0.1')-Decimal('0.1')Decimal('0.0')>>>

2.9 布尔型

布尔型有两个固定的值,True和False,当然有时也可作为整数使用。

>>> True-10>>> True+12>>> False+11>>> False-1-1

更多内容持续更新中










0 0
原创粉丝点击