您的位置:首页 > 编程语言 > Python开发

【PYTHON笔记】(3) : 数据类型 -- 数字

2015-03-10 14:39 459 查看
基本的类型

下面我们来看一下PYTHON里面常用的类型



Tuple 是不是不认识?我们后面一起看,先了解一下。

数字

基本数字类型

Python里面的数字类型包括整形、长整形、浮点数、复数。在PYTHON里面,数字不是一个单独的对象,而是一个包含相似类型的分类。



有几点我想跟大家再说明一下:

1.在PYTHON3之后的版本里面 整形只有一个类型,不像之前的版本里面,我们会分整形和长整形。

2.了解一下二进制、八进制、十进制、十六进制。

十六进制:以0X开头,后面接0-9和A-F;

八进制:以0O开头,后面跟0-7;

二进制:以0B开头,后面跟0-1;

3.PYTHON的复合型的结构是:实际数字+未知数字(本人对complex()函数的实际运用并未有深刻的理解,希望大家可以指点一下)

我们再来看看内置工具吧:

运算符号:+, -, , /, >>, *, &, 等等

内置函数:pow, abs, round, int, hex, bin,等等

功能模块:random, math等等

下图是PYTHON里的运算



我们按照上面的表练习一下就OK了,不清楚的查文档~

数字中的那些事儿

1.变量

一提到程序,必定少不了变量,我们这里有必要知道几个重点:

1.变量只有在第一次赋值时才会创建。

2.变量在使用前(比如 x + 10),必须现赋值。

2.STR() VS REPR()

两个都是将对象转化成字符串。只不过,str()方法是将对象转化成可读的字符串,而repr()则是转化成“代码”字符串。

>>> import datetime
>>> today = datetime.datetime.now()
>>> repr(today)
'datetime.datetime(2012, 3, 14, 9, 21, 58, 130922)'


3.有趣的事情

1.1+2.2 == 3.3 大家都认为是正确的吧 ? 可是在PYTHON里面是不对的哟,原因是什么?对于小量的浮点数据,我们有时候需要做一些微调。比如 int(1.1+2.2) == int (3.3) 结果就是True

4.除法

PYTHON3里面有两种除法a. True Division b.Floor Division. 所谓 True Division 就是会保留小数位的。比如 10/4 结果是2.5 。 OK, 什么是Floor Division ? 就是10/4结果是2 就是不大于结果的最大整数值.

PYTHON3 ,大家可以参考下面的例子:

>>> (5 / 2), (5 / 2.0), (5 / −2.0), (5 / −2)
(2.5, 2.5, −2.5, −2.5)


5.常用内置的函数

>>> import math
>>> math.pi, math.e
(3.141592653589793, 2.718281828459045)
>>> math.sin(2 * math.pi / 180)
0.03489949670250097
>>> math.sqrt(144), math.sqrt(2)
(12.0, 1.4142135623730951)
>>> pow(2, 4), 2 ** 4, 2.0 ** 4.0
(16, 16, 16.0)
>>> abs(-42.0), sum((1, 2, 3, 4))
(42.0, 10)
>>> min(3, 1, 2, 4), max(3, 1, 2, 4)
(1, 4)


>>> math.floor(2.567), math.floor(-2.567)
(2, −3)
>>> math.trunc(2.567), math.trunc(−2.567)
(2, −2)
>>> int(2.567), int(−2.567)
(2, −2)
>>> round(2.567), round(2.467), round(2.567, 2)
(3, 2, 2.57)
>>> '%.1f' % 2.567, '{0:.2f}'.format(2.567)
('2.6', '2.57')


>>> random.random()
>>>0.051308506597373515
>>> random.randint(1, 10)
>>>5
>>> random.choice(['Life of Brian', 'Holy Grail', 'Meaning of Life'])
'Life of Brian'
>>> suits = ['hearts', 'clubs', 'diamonds', 'spades'] >>> random.shuffle(suits)
>>> suits
['spades', 'hearts', 'diamonds', 'clubs']


其他

1.Decimal

>>>0.1 + 0.1 + 0.1 - 0.3
>>> 5.551115123125783e-17


答案怎么不是0? 其实这个问题我们之前已经碰到了。现在我们换一种方式

>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3')
0.0


通过向Decimal()传递一个字符串来控制你想要的位数。默认情况下,结果位数以表达式中最多位数为准:

>>> from decimal import Decimal
>>> Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.03')
0.27


下面我们来看看设置全局精度

>>> import decimal
>>> decimal.getcontext().prec = 4
>>> decimal.Decimal(1) / decimal.Decimal(7) Decimal('0.1429')


2.分数

PYTHON2.6之后出了一个新的数字类型

>>> from fractions import Fraction
>>> x = Fraction(4, 6)
>>> x
Fraction(2, 3)
>>> print(x)
2/3


3.Set

Set是无序的,唯一的、不可变的集合。我们来看一下PYTHON3里面SET的一些用法

>>> set([1, 2, 3, 4])
{1, 2, 3, 4}
>>> set('spam')
{'s', 'a', 'p', 'm'}
>>> {1, 2, 3, 4}
{1, 2, 3, 4}
>>> S = {'s', 'p', 'a', 'm'} >>> S
{'s', 'a', 'p', 'm'}
>>> S.add('alot')
>>> S
{'s', 'a', 'p', 'alot', 'm'}
>>> S1 = {1, 2, 3, 4}
>>> S1 & {1, 3}
{1, 3}
>>> {1, 5, 3, 6} | S1
{1, 2, 3, 4, 5, 6}
>>> S1 - {1, 3, 4}
{2}
>>> S1 > {1, 3}
True
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python sam走起