内置数据类型

数据名称 例子
数字: Bool,Complex,Float,Integer True/False; z=a+bj; 1.23; 123
字符串: String '123456'
元组: Tuple (123456)
集合: Set
字典: Dict {1:'123456'}
文件:File
数组:Array
字节数组:Bytearray
graph TD;
存储方式划分-->可变对象;
存储方式划分-->不可变对象;
可变对象-->字典;
可变对象-->列表;
可变对象-->可变集合;
不可变对象-->数字;
不可变对象-->字符串;
不可变对象-->元组;
不可变对象-->不可变集合;
graph TD;
操作划分-->数字;
操作划分-->序列;
操作划分-->映射;
数字-->整数;
数字-->浮点数;
数字-->二进制数;
数字-->分数;
数字-->...;
序列-->字符串;
序列-->列表;
序列-->元组;
映射-->字典;

数字数据

常用内建函数 例子
abs(x):取得传递的值的绝对值 abs(-2) = 2
pow(x,y):进行平方计算 pow(2,2) = 4
max(x[,x1,x2]):求多个传递的值的最大值 max(1,22,5,3) = 22
min(x[,x1,x2]):求多个传递的值的最小值 min(1,2,3,4,6) = 1
sum([x1,x2[,x3],y]):计算传递的多个值的和 sum([1,2,3],2) = 8 ; sum([1,2,3]) = 6
常用math模块 例子
math.sqrt():进行开方运算 math.sqrt(4) = 2
math.pi:数字π 3.1415926...
math.sin():得到数据参数内的正弦函数 math.sin(1) = 0.8414709848078965

Bool函数:

在python2中是内建变量,而在python中增加了保留字之后,但True = 1 ,False = 0保留下来,所以判断真或假,False有三种情况一种是值为空,数字为0,等于None

None表示空值,它是一个特殊Python对象, None的类型是NoneType.None在Python解释器启动时自动创建, 解释器退出时销毁.

所以一个解释器进程中只有一个None存在

所以 输入: None is None and None == None; 输出: True

​ 输入: False == None; 输出: False

  • None不支持任何运算也没有任何内建方法

  • None和任何其他的数据类型比较永远返回False

  • None有自己的数据类型NoneType,不能创建其他NoneType对象(它只有一个值None)

  • None与0,空列表,空字符串不一样

import sys
a = sys.getsizeof(None)
b = sys.getsizeof(False)
c = sys.getsizeof(0)
d = sys.getsizeof(1)
print(a,b,c,d) # 16 24 24 28
# int为长整型,sys.getsizeof(0)数组元素为0.此时占用24字节(PyObject_VAR_HEAD的大小),sys.getsizeof(1)需使用一个元素所以为28 import operator as op
op.eq(0,False)
op.eq('',False)
op.eq(None,False) # True
# False
# False

内置数据运算

操作 操作符
算术运算 **+, -, *, /, //, %, ****
逻辑运算 and, or, not
比较运算 ==, !=, >, <, >=, <=,
位运算 in, not in
成员运算 is, is not
赋值运算
操作符 例子(s=1) 结果
= s = 4 4
+= s += 4 5
-= s -= 4 -3
*= s *= 4 4
/= s /= 4 0.25
%= s %= 4, 1
//= s //= 4 0
**= s **=4 1

类型转换

操作 例子 结果
int(x[,base]) int('3'); int('1101',2) 3; 13
float(x) float(3) 3.0
chr(x) chr(3) '\x03'
hex(x) hex(3) '0x3'
oct(x) oct(3) '0o3'

字符串数据

转义字符

转义字符 描述 转义字符 描述
\ 续航符 \ \ 反斜杠
\ ' 单引号 \ " 双引号
\a 响铃 \b 退格
\e 转义 \000
\n 执行 \v 纵向制表符
\t 横向制表符 \r 回车
\f 换页 \0yy 八进制数
\xyy 十六进制数 \other 其他字符以普通格式输出

字符串方法

内建函数
内建函数 例子(s = 'sos') 结果
find() s.find('s') 0
join() s.join('abc'); s.join('a') 'asosbsosc'; 'a'
len() len(s) 3
count() s.count('s') 2
split() s.split('o') ['s', 's']
replace() s.replace('o','a') 'sas'
dir() dir(s) ["__ add __",< br/>...]
字符串转换
转换 例子(today = datetime.date.today()) 结果
str() str(today) '2019-11-23'
repr() repr(today) 'datetime.date(2019, 11, 23)'

(str是转换成适合成人类阅读的,repr是转换成编译器使用的,列表和字典总是调用repr)

索引分片
索引,分片 例子 str='hello_world' 结果
str[i] str[2] 'l'
str[i:j:k] str[1:7:2] 'el_'

i为起始位置,j为终止位置,k为步长,第一位始终会被读取,截取长度为前闭后开,i默认值为0,j不限制则默认全部,空格也会占一位

格式化

%[(name)] [flags] [ width ] [.pression]typecode

格式化表达式 例子 demo={'test':'1.2242'} 结果 value%demo
name:指定参数名,用于字典参数格式化 value=' this is %(test)s' ' this is 1.2242'
flags:+/-表示左右对齐 value=' this is %(test)-10s ' 'this is 1.2242 '
width:表示字符串宽度 value=' this is %(test)10s ' 'this is 1.2242 '
precision:表示浮点数后的有效位数 value=' this is %(test).3f ' 'this is 1.224 '
typecode:确定转换的数字类型

{fieldname!confersionflag:formatspec}

格式化方法 例子demo={'s':12.222}
fieldname: 指定的数字或关键字,位置参数,关键字参数,下标/属性 value='this is {test} '.format(test = demo['s'])
confersionflag: r/a/s, repr,ascii.str value='this is {test!r} '.format(test = demo['s'])
formatspec:

[[fill] align [sign] [width] [.precision] [typecode]]

格式化方法参数'formatspec' 作用 例子
fill 填充 {test:0^10}: this is 0012.22200
align 填充对齐方式与fill一同出现</>/^,右/左/中 {test!r:0>10}: this is 000012.222
sign 数字符号表示正负,参数为字符串不可用,相同显示正确结果 {test:+}: this is +12.222
width 表示字符串宽度 {test:10}: this is 12.222
.precision 显示浮点数保留几位 {test:10.2f}: this is 12.22
typecode
typecode 描述
s 获取传入对象的 __ str __
r 获取传入对象的 __ repr __
c 整数,转换为Unicode值
o 整数,转换为八进制
x 整数,转换为十六进制
d 整数,转换为十进制
f 浮点数,十进制显示

列表数据

  • 可以存储任何对象
  • 支持所有序列操作
  • 支持原处修改,可变对象
  • 长度可变,异构,可任意嵌套

本质是对象的引用组成的数组

列表操作

操作 例子 s=[1,2,3,4,6] 结果
len(): 读取长度 len(s) 5
sum(): 求和 sum(s) 16
max()/min(): 最大最小值 min(s) 1
append(): 追加元素 s.append(7) [1, 2, 3, 4, 6, 7]
extend(): 追加元素(在原列表上追加新列表) s.extend([1,2,3]) [1, 2, 3, 4, 6, 7, 1, 2, 3]
insert(x,y): 插入元素(在x位之后插入y元素) s.insert(4,5) [1, 2, 3, 4, 5, 6, 7]
count(): 元素统计,返回列表中出现的次数 s.count(4) 1
index(): 返回元素的索引值 s.index(6) 5
pop(): 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 s.pop(-2) 6
remove(): 移除列表中某个值的第一个匹配项 s.remove(2) [1, 3, 4, 5, 7]
del(): 删除一个或多个元素(根据索引删除) del s[1] [1, 4, 5, 7]
sort(cmp=None,key=None,reverse=False): 用于对原列表进行排序(reverse默认false为升序) s.sort(reverse=True) [7, 5, 4, 1]

列表推导式

结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句

t = [x for x in range(1,51)]
[1,2,3...,49,50] import random
s = [random.randint(1,100) for i in range(10)]
[25, 83, 28, 68, 28, 84, 16, 45, 87, 73]

元组数据

  • 不可变序列(不可在原处修改)

    • 内容不可变
    • 数据之间的相对位置不可变
  • 任意对象的有序集合
  • 固定长度,异构,任意嵌套
  • 支持所有的序列操作,索引,切片

字典数据

  • 通过'key'来访问数据
  • 任意对象的无序集合
  • 可变长,异构,任意嵌套
  • 可变对象,任意修改

本质是对象引用的散列表

  • 序列操作对字典无效
  • 对不存在的索引赋值会增加新项
  • 'key'必须可被哈希化,数字,字符串
  • 字典无序存储
  • 通过哈希算法存储'key'查找速度快
  • 查询速度不会因元素增多而变慢
  • 额外储存'key'值,空间换取时间

Python基础『一』的更多相关文章

  1. Python基础『二』

    目录 语句,表达式 赋值语句 打印语句 分支语句 循环语句 函数 函数的作用 函数的三要素 函数定义 DEF语句 RETURN语句 函数调用 作用域 闭包 递归函数 匿名函数 迭代 语句,表达式 赋值 ...

  2. 『Python基础-12』各种推导式(列表推导式、字典推导式、集合推导式)

    # 『Python基础-12』各种推导式(列表推导式.字典推导式.集合推导式) 推导式comprehensions(又称解析式),是Python的一种独有特性.推导式是可以从一个数据序列构建另一个新的 ...

  3. 『Python基础-11』集合 (set)

    # 『Python基础-11』集合 (set) 目录: 集合的基本知识 集合的创建 访问集合里的值 向集合set增加元素 移除集合中的元素 集合set的运算 1. 集合的基本知识 集合(set)是一个 ...

  4. 『Python基础-10』字典

    # 『Python基础-10』字典 目录: 1.字典基本概念 2.字典键(key)的特性 3.字典的创建 4-7.字典的增删改查 8.遍历字典 1. 字典的基本概念 字典一种key - value 的 ...

  5. 『Python基础-9』元祖 (tuple)

    『Python基础-9』元祖 (tuple) 目录: 元祖的基本概念 创建元祖 将列表转化为元组 查询元组 更新元组 删除元组 1. 元祖的基本概念 元祖可以理解为,不可变的列表 元祖使用小括号括起所 ...

  6. 『Python基础-8』列表

    『Python基础-8』列表 1. 列表的基本概念 列表让你能够在一个地方存储成组的信息,其中可以只包含几个 元素,也可以包含数百万个元素. 列表由一系列按特定顺序排列的元素组成.你可以创建包含字母表 ...

  7. 『Python基础-7』for循环 & while循环

    『Python基础-7』for循环 & while循环 目录: 循环语句 for循环 while循环 循环的控制语句: break,continue,pass for...else 和 whi ...

  8. 『Python基础-6』if语句, if-else语句

    # 『Python基础-6』if语句, if-else语句 目录: 条件测试 if语句 if-else语句 1. 条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为 ...

  9. 『Python基础-5』数字,运算,转换

    『Python基础-5』数字,运算,转换 目录 基本的数字类型 二进制,八进制,十六进制 数字类型间的转换 数字运算 1. 数字类型 Python 数字数据类型用于存储数学上的值,比如整数.浮点数.复 ...

随机推荐

  1. Python3操作YAML文件

    数据及配置文件之争 数据及文件通常有三种类型: 配置文件型:如ini,conf,properties文件,适合存储简单变量和配置项,最多支持两层,不适合存储多层嵌套数据 表格矩阵型:如csv,exce ...

  2. call()与构造函数的运用

    一.简介 call()和apply()方法是所有函数体的固有属性,可以在指定作用域下调用函数.这里面有两层意思:1.可以在另外的作用域下调用函数:2.当函数体是是构造函数时,call()方法能达到类之 ...

  3. Linux设备驱动程序 之 per-cpu变量

    数组形式 支持SMP的现代操作系统使用每个cpu上的数据,对于给定的处理器其数据是唯一的:一般来说,每个cpu的数据存放在一个数组中,数组总的每一项对应着系统上的一个存在的处理器:按当前处理器号确定这 ...

  4. nltk data 离线安装

    运行程序时发现如下错误: 在命令行下载速度太慢,因此需要离线安装: 按照:http://www.nltk.org/data.html 中manual installation的方法, 将包下载好后解压 ...

  5. Eclipse的视窗

    PackageExplorer 显示项目结构,包,类,及资源 Outline 显示类的结构,方便查找,识别,修改 Console 程序运行的结果在该窗口显示 Hierarchy 显示Java继承层次结 ...

  6. Win7 双系统安装Centos7,并由windows引导程序引导

    1. 在windows磁盘管理中,压缩卷,腾出40G,需保证一个磁盘设备最多只有3个主分区2. 网上下载centos7的dvd.iso3. 使用UltraISO刻录到U盘4. 重启系统F12使用usb ...

  7. 21 Flutter仿京东商城项目 商品详情 请求接口渲染数据 商品属性数据渲染

    加群452892873 下载对应21可文件,运行方法,建好项目,直接替换lib目录,在往pubspec.yaml添加上一下扩展.   cupertino_icons: ^0.1.2   flutter ...

  8. 阶段5 3.微服务项目【学成在线】_day05 消息中间件RabbitMQ_4.RabbitMQ研究-安装RabbitMQ

    RabbitMQ由Erlang语言开发,Erlang语言用于并发及分布式系统的开发,在电信领域应用广泛,OTP(Open Telecom Platform)作为Erlang语言的一部分,包含了很多基于 ...

  9. 目标检测-Cascade-RCNN

    转载:https://zhuanlan.zhihu.com/p/36095768 Cascade R-CNN: Delving into High Quality Object Detection 论 ...

  10. Apache设置静态文件的失效时间

    步骤1:启用expires模块 [root@zlinux logs]# vim httpd.conf LoadModule expires_module modules/mod_expires.so ...