浅谈Python中的数据类型


Posted in Python onMay 05, 2015

数据类型:

float — 浮点数可以精确到小数点后面15位
int — 整型可以无限大
bool — 非零为true,零为false
list — 列表

Float/Int:

运算符:

/ — 浮点运算除
 // — 当结果为正数时,取整; 11//5 =2; 11//4 = 2
当结果为负数时,向下取整;-11//5=-3; -11//4=-3

当分子分母都是float,结果为float型

** —  计算幂; 11**2 =121
% — 取余

其他数学运算

1.分数:

import fractions;
fractions.Fraction(1,3) — 1/3
import math;
—math.sin()
—math.cos()
—math.tan()
—math.asin()

math.pi —3.1415926…
math.sin(math.pi/2) — 1.0
math.tan(math.pi/4) — 0.9999999999…
math.sin(); math

List:

创建: a_list = [‘a', ‘b', ‘mpilgrim', ‘z', ‘example']

a_list[-1] — ‘example'
a_list[0] — ‘a'
a_list[1:3] — [‘b', ‘mpilgrim', ‘z']
a_list[:3] — [‘a', ‘b', ‘mpilgrim' ]
a_list[3:] — [‘z', ‘example']
a_list[:]/a_list — [‘a', ‘b', ‘mpilgrim', ‘z', ‘example']

*注:a_list[:] 与a_list 返回的是不同的list,但它们拥有相同的元素

a_list[x:y]— 获取list切片,x指定第一个切片索引开始位置,y指定截止但不包含的切片索引位置。

向list添加元素:

a_list = [‘a']
a_list = a_list + [2.0, 3] — [‘a', 2.0, 3]
a_list.append(True) — [‘a', 2.0, 3, True]
a_list.extend([‘four','Ω']) — [‘a', 2.0, 3, True,'four','Ω']
a_list.insert(0,'Ω') — [‘Ω','a', 2.0, 3, True,'four','Ω']

list其他功能:

a_list = [‘a', ‘b', ‘new', ‘mpilgrim', ‘new']
a_list.count(‘new') — 2
a_list.count(‘mpilgrim') — 1
‘new' in a_list — True
a_list.index(‘new') — 2
a_list.index(‘mpilgrim') — 3
a_list.index(‘c') — through a exception because ‘c' is not in a_list.
del a_list[1] — [‘a', ‘new', ‘mpilgrim', ‘new']
a_list.remove(‘new') — [‘a', mpilgrim', ‘new']

注:remove只删除第一个'new'

a_list.pop() — 'new'/[‘a', mpilgrim' ](删除并返回最后一个元素)
a_list.pop(0) — ‘a' / [‘mpilgrim'] (删除并返回第0个元素)

空列表为假,其他列表为真。

元组(元素是不可变的列表):

定义:与列表的定义相同,除了整个元素的集合用圆括号而,不是方括号闭合

a_tuple = (“a”, “b”, “mpilgrim”, “z”, “example”)
a_tuple = (‘a', ‘b', ‘mpilgrim', ‘z', ‘example')

tuple 只能索引,不能修改。

元组相对于列表的优势:

1.速度快
2.“写保护”,更安全
3.一些元组可以当作字典键??

内置的tuple()函数接受一个列表参数并将列表转化成元组

同理,list()函数将元组转换成列表

同时赋多个值:

v = (‘a',2, True)
(x,y,z) = v — x=‘a', y=2, z=True

range() — 内置函数,进行连续变量赋值

(Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday) = range(7)

Monday — 0
    Thursday — 3
    Sunday — 6
        range() — 内置函数range()构建了一个整数序列,range()函数返回一个迭代器。

集合(里面的值是无序的):

    创建集合:用逗号分隔每个值,用大括号{}将所有值包括起来。
    a_set = {1}
    type(a_set) — <class ‘set'>
    以列表为基础创建集合:
    a_list = [‘a', ‘b', ‘mpilgrim', True, False, 42]
    a_set = set(a_list)
    a_set — {‘a', ‘b', ‘mpilgrim', True, False, 42}
    a_set = set() — 得到一个空的set
    a_dic = {} — 得到一个空的dic    

    修改集合:

    a_set = {1,2}
    a_set.add(4) — {1,2,4}
    len(a_set) — 3
    a_set.add(1) — {1,2,4}
    a_set.update({2,4,6}) — {1,2,4,6}
    a_set.update({3,6,9}, {1,2,3,5,8,13}) — {1,2,3,4,5,6,8,9,13}
    a_set.update([15,16]) — {1,2,3,4,5,6,8,9,13,15,16}
    a_set.discard(16) — {1,2,3,4,5,6,8,9,13,15}
    a_set.discard(16) — {1,2,3,4,5,6,8,9,13,15}
    a_set.remove(15) —{1,2,3,4,5,6,8,9,13}
    a_set.remove(15) — through a exception
    a_set.pop() — return 1 / {2,3,4,5,6,8,9,13}
    注:a_set.pop()随机删掉集合中的某个值并返回该值。
    a_set.clear() — set()
    a_set.pop() — through exception.  

    集合的其他运算:

    a_set = {2,3,4,5,6,8,9,13}
    30 in a_set — False
    4 in a_set — True
    b_set  = {3,4,10,12}
    a_set.union(b_set) — 两个集合的并
    a_set.intersetion(b_set) — 两个集合的交集
    a_set.difference(b_set) — a_set中有但是b_set中没有的元素
    a_set.symmetric_difference(b_set) — 返回所有只在一个集合中出现的元素
    a_set.issubset(b_set) — 判断a_set是否是b_set的子集
    b_set.issuperset(a_set) — 判断b_set是否是a_set的超集

    在布尔类型上下文环境中,空集合为假,任何包含一个以上元素的集合为真。

字典(键值对的无序集合):

    创建字典:

    a_dic = {‘server':'db.diveintopython3.org',
    ‘databas':'mysql'}
    a_dic[‘server'] — ‘db.diveintopython3.org'
    a_dic[‘database'] — ‘mysql' 

   修改字典:

    a_dic[‘user'] = ‘mark'  — {'user': 'mark', 'server': 'db.diveintopython3.org',     'database':     ‘blog'}
    a_dic[‘database'] = ‘blog' —  {'user': 'mark', 'server': 'db.diveintopython3.org',     'database': ‘blog'}
    a_dic[‘user'] = ‘bob' — {'user': 'bob', 'server': 'db.diveintopython3.org',     'database':     ‘blog'}
    a_dic[‘User'] = ‘mark' — {'user': 'bob', ‘Uuser': 'mark', 'server':     'db.diveintopython3.org', 'database': ‘blog'}

    注:1.在字典中不允许有重复的键。对现有键赋值将会覆盖原有值;
    2.随时可以添加新的键值对;
    3.字典键区分大小写。

    混合值字典:

    suffixes = { 1000:[‘KB', ‘MB', ‘GB', ‘TB', ‘PB', ‘EB', ‘ZB', ‘YB'],
        1024: [‘KiB', ‘MiB', ‘GiB', ‘TiB', ‘PiB' , ‘EiB', ‘ZiB', ‘YiB']}

    len(suffixes) — 2
    1000 in suffixes — True
    suffixes[1024] — [‘KiB', ‘MiB', ‘GiB', ‘TiB', ‘PiB' , ‘EiB', ‘ZiB', ‘YiB']
    suffixes[1000][3] — ‘TB'
   
    空字典为假, 所有其他字典为真

以上所述就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
python的格式化输出(format,%)实例详解
Jun 01 Python
python如何解析配置文件并应用到项目中
Jun 27 Python
PyTorch实现AlexNet示例
Jan 14 Python
浅谈pytorch、cuda、python的版本对齐问题
Jan 15 Python
Python编写memcached启动脚本代码实例
Aug 14 Python
Python使用Opencv实现边缘检测以及轮廓检测的实现
Dec 31 Python
python小程序之飘落的银杏
Apr 17 Python
Python入门学习之类的相关知识总结
May 25 Python
Python 发送SMTP邮件的简单教程
Jun 24 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 Python
用Python实现一个简单的能够上传下载的HTTP服务器
May 05 #Python
使用Python程序抓取新浪在国内的所有IP的教程
May 04 #Python
Python版微信红包分配算法
May 04 #Python
用Python编写一个每天都在系统下新建一个文件夹的脚本
May 04 #Python
用Python编写生成树状结构的文件目录的脚本的教程
May 04 #Python
使用Python脚本将Bing的每日图片作为桌面的教程
May 04 #Python
详解Python的Django框架中的通用视图
May 04 #Python
You might like
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
学习php设计模式 php实现合成模式(composite)
2015/12/08 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
运用Windows XP附带的Msicuu.exe、Msizap.exe来彻底卸载顽固程序
2007/04/21 Javascript
Javascript异步表单提交,图片上传,兼容异步模拟ajax技术
2010/05/10 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
JavaScript实现判断图片是否加载完成的3种方法整理
2015/03/13 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
JavaScript中数据结构与算法(二):队列
2015/06/19 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jquery实现全选、不选、反选的两种方法
2016/09/06 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
微信小程序支付及退款流程详解
2017/11/30 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
使用vue点击li,获取当前点击li父辈元素的属性值方法
2018/09/12 Javascript
微信小程序页面间值传递的两种方法
2018/11/26 Javascript
详解VUE里子组件如何获取父组件动态变化的值
2018/12/26 Javascript
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
Python编程之微信推送模板消息功能示例
2017/08/21 Python
Python简单实现控制电脑的方法
2018/01/22 Python
python requests post多层字典的方法
2018/12/27 Python
将string类型的数据类型转换为spark rdd时报错的解决方法
2019/02/18 Python
python中的单引号双引号区别知识点总结
2019/06/23 Python
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
Linux面试题LINUX系统类
2014/11/19 面试题
Why do we need Unit test
2013/01/03 面试题
幼师专业毕业生自荐信
2013/09/29 职场文书
小学生学习感言
2014/03/10 职场文书
股份合作协议书
2014/04/12 职场文书
副职竞争上岗演讲稿
2014/05/12 职场文书
优秀共产党员演讲稿
2014/09/04 职场文书
数学教师个人工作总结
2015/02/06 职场文书
卫生院艾滋病宣传活动总结
2015/05/09 职场文书
城南旧事电影观后感
2015/06/16 职场文书
利用Java设置Word文本框中的文字旋转方向的实现方法
2021/06/28 Java/Android