开发技术--浅谈python数据类型

开发|浅谈python数据类型

在回顾Python基础的时候,遇到最大的问题就是内容很多,而我的目的是回顾自己之前学习的内容,进行相应的总结,所以我就不玩基础了,很多在我实际生活中使用的东西,我会在文章中提一下。并且我自己会根据这些内容进行相应的补充与扩展。
文章定位:不是科普文,是自己对于自己学习的总结。

前言

目前所有的文章思想格式都是:知识+情感。
知识:对于所有的知识点的描述。力求不含任何的自我感情色彩。
情感:用我自己的方式,解读知识点。力求通俗易懂,完美透析知识。

正文

正文的主要内容是:Python的所有数据类型,包含None,布尔,数字,字符串,元祖,字典,集合,有序字典,冰冻集合。

基础知识

1.首先,需要知道Python这个语言是怎么自己区分数据类型的,使用的是:type() 方法

s = 'rongming'
print(type(s))  # <class 'str'>

None类型

None表示的就是Python中的None。作为Python中的一种数据类型哈,一般人估计不知道,记一下~~

a = None
print(type(a))  # <class 'NoneType'>

布尔类型

布尔类型:True/False
当Python进行比较远算的时候,就会得到布尔类型的结果。

In [1]: type(None)
Out[1]: NoneType

In [2]: a = 10
In [3]: b = 8
In [4]: c = a > b

In [5]: c
Out[5]: True

In [6]: print(type(c))
<class 'bool'>

数字类型

数字类型: int/float(整型/浮点型)
整型就是整数,浮点型就是小数。
注意:没有long 型

In [7]: num = 666
In [8]: num1 = 1.666

In [9]: type(num)
Out[9]: int

In [10]: type(num1)
Out[10]: float

字符串类型

1.字符串类型:str,属于不可变数据类型。

2.字符串是字符的集合,并且需要使用单引号和双引号包含着。

3.字符串的操作函数
字符串的操作函数源码如下:

In [12]: dir(s)
Out[12]:
[ 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill']

4.常用的字符串操作函数
1)切片操作,基于字符串中的每一个字符进行切片
2)字符串的转义,使用两个 \
3)center() 可以生成标题,左右包含指定符号
4)count() 字符串数据类型中的字符数
5)encode 编码,编码转换使用
6)decode 解码,编码转换使用
7) format() 字符串的格式化,适合在格式化的时候同一变量多处出现
8) isdigit() 判断字符串是不是数字
9)islower/isupper 表示字母是不是小写/大写
10)join 进行字符串的拼接,很常用
11)lstrip 去除字符串左边空格
12)strip 去除字符串两边空格
13)rstrip去除字符串右边空格
14)replace进行字符串的替换
15)split 进行字符串的切分
16)rsplit 进行字符串的切分
17)startswith 判断是不是以什么开头
18)lower 统一为小写
19)upper 统一为大写

元祖类型

1.元祖类型: tuple,属于不可变数据类型, ()

2.常用函数:
index() 返回对应元素的下标
count() 统计元祖的个数

3.元祖的可修改
1)注意:虽然元祖属于不可变数据类型,但是依然可以修改元祖里面的值
2)注意:在底层,不可变数据类型只是当前的表示是不可修改的,但是嵌套可变数据类型就可以修改,基于内部存放的是内存地址原理。

In [26]: tu = (1, 2, 3, [4, 5, 6])

In [27]: tu
Out[27]: (1, 2, 3, [4, 5, 6])

In [28]: tu[3][0] = 'rongming'

In [29]: tu
Out[29]: (1, 2, 3, ['rongming', 5, 6])

列表类型

1.列表数据类型: list ,属于可变数据类型。使用[].

2.列表类型常用函数源码:

    In [32]: dir(d)
    Out[32]:
    [ 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']

3.常用的函数
1)append() 添加元素到列表的最后
2)pop() 弹出最后一个元素(为空报错)
3)extend() 将两个列表合并
4)切片[ start: end : step]
5)len 看列表的长度
6)for循环遍历
7)enumerate() 进行列表的遍历

4)列表生成式

In [33]: a = [i for i in range(10)]

In [34]: a
Out[34]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

字典类型

1.字典类型:** dict,, 属于可变数据类型,使用 {} 表示。**

2.字典的结构: {key: value, key: value, key: value, .....}
注意: key是哈希值,所以字典的查询速度快
补充知识点:hash知识,见hash。

3.字典常见函数

 'clear',
 'copy',
 'fromkeys',
 'get',  #  获得字典中键对应的值
 'items',
 'keys',
 'pop',
 'popitem',
 'setdefault',  # 返回已经存在值,没有就修改
 'update', # 覆盖现象
 'values'

4.字典生成式

In [5]: m = {i:i*3 for i in range(8)}

In [6]: m
Out[6]: {0: 0, 1: 3, 2: 6, 3: 9, 4: 12, 5: 15, 6: 18, 7: 21}

5.深浅拷贝(两层与多层的区别)
1)注意:python底层对于数据的存储是使用的内存地址进行映射。
2)所有的可变数据类型,都是由不可变数据类型拼凑的
3)所有的不可变数据类型,都是对于内部的单位整体是不可变的。
4)可以使用copy工具包进行数据的deepcopy,实现数据的完全分离。如果只是简单的赋值与copy只可以解决一层嵌套关系。

In [8]: d = {'a':[1, 2, 3], 'b': [6, 7, 8]}

In [9]: d
Out[9]: {'a': [1, 2, 3], 'b': [6, 7, 8]}

In [10]: f = d

In [11]: f['a'][0] = 'rongming'

In [12]: d
Out[12]: {'a': ['rongming', 2, 3], 'b': [6, 7, 8]}

In [13]: f
Out[13]: {'a': ['rongming', 2, 3], 'b': [6, 7, 8]}

集合类型

1.结合数据类型:** set, 属于可变数据类型,使用{}表示。**

2.集合天然去重,所以集合具有无序的性质与不重复的性质。

3.常用的函数

 'add',
 'clear',
 'copy',
 'difference',  # -
 'difference_update',
 'discard',
 'intersection',  # &
 'intersection_update',
 'isdisjoint',
 'issubset',
 'issuperset',
 'pop',  # 随机pop出一个元素
 'remove',
 'symmetric_difference',
 'symmetric_difference_update',
 'union',  # |
 'update'

冰冻集合

1.注意:冰冻集合, frozenset属于不可变数据类型。所以不能进行修改

In [21]: f = {1, 2, 3, 4, 5}

In [22]: d = frozenset(f)

In [23]: d
Out[23]: frozenset({1, 2, 3, 4, 5})

2.可以使用的函数

 'copy',
 'difference',
 'intersection',
 'isdisjoint',
 'issubset',
 'issuperset',
 'symmetric_difference',
 'union'

有序字典

1.有序字典:OrderedDict,保证了字典中的key的有序,在大量数据的时候,可以使用这个办法进行数据的快速查找(二分法了解一下~~)。

In [25]: from collections import OrderedDict

In [26]: d = OrderedDict({'name':'rongming', 'age':20})

In [27]: d
Out[27]: OrderedDict([('name', 'rongming'), ('age', 20)])

2.常用函数

 'clear',
 'copy',
 'fromkeys',
 'get',
 'items',
 'keys',
 'move_to_end',
 'pop',
 'popitem',
 'setdefault',
 'update',
 'values'

hash

1)hash散列值具有不可逆与计算速度快的特点。

2)python 实现hash
注意:python中 重启之后hash的值不一样

>>> hash('rongming')
3985893259886982844
>>> hash('rongming')
3985893259886982844

3)hash 的使用
MD5(不要使用同一个密码注册多个账号,每一个数据库存储的密码不一定是密文)
数字签名(公钥,私钥)
区块链

结束语

本文基本上涵盖了所有的Python数据类型,量很大,算是自己对于自己之前学习的一个浓缩。
当现在会看当时自己学习的内容的时候,万分感慨,真的是那句话:’终究还是自己感动了自己啊!‘

原文地址:https://www.cnblogs.com/Kate-liu/p/11237935.html

时间: 2024-11-02 17:07:03

开发技术--浅谈python数据类型的相关文章

开发技术--浅谈Python函数

开发|浅谈Python函数 函数在实际使用中有很多不一样的小九九,我将从最基础的函数内容,延伸出函数的高级用法.此文非科普片~~ 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 首先介绍函数是什么,接着走进函数,并且发现函数的高级使用方法,最后列出常用的Python的内置函数. 函数是什么? 1.函数,在代码执行的是不执行,只有在调用函数的时候才会执行. 2.函数使用

流媒体网站开发技术浅谈

流媒体网站开发技术浅谈(2012-02) 2012-03-02    新闻来源:武汉广电网 张方东 (黄陂区广播影视局事业技术科) 摘 要:随着有线和无线网络宽带的高速发展,人们不再满足于因特网中仅有的文字.图片等简单信息,而越来越希望看到更直观.更丰富的影视节目,流媒体网站因此应运而生.本文从流媒体概念.流媒体格式.流媒体文件制作.流媒体文件传输.流媒体文件发布及流媒体网站部署等方面对开发流媒体网站作了详细阐述. 关键词:流媒体 网站开发 部署 技术 1.概述 在网络上传输多媒体有下载和流式传

开发技术--浅谈文件操作与字符编码

开发|浅谈文件操作与字符编码 听说Python的文件操作很容易在某一些电脑上出问题,然而罪魁祸首就是字符编码.让我们来了解一些底层的编码方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 本文主要分为两大部分,一部分是如何使用Python进行文件操作,另一部分是聊一下字符编码的那些事.(比较绕,尽量用最最最通俗的话表述~~) 文件操作 1.文件操作方式 open(

.net中对象序列化技术浅谈

.net中对象序列化技术浅谈 2009-03-11 阅读2756评论2 序列化是将对象状态转换为可保持或传输的格式的过程.与序列化相对的是反序列化,它将流转换为对象.这两个过程结合起来,可以轻松地存储和传输数 据.例如,可以序列化一个对象,然后使用 HTTP 通过 Internet 在客户端和服务器之间传输该对象.反之,反序列化根据流重新构造对象.此外还可以将对象序列化后保存到本地,再次运行的时候可以从本地文件 中“恢复”对象到序列化之前的状态.在.net中有提供了几种序列化的方式:二进制序列化

浅谈 Python 的 with 语句

浅谈 Python 的 with 语句 王 生辉 和 李 骅宸2011 年 12 月 02 日发布 WeiboGoogle+用电子邮件发送本页面 3 引言 with 语句是从 Python 2.5 开始引入的一种与异常处理相关的功能(2.5 版本中要通过 from __future__ import with_statement 导入后才可以使用),从 2.6 版本开始缺省可用(参考 What's new in Python 2.6? 中 with 语句相关部分介绍).with 语句适用于对资源

浅谈 Python 程序和 C 程序的整合

源地址:http://www.ibm.com/developerworks/cn/linux/l-cn-pythonandc/ 概览 Python 是一种用于快速开发软件的编程语言,它的语法比较简单,易于掌握,但存在执行速度慢的问题,并且在处理某些问题时存在不足,如对计算机硬件系统的访问,对媒体文件的访问等.而作为软件开发的传统编程语言—— C 语言,却能在这些问题上很好地弥补 Python 语言的不足.因此,本文通过实例研究如何在 Python 程序中整合既有的 C 语言模块,包括用 C 语言

Android安全开发之浅谈密钥硬编码

Android安全开发之浅谈密钥硬编码 作者:伊樵.呆狐@阿里聚安全 1 简介 在阿里聚安全的漏洞扫描器中和人工APP安全审计中,经常发现有开发者将密钥硬编码在Java代码.文件中,这样做会引起很大风险.信息安全的基础在于密码学,而常用的密码学算法都是公开的,加密内容的保密依靠的是密钥的保密,密钥如果泄露,对于对称密码算法,根据用到的密钥算法和加密后的密文,很容易得到加密前的明文:对于非对称密码算法或者签名算法,根据密钥和要加密的明文,很容易获得计算出签名值,从而伪造签名. 2 风险案例 密钥硬

安卓开发_浅谈ListView(自定义适配器)

ListView作为一个实际开发中使用率非常高的视图,一般的系统自带的适配器都无法满足开发中的需求,这时候就需要开发人员来自定义适配器使得ListView能够有一个不错的显示效果 有这样一个Demo ,实现图片文字混合列表 1 package com.example.work; 2 3 import java.util.ArrayList; 4 import java.util.HashMap; 5 import java.util.List; 6 7 8 import android.R.in

浅谈python字符串存储形式

http://blog.csdn.net/zhonghuan1992 钟桓 2014年8月31日 浅谈python字符串存储形式 记录一下自己今的天发现疑问并且给出自己现有知识有的回答.长话短说,用过python的人对于 == 和 is 应该不陌生,但是这里我还是介绍一下. ==是用来判断两个东西是否相等,比如: a = 10: b = 10: print(a == b): 输出是true: 再看一个例子: a = [1,2,3]; b = [1,2,3]; c = [1,2,4]; print