Python第一周 学习笔记_待补充(3)

Python内置数据结构


一、数值型


1.数据类型分类:

int:整数

python3的int就是长整型,且没有大小限制,受限于内存区域的大小
int(x) 返回一个整数

float:浮点数

有整数部分和小数部分组成。支持十进制和科学计数法表示。只有双精度型。
float(x) 返回一个浮点数

complex:复数

有实数和虚数部分组成,实数和虚数部分都是浮点数,3+4.2J
complex(x)、complex(x,y) 返回一个复数

bool:布尔

int的子类,仅有2个实例True、False对应1和0,可以和整数直接运算
bool(x) 返回布尔值,bool值判断逻辑一如前文所述,如:
bool(‘‘) --> False
bool(0) --> False

2.数字处理函数:

(1)int()、floor()、ceil()、round()、// 区别:

int():

builtin内置函数
官方文档描述:
class int(x=0)
class int(x, base=10)
Return an integer object constructed from a number or string x, or return 0 if no arguments are given. If x is a number, return x.int(). For floating point numbers, this truncates towards zero.

If x is not a number or if base is given, then x must be a string, bytes, or bytearray instance representing an integer literal in radix base. Optionally, the literal can be preceded by + or - (with no space in between) and surrounded by whitespace. A base-n literal consists of the digits 0 to n-1, with a to z (or A to Z) having values 10 to 35. The default base is 10. The allowed values are 0 and 2–36. Base-2, -8, and -16 literals can be optionally prefixed with 0b/0B, 0o/0O, or 0x/0X, as with integer literals in code. Base 0 means to interpret exactly as a code literal, so that the actual base is 2, 8, 10, or 16, and so that int(‘010‘, 0) is not legal, while int(‘010‘) is, as well as int(‘010‘, 8).

对于浮点数,截断小数至零
即取整数部分

floor():

math模板
向下取整

ceil():

math模板
向上取整

round():

四舍六入五取偶

//:

整除并floor()
floored quotient of x and y

(2)数字处理函数_2

min()

min(iterable, [, key, default])
min(arg1, arg2,
args[, key])

max()

max(iterable, [, key, default])
max(arg1, arg2,
args[, key])

pow(x,y)

功能与x**y相同

math.sqrt()

开方

bin()

返回值为字符串

oct()

返回值为字符串

hex()

返回值为字符串

math.pi
math.e

(3)类型判断

type(obj)

返回类型而不是字符串

isinstance(obj, class_or_tuple)

返回布尔值

二、序列对象


数据类型分类:

1.str:字符串

2.list:列表

列表内元素有顺序,可以使用索引
线性的数据结构
列表是可变的

初始化
例:

lst=list()
lst=[]
lst=[1,2,‘a‘,[‘i‘,‘j‘]]
lst=[range(5)]

不能一开始就定义大小,对比java

列表list、链表、queue、stack的差异

list线性存储,查询效率高O(n),插入、删除效率低O(n)
链表散落在内存中,查询效率低O(n),插入、删除效率高O(1)
queue先进先出FIFO
栈后进先出LIFO

列表索引访问

正索引:从左至右,从0开始,为列表中每一个元素编号
负索引:从右至左,从-1开始

列表查询

index(value,[start,[stop]])
返回第一个匹配项的索引
只能从左向右遍历
匹配不到返回ValueError异常
时间复杂度O(n),因需遍历列表

count(value)

返回列表中匹配value的次数
时间复杂度O(n),因需遍历列表

len()

时间复杂度O(1)
计数器在每次向list中插入、删除时执行计数
因此调用len()时只打出计数器数值,不执行遍历操作

列表增加、插入元素
append(object) -> None

在尾部追加,返回None
修改原有对象,不生成新对象
时间复杂度O(1)

insert(index, object) -> None

在指定索引插入元素,返回None
修改原有对象,不生成新对象
时间复杂度O(n),因为插入后可能会发生后续元素在内存中进行依次后移操作

若index超界不报错:
超越上界,尾部追加
超越下界,头部追加

extend(iteratable) -> None

将可迭代对象的元素追加进来,返回None
修改原有对象,不生成新对象

+ -> list

连接操作,将两个列表连接起来
产生新的对象,原列表不变
本质上调用的是add()方法

* -> list

重复操作,将本列表元素重复n次,返回新的列表

注意:
x=[[1,2,3]]
y=x*3
y[0][1]=200
y

结果为:
[[1, 200, 3], [1, 200, 3], [1, 200, 3]]

y = [1]*5
y[0] = 6
y[1] = 7
print(y)

结果为:
[6, 7, 1, 1, 1]

可暂时理解为:
*复制,对于复杂对象,复制的是引用,并非数据,复制的三个元素实际指向的是同一个内存地址
简单对象不影响

列表删除元素
remove(value) -> None

从左至右查找第一个匹配value的值,移除该元素,返回None
修改原有对象,不生成新对象
时间复杂度O(n),因为插入后可能会发生后续元素在内存中进行依次后移操作(列表在内存中连续顺序存储)

pop([index]) -> item

不指定索引index,就从列表尾部弹出一个元素
指定索引index,就从索引处弹出一个元素,索引超界抛出IndexError错误
时间复杂度:
不指定索引为O(1)
指定索引为O(n),因为插入后可能会发生后续元素在内存中进行依次前移操作(列表在内存中连续顺序存储)

clear() -> None

清除列表所有元素,剩下一个空列表

列表其它操作
reverse() -> None

将列表元素反转,返回None
修改原有对象,不生成新对象

sort(key=None, reverse=False) -> None

对列表元素进行排序,默认升序
修改原有对象,不生成新对象
reverse为True,反转,降序
key一个函数,指定key如何排序

in

3.tuple:元组

三、键值对


数据类型分类:

set:集合

dict:字典

原文地址:http://blog.51cto.com/11281400/2090636

时间: 2024-10-02 08:45:13

Python第一周 学习笔记_待补充(3)的相关文章

Python 第一周学习笔记

1.Python 解释器 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Tian Ba Python3 字符集默认支持中文 2.变量定义的规则: .变量名只能是字母.数字或下划线的任意组合 .变量名的第一个字符不能是数字 3.字符串 所有带引号的都是字符串,包含(单引号,双引号,三引号) 4.注释 当行注释:#被注释内容 多行注释:"""被注释内容"""  (可以是单引号或者是双引号)

Python第一周 学习笔记(2)

习题解析 0.打印10以内偶数:位运算 for i in range(10): if not i & 0x01: print(i) 1.给定一个不超过5位的正整数,判断其有几位(使用input函数) 方法一:正常逻辑处理 a = int(input("Please enter a numer: ")) if a < 0: print('Error') if a < 10: print(1) elif a < 100: print(2) elif a <

机电传动控制课程第一周学习笔记

机电传动课程第一周学习笔记 本周的学习内容主要是第一章绪论和第二章机电传动系统的动力学基础,结合课程学习和预习复习回顾内容如下: 1.绪论:学习了机电传动控制目的与任务.发展历程和我们该如何学习这门课程. 2.机电传动系统的动力学基础: a.运动方程式:对于单一拖动系统或者多拖动系统,在分析时一般都折算到一根轴(电动机轴)上,折算的基本原则是,折算前的多轴系统同折算后的单轴系统在能量关系上或功率关系上保持不变.而对于单 走拖动系统的运动方程式如下. b.判断TM/TL的符号:主要概括为三条:规定

linux入门-第一周学习笔记

Linux新手入门-第一周学习笔记 一.安装系统注意的问题 1.磁盘分区: 以分配给系统200G内存大小为例: (1)给 /boot 200M大小即可,由于/boot 仅存放内核相关启动文件.不需要给太大的分区. (2)给 / 50G大小,根用户下要存放很多的文件. (3)给/testdir 50G大小,这是我们做实验用到的文件. (4)给swap 4G大小,由于swap是交换分区,其大小推荐是内存的1.5倍~2.0倍 注意:CentOS6.8的文件系统为ext4,而CentOS7.2的文件系统

Linux第一周学习笔记(2)

Linux第一周学习笔记(2) 1.3认识Linux (1).什么是Linux Linux是一个操作系统,比如说微软的winodws.苹果电脑的masOS.早于Linux发行的unix: 我们平时使用的PPT.浏览网站.玩游戏这些都是需要操作系统的层面上来完成的: 也包括了我们现在手机使用的系统有三个版本一个是Andriod和苹果的Los以及微软的windows,Los其实也就是Unix系统而Andriod是Linux系统: 我们生活当中常用的一些网站.游戏.QQ.微信这些应用都是在Linux操

软件测试第一周学习笔记

软件测试学习随笔   WCX第一周软件测试的学习笔记 入门时从软件测试的方法入手,总结如下 软件测试的方法总结: 测试名称 测试内容 Black box黑盒测试 把软件系统当作一个“黑箱”,无法了解或使用系统的内部结构及知识.从软件的行为,而不是内部结构出发来设计测试. White box白盒测试 设计者可以看到软件系统的内部结构,并且使用软件的内部知识来指导测试数据及方法的选择. Gray box.  灰盒测试 介于黑盒和白盒之间   是手动还是自动又可以分类 测试名称 测试内容 Manual

马哥教育面授班20-2第一周学习笔记1

第一周的学习主要是理论知识,了解掌握后为后面的知识打下一个良好的基础. 计算机基础计算机系统硬件主机核心设备:中央处理器CPU(运算器ALU.控制器CU):存储器:ROM.RAM主机其他设备:存储(硬盘.软盘.光盘.usb):输入输出设备(键盘.鼠标.打印机.扫描仪.显示器):其他:调制解调器.光猫软件系统软件:操作系统.程序语言处理系统.数据库.驱动程序应用软件:通用软件(办公软件例如:OFFICE):专用软件(适用各个工作环境的软件) 计算机发展史计算机发展年代时间表:40-50年代   第

机电传动第一周学习笔记

时光如白驹过隙,新学期的第一周就结束了,第一周开的课就有机电传动控制,按老师的要求一步步完成学习任务.首先复习了老师上课所学的知识,许多知识点上课短时间内记得不是很清晰,自己课下温习一遍还是十分重要的.然后就是学习老师所给的PDF的前两节,这一看还是很慌的,因为有许多之前所学的知识,很多考完就忘却了,只好把工控的课本翻出来,对着把相关知识点都复习了一遍,看书的过程中有些问题还未弄懂,如稳定工作点的判定等.然后就是学习软件的使用了,这一项未能完成,本来已经装好了试用版也机会了,谁料突然电脑坏了,重

机电传动控制第一周学习笔记

这是对于第一周对这门课的学习的一个总结整理,首先来谈谈我对机电控制的一些看法吧.看了老师发下来的资料,现在的装备制造与自动化确实发展很快,但是同样存在很多需要解决,而且是亟待解决的问题.我们的机械制造已经不再是以前单纯的机械制造了,不再是仅仅只有单纯的机械,材料方面的知识内容的理解应用,而更多的加入了很多复杂的关联技术,各个学科的知识内容都交汇到一起来,机电控制就是其中之一,而且数字化信息化带来的交流竞争加剧引起制造产品生命周期越来越短,所以如何做好规划与控制对于现在和将来要成为工程师的人要求很