python列表

对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展

与世无争的帅哥 提交于 2020-04-04 16:50:59
对<Effective Python: 编写高质量Python代码的59个有效方法>中知识点的总结和扩展 《Effective Python》一书结合Python的语言特性,对代码规范进行了详细总结,是一本非常不错的Python实操指南。但我在阅读的过程中发现有些地方仅仅是告知读者“怎么做”,但是具体“为什么”不是很深入。下面内容是我对这些知识点的总结和相应原理的扩展。 (如有不准确之处欢迎指正) Python版本问题,略。 关于PEP8:这是Python代码风格的一些规范,感兴趣的同学可以自行了解。 在Python3中,bytes和str是两种截然不同的类型: bytes是计算机原始的二进制格式,而str是包含Unicode字符的,开发者不能以+号之类的操作符直接对它们两个进行混合操作。 实际上,它们互相之间是编码(encode)与解码(decode)的关系。 >>> s = "哇哈" >>> b = bytes(s,encoding="utf-8") # encode >>> print(s) 哇哈 >>> print(b) b'\xe5\x93\x87\xe5\x93\x88' 可以看到,s是str类型,返回的依旧是人类能懂的文字,而b则返回的实际上是6个16进制,每一个代表一字节。 注意,在bytes函数中使用了encoding参数并且赋值"utf-8"。为什么呢

Python基础(六)

梦想的初衷 提交于 2020-04-04 15:20:16
今日主要内容 驻留机制 小数据池 代码块 深浅拷贝 集合 一、 驻留机制 (一)== 和 is == :判断两边的内容是否相同 a = -6 b = -6 print(a == b) # True is :判断两边的内存地址是否相同 a = -6 b = -6 print(a is b) # Fales (二)什么是驻留机制 python中为了节省内存定义的一套规则,部分数据在重复定义的时候指向同一个内存空间,也就是内存地址是相同的 在驻留机制范围内的代码块和小数据池,在定义变量的时候都将履行驻留机制 代码块的优先级高于小数据池 (三)什么是代码块 一个py文件、一个函数、一个模块、一个类、终端中的每一行代码都是一个代码块 (四)小数据池和代码块的驻留范围 小数据池 数字: -5 ~ 256 字符串: 只包含数字、字母、下划线的全部字符串 在python3.6解释器中字符串使用乘的时候总长度不能超过20(只包含数字、字母、下划线) 在python3.7解释器中字符串使用乘的时候总长度不能超过4096(只包含数字、字母、下划线) 布尔值 True False 代码块 数字: -5 ~ 正无穷 字符串: 全部字符串(包含数字、字母、下划线、特殊字符、中文等) 使用乘的时候总长度不能超过20(只包含数字、字母、下划线) 布尔值 True False (五)指定驻留 指定任意字符串

python 基础 02

夙愿已清 提交于 2020-04-04 10:39:44
1. 字符串操作 主要说说内建函数。 字符串类型,就像列表一样,可以进行切片,排序等等操作。 但是这里就专门说内建函数哦。 '''@Author: Fallen@Date: 2020-04-03 10:30:20@LastEditTime: 2020-04-03 15:33:44@LastEditors: Please set LastEditors@Description: 字符串内建函数@FilePath: \day02\字符串内建函数.py'''​l = "abcdif geheEdjfoaae ifXlji felkkNOFWIjsk"​#1.大小写相关# capitalize() title() istitle() upper() isupper() lower() islower()print(l.capitalize()) #第一个字母大写print(l.title()) # 每个单词首字母都大写print(l.upper()) # 全改成大写print(l.lower()) # 全改成小写print(l.isupper()) #判断是不是都是大写print(l.islower()) # 判断是不是都是小写​#2.查找替换相关# find() rfind() index() rindex() replace()a = l.find("a",0,len(l)-1)

《python可以这样学》第二章

点点圈 提交于 2020-04-03 23:28:50
Python序列 列表与列表推导式 列表创建与删除 创建列表对象 >>> a_list = list((3, 5, 7, 9, 11)) >>> a_list = [] #创建空列表 list()函数 将元组、range对象、字符串、字典、集合、或其他类型的可迭代对象类型的数据转换为列表 将元组转换为列表 >>> a_list = list((3, 5, 7, 9, 11)) >>> a_list [3, 5, 7, 9, 11] 将range对象转换为列表 >>> list(range(1, 10, 2)) [1, 3, 5, 7, 9] 将字符串转换为列表 >>> list('hello world') ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'] 将集合转换为列表 >>> list({3, 7, 5}) [3, 5, 7] 将字典的“键”转换为列表 >>> list({'a':3, 'b':9, 'c':78}) ['a', 'b', 'c'] 将字典的“键:值”对转换为列表 >>> list({'a':3, 'b':9, 'c':78}.items()) [('a', 3), ('b', 9), ('c', 78)] 正向索引和反向索引 >>> x = list(range(10)) #创建列表 >>>

Python基础数据类型考试题

被刻印的时光 ゝ 提交于 2020-04-03 18:41:28
Python基础数据类型考试题 # Python基础数据类型考试题 # 考试时间:两个半小时 满分100分(80分以上包含80分及格) # 一,基础题。 # 1, 简述变量命名规范(3分) # 1、变量由字母、数字、下划线任意组成 # 2、不能以数字开头 # 3、不能使用python关键字 # 4、变量要具有可描述性 # 5、变量不能是中文 # 5、官网推荐骆峰体和下划线,这里推荐下划线 # 2,字节和位的关系。(2分) # 1字节 = 8位 # 3,’太白’使用utf-8编码时,占的位数和字节数,是多少?使用gbk编码时,占的位数 # 和字节数,是多少。(2分) # 太白 utf-8 位数:48 字节:6 # gbk 位数:32 字节:4 # 4,默写字符串的十二个功能,并描述其作用。(12分) # 1、capitalize() 首字母大写 # 2、upper() 字符串全部大写 # 3、lower() 字符串全部小写 # 4、format() 格式化输出 # 5、strip() 去字符串左右空格,tab,换行符 # 6、replace() 字符串替换 # 7、lstrip() 去字符串左边空格,tab,换行符 # 8、rstrip() 去字符串右边边空格,tab,换行符 # 9、startswith() 检测字符串是否是相同的开头,结果是True,False # 10

Python内置函数大全

寵の児 提交于 2020-04-02 09:24:02
(注:本文部分内容摘自互联网,由于作者水平有限,不足之处,还望留言指正。) 官方链接: https://docs.python.org/3/library/functions.html?highlight=built#ascii 还是先讲我的故事,同事前几天去成都出了趟差,回到上海跟我说:成都好多美女啊,那啥啥啥都是大长腿。握草,听得我一愣一愣的,啥,还有这种事?想想我也在成电呆了四年,在我印象里:成都没几个女的啊。难道我去的是个假成都? 哎,成电多屌丝啊。 言归正传,进入正文。Python内置函数就是python标准库里(语言自身携带的)函数(公共函数)。(下面列举常用的内置函数) 1.abs() abs() 函数返回数字的绝对值。 a = 3 b = -5 print(abs(a)) #输出3 print(abs(b)) #输出5 2.all() all() 函数用于判断给定的可迭代参数 iterable 中的所有元素是否不为 0、''、False 或者 iterable 为空 ,如果是返回 True, 否则返回 False。(iterable为空也返回true) all(['a', 'b', 'c', 'd']) # 列表list,元素都不为空或0 all(['a', 'b', '', 'd']) # 列表list,存在一个为空的元素 all([0, 1,2, 3]) #

Python高级特性:迭代器和生成器

一个人想着一个人 提交于 2020-04-01 07:48:54
在Python中,很多对象都是可以通过for语句来直接遍历的,例如list、string、dict等等,这些对象都可以被称为可迭代对象。至于说哪些对象是可以被迭代访问的,就要了解一下迭代器相关的知识了。 迭代器 迭代器对象要求支持迭代器协议的对象,在Python中,支持迭代器协议就是实现对象的__iter__()和next()方法。其中__iter__()方法返回迭代器对象本身;next()方法返回容器的下一个元素,在结尾时引发StopIteration异常。 __iter__()和next()方法 这两个方法是迭代器最基本的方法,一个用来获得迭代器对象,一个用来获取容器中的下一个元素。 对于可迭代对象,可以使用内建函数iter()来获取它的迭代器对象: 例子中,通过iter()方法获得了list的迭代器对象,然后就可以通过next()方法来访问list中的元素了。当容器中没有可访问的元素后,next()方法将会抛出一个StopIteration异常终止迭代器。 其实,当我们使用for语句的时候,for语句就会自动的通过__iter__()方法来获得迭代器对象,并且通过next()方法来获取下一个元素。 自定义迭代器 了解了迭代器协议之后,就可以自定义迭代器了。 下面例子中实现了一个MyRange的类型,这个类型中实现了__iter__()方法

python之列表

ぃ、小莉子 提交于 2020-04-01 00:45:36
1. 什么是列表   定义: 能装对象的对象   在python中使用[]来描述列表, 内部元素用逗号隔开. 对数据类型没有要求   列表存在索引和切片. 和字符串是一样的. 2. 相关的增删改查操作(重点)   添加:   1. append() 追加   2. insert(位置, 元素) 插入指定元素到指定位置    lst = ["凡人修仙传", "诛仙", "神墓"] # 添加 append() 追加. 在后面添加 lst.append("看见") lst.append("追风筝的人") # # 插入 insert(位置, 元素), 效率相对比较低 lst.insert(1, "琴帝") 删除:   1. pop(index) 根据索引删除   2. remove(元素) 根据元素删除 # 删除 lst = ["斗破苍求", "手机", "爵迹", "满城尽带黄金甲", "三生三世十里桃花"] # # pop() 默认从后往前删 lst.pop() # pop(索引) 按照索引位置删除 lst.pop(1) # # remove(元素) 移除 lst.remove("满城尽带黄金甲") # 当元素不存在的时候会报错 # del lst[::2] # 用切片或者索引删除 不常用 lst.clear() # 清空. 修改:   索引修改   lst[索引] = 元素 # 修改

字符串、列表、元组、字典

微笑、不失礼 提交于 2020-03-31 02:54:18
字符串介绍 想一想: 当打来浏览器登录某些网站的时候,需要输入密码,浏览器把密码传送到服务器后,服务器会对密码进行验证,其验证过程是把之前保存的密码与本次传递过去的密码进行对比,如果相等,那么就认为密码正确,否则就认为不对;服务器既然想要存储这些密码可以用数据库(比如MySQL),当然为了简单起见,咱们可以先找个变量把密码存储起来即可;那么怎样存储带有字母的密码呢? 答: 字符串 <1>python中字符串的格式 如下定义的变量a,存储的是数字类型的值 a = 100 如下定义的变量b,存储的是字符串类型的值 b = "hello itcast.cn" 或者 b = 'hello itcast.cn' 小总结: 双引号或者单引号中的数据,就是字符串 字符串输出 demo name = 'xiaoming' position = '讲师' address = '北京市昌平区建材城西路金燕龙办公楼1层' print('--------------------------------------------------') print("姓名:%s"%name) print("职位:%s"%position) print("公司地址:%s"%address) print('--------------------------------------------------') 结果: -

python3 基础语法

99封情书 提交于 2020-03-30 13:01:03
# TODO注释 (pycharm) ## TODO(小明) 注释内容 # shebang符合指定linux下的执行路径   ##! /user/bin/python3 # 基本运算符 + - * / :加减乘除 // :整除 % :除余 ** :乘方 字符串*号拼接:“hello”*10 赋值运算 c=a+b c+=a c=c+a c-=a c=c-a c*=a c=c*a c/=a c=c/a c//=a c=c//a bool值true在计算过程中等于1 # 基本函数方法 input() 输入函数,输入后获取的数据类型都是str type() 查看数据类型 int() 转换数据为整数 float() 转换数据为浮点小数 # 格式化字符串输出 语法如下 name=“小明” print(“格式化字符串%s”%name) print(“格式化字符串”%(变量1,变量2,。。。)) # if判断语句 age = 18 if age>=18: print(“go”) #使用缩进控制if控制代码块 else: print(“back”) elif 继续条件判断 # 逻辑运算符 or 或者 and 并且 not 非 # 循环语句 i=0 while i<=10: i+=1 if i==2: continue # 跳出本次循环,继续其他循环 if i==6: break # 跳出所有循环