浅谈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中的文件和目录操作实现代码
Mar 13 Python
python的pip安装以及使用教程
Sep 18 Python
Python Pillow Image Invert
Jan 22 Python
Python3字符串encode与decode的讲解
Apr 02 Python
浅析Python 实现一个自动化翻译和替换的工具
Apr 14 Python
python SQLAlchemy 中的Engine详解
Jul 04 Python
python+pygame实现坦克大战
Sep 10 Python
解决Tensorboard可视化错误:不显示数据 No scalar data was found
Feb 15 Python
python序列类型种类详解
Feb 26 Python
python 判断txt每行内容中是否包含子串并重新写入保存的实例
Mar 12 Python
python使用opencv resize图像不进行插值的操作
Jul 05 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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
PHP工程师VIM配置分享
2015/12/15 PHP
PHP对称加密算法(DES/AES)类的实现代码
2017/11/14 PHP
PHP开发实现微信退款功能示例
2017/11/25 PHP
phpfpm的作用和用法
2019/10/10 PHP
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
JQuery 弹出框定位实现方法
2010/12/02 Javascript
基于jQuery的模仿新浪微博时间的组件
2011/10/04 Javascript
js Function类型
2011/12/04 Javascript
Extjs4 GridPanel 的几种样式使用介绍
2013/04/18 Javascript
JS弹出层单纯的绝对定位居中示例代码
2014/02/18 Javascript
Nodejs极简入门教程(二):定时器
2014/10/25 NodeJs
浅谈页面装载js及性能分析方法
2014/12/09 Javascript
DOM基础教程之事件对象
2015/01/20 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
详解Angularjs中的依赖注入
2016/03/11 Javascript
webpack实现热更新(实施同步刷新)
2017/07/28 Javascript
Express本地测试HTTPS的示例代码
2018/06/06 Javascript
微信小程序修改swiper默认指示器样式的实例代码
2018/07/18 Javascript
用npm安装vue和vue-cli,并使用webpack创建项目的方法
2018/09/28 Javascript
node.js实现带进度条的多文件上传
2020/03/27 Javascript
原生JS实现相邻月份日历
2020/10/13 Javascript
基于JavaScript实现简单抽奖功能代码实例
2020/10/20 Javascript
关于uniApp editor微信滑动问题
2021/01/15 Javascript
[02:40]2018年度DOTA2最佳新人-完美盛典
2018/12/16 DOTA
Python实现将json文件中向量写入Excel的方法
2018/03/26 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
python高斯分布概率密度函数的使用详解
2019/07/10 Python
关于递归的一道.NET面试题
2013/05/12 面试题
优秀士兵先进事迹
2014/02/06 职场文书
2013年最新自荐信范文
2014/06/23 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
小学生作文评语集锦
2014/12/25 职场文书
广告业务员岗位职责
2015/02/13 职场文书
教师信息技术学习心得体会
2016/01/21 职场文书
忠诚教育学习心得体会
2016/01/23 职场文书
Python实现自动玩连连看的脚本分享
2022/04/04 Python