Python 学习之路(二)

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/2
1.5
>>> 3//2
1
>>> 3%2
1
>>> 3.0//2
1.0
>>> 3**2
9
>>> 3*3
9
>>> 5//2
2
>>> -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)*2
Fraction(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.pi
3.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+j
Traceback (most recent call last):
  File "<pyshell#50>", line 1, in <module>
    1+j
NameError: name 'j' is not defined
>>>


2.6 二进制 八进制 十六进制

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

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

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

>>> 0X2
2
>>> 0X23
35
>>> 0x23
35
>>> 0o23
19
>>> 0O23
19
>>> 0b1001
9
>>> 0B100
4
>>>

十进制数值在十六进制,八进制,二进制下的表示由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<<3
32
>>> x>>4
0
>>> x>>5
0
>>> x|3
7
>>> x&0
0

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-1
0
>>> True+1
2
>>> False+1
1
>>> False-1
-1

更多内容持续更新中










  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值