Python基础笔记2
@time 2019/12/17 12:04
一、列表
1、增加数据:append、insert方法
names = ["兰陵王", "孙悟空", "小乔", "李元芳", "上官婉儿", "王昭君"]
name = "后羿"
names.append(name) # 在列表后追加数据
names.append("后羿") # 两种写法都可以
print(names)
names.insert(2, "大乔") # 在列表中指定下标位置前插入数据
print(names)
2、删除数据
del names[0] # 删除下标为0的数据
print(names)
names.pop() # 不带参数默认删除最后一个数据
print(names)
names.pop(1) # 删除下标为1的数据
print(names)
names.remove("王昭君")
###### 3、修改数据
names[2] = "高渐离" # 直接重新赋值
names.reverse() # 把列表调转顺序
print(names)
4、查询数据,数据切片
index = names.index("孙悟空") # 查询某一个数据的下标
print(index)
print(names[2]) # 打印指定下标数据
print(names[:2]) # 打印前两个即下标0、1
print(names[2:]) # 打印下标2及以后的
print(names[1:3]) # 打印1、2两个下标,规则是左闭右开,即顾头不顾尾
print(names[-1]) # 打印最后一个
print(names[-2:]) # 打印最后两个
print(names[0:-1:2]) # 0和-1可以省略 步长切片
print(names[::2])
nu = names.count("后羿") # 统计数据后羿的个数
print(nu)
print(names)
names.sort() # 排序,以中文开头的貌似不能排序
names2 = ["孙尚香", "达摩"]
names.extend(names2) # 把names2加到names后边
5、深浅copy
names3 = ["兰陵王", "孙悟空", ["小乔", "李元芳"], "上官婉儿", "王昭君"]
names4 = names3.copy() # 把names3拷贝一份,但是列表中还有一个小列表,如果修改了小列表元素,names3和names4中小列表元素都会变化
# 小列表中copy的是地址值
names3[2][0] = "大乔"
print(names3)
print(names4)
二、元组
定义:元组跟列表类似,也是存一组数据,但是元组一旦创建不能修改,只能读取,用小括号表示
names = ("程咬金", "后羿")
names.count("程咬金")
print(names.index("后羿"))
print(names[0])
三、字典
定义:字典是另一种可变容器模型,且可存储任意类型对象。
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
dict = {"李白": "20", "程咬金": "40", }
# 1、增加数据
dict["孙尚香"] = "18"
print(dict)
# 2、删除数据
# del dict["孙尚香"] # 两种方式都可以
# dict.pop("李白")
print(dict)
# 3、修改数据
dict["孙尚香"] = "20"
# 4、查询数据
print(dict.get("程咬金")) # 有数据回返回指,没有会反馈none
print(dict["程咬金"]) # 没有数据会报错,建议用第一种方法
print("程咬金" in dict) # 判断字典中是否包含数据,有则返回true没有反馈false
# 5、其他常用方法
print(dict.values()) # 打印所有值
print(dict.keys()) # 打印所有key
dict.setdefault("后羿", "60") # 该方法是先到字典中找后羿的值,如果有就返回,没有就新增,默认值是60
print(dict)
dict2 = {"程咬金": "10", "牛魔王": "80"}
dict.update(dict2) # 更新dict,把dict2合并到dict,有相同key就换成新的,没有相同的就添加一个
print(dict)
print(dict.items()) # 把字典转换成列表
# 字典的遍历
for i in dict:
print(i, dict[i])
# 或者
for k, v in dict.items():
print(k, v)
# 总结:第一种方式处理更加高效,因为第二种方法要把字典转成列表,转换过程中如果数据量比较大会比较耗费时间,建议用第一种
四、集合
集合定义:是一个无序的、不重复的数据组合,主要作用如下
- 去重,把列表变成集合,就自动去重了
- 关系测试,测试两组数据之间的交集、并集、差集等关系
list1 = [1, 3, 4, 6, 3, 6]
gathering = set(list1) # 转为集合,自动去重
print(gathering)
# 集合交集
gathering2 = set([2, 4, 6, 3])
print(gathering.intersection(gathering2))
# 集合并集(也是去重的)
print(gathering.union(gathering2))
# 集合差集,gathering中有的,gathering2中没有的
print(gathering.difference(gathering2))
# 子集
gathering.issubset(gathering2)
# 增加
gathering.add("888") # 添加一个
gathering.update("22", "33") # 添加多个
# 删除
gathering.pop()
gathering.remove("00") # 删除指定的元素,没有则报错
gathering.discard("00") # 删除指定元素,没有不会报错
五、字符串的操作
str1 = " when nothing \t seems to \nhelp "
print(str1.count('e')) # 统计字符串中e的个数
print(str1.capitalize()) # 将字符串第一个字母大写
print(str1.center(30, "-")) # 打印30个字符,把字符串放中间,不够的用‘-’补充
print(str1.encode()) # 把字符串编码
print(str.endswith(str1, "help")) # 判断字符串是否是以'help'结尾,为真则反回true
print("when {name} is {die}".format(name='lilei', die=11)) # 格式化字符串
print(str1.find('to')) # 查找'to'在字符串中的内存位置
print(str1.isdigit()) # 判断字符串是否是数字
print(str1.islower) # 判断字符串是否全是小写字母
print(str1.isupper())
print("-".join(str1)) # 将序列中的元素以指定的字符连接生成一个新的字符串
str2 = "qewrfdgghh"
str3 = '1234567890'
table = str.maketrans(str2, str3) # 创建字符映射转换表
print(str1.translate(table))
print(str1.replace('to', 'ot')) # 字符串的替换
print(str1.split('t')) # 字符串的切片,‘t’作为分隔符
print(str1.strip()) # 用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列,注意:该方法只能删除开头或是结尾的字符,不能 删除中间部分的字符。
str1.translate(table) # table -- 字符映射转换表表,是通过 maketrans() 方法转换而来的
六、文件操作
"""
文件读写的几种模式:
1、w是只写不能读
f = open("test.txt", "w")
f.write("123456")
2、r是只读模式,不能写
f = open("test.txt", "r")
print(f.read())
3、a 是追加写入模式
f = open("test.txt", "a")
f.write("\nwrite") # 加\n是要写入内容换行
4、a+ 追加读写
5、w+ 写读
6、r+ 读写
7、rb 二进制读
8、wb 二进制写
总结:
1、完整的的写法
f = open("文件名", "打开方式", encoding="编码,不写默认是utf-8") # f是作为一个对象,后续调用方法来进行使用
2、支持写的模式都只能在文件末尾写入,不可以在文件中插入写入
"""
# f = open("test.txt", "r", encoding="utf-8")
# 1、print(f.read()) # read()方法是读所有
# 2、print(f.readline()) # 一行行读,写一次只打印一行
'''
for i in range(5):
print(f.readline()) #可以用循环的方式来取到前五行
'''
# 3、f.readlines() 是一个列表,可以用循环方式取出每一行
'''
# 第一种
for index, line in enumerate(f.readlines()):
print(index, line.strip()) #strip是去除两遍空行
# 第二种,这种效率高,建议用这种
for line in f:
print(line)
'''
# 4、f.tell() 返回一个数字,当前读到什么位置了,是以字符来计数的
'''
print(f.tell()) # 在文件开头,返回的是0
print(f.readline())
print(f.tell()) # 读取了一行的位置
'''
# 5、f.seek(数字) 回到数字的位置
'''
print(f.readline())
f.seek(0) # 回到文件开头
'''
# 6、f.encoding 返回使用的编码
# 7、f.name() 返回文件名
# 8、f.flush()强制刷新,把缓存的内容写到硬盘,可见"进度条.py"
# 9、f.truncate(数字) 从开头截断数字的长度
'''
需求:把test.txt中‘不要小看我’,改为‘就要小看你’,并写入到test1.txt中
'''
f1 = open("test.txt", 'r', encoding='utf-8')
f2 = open('test1.txt', 'w', encoding='utf-8')
for line in f1:
if "不要小看我" in line:
line = line.replace('不要小看我 别问我有几两重', '就要小看你')
f2.write(line)
f1.close()
f2.close()
# 或者用with语句,在执行完代码之后会自动关闭文件
with open("test.txt", 'r', encoding='utf-8') as f3,\
open("test.txt", 'r', encoding='utf-8') as f4:
for line in f3:
if "不要小看我" in line:
line = line.replace('不要小看我 别问我有几两重', '就要小看你')
f4.write(line)
Python基础笔记2的更多相关文章
- Python基础笔记系列十一:标准输入输出、文件读写和指针等操作
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...
- Python基础笔记系列一:基本工具与表达式
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...
- 我的Python基础笔记
Python是从刚开始参加工作,就有听各方面的测试大牛推崇,但是刚开始做测试时还是把基础的测试方法放在第一位来学习的,直到半年多以后才开始接触Python. 我的Python基础主要是以廖雪峰老师的在 ...
- Python基础笔记1
这篇笔记来自廖雪峰的Python教程. 一.Python基础 Python使用缩进来组织代码块,务必遵守约定俗成的习惯,坚持使用4个空格的缩进. 在文本编辑器中,需要设置把Tab自动转换为4个空格,确 ...
- python基础笔记-0
python中数据结构,主要有列表.元组.字典.集合. python中最基本数据结构是序列(sequence).序列中每个元素被分配一个序号——即元素位置,也成为索引.第一个索引是0,第二个是1,以此 ...
- Python基础笔记系列十四:python无缝调用c程序
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...
- Python基础笔记系列十三:socket网络编程
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...
- Python基础笔记系列十二:requests模块的简单应用
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! httpbin httpbin这个网站能测试 HTTP 请求和响应的各种信 ...
- Python基础笔记系列十:模块
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Py ...
- Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...
随机推荐
- 流处理引擎(SPE)中的的分布式一致性语义之Exactly-Once和Effectively-Onece区别
-- At most Onece:最多一次,如果算子处理事件失败,事件将不再尝试该事件. -- At Least Onece:至少一次,如果算子处理事件失败,算子会再次尝试该处理事件,直到有一次成功. ...
- 初窥ECharts
近来趁着空闲时间了解了一下 ECharts.也顺带记录一番. 首先要从下载ECharts库,这个从官网可以直接下载. 引入ECharts.JS <head> <meta charse ...
- SAP 事务代码 ME31K 报错 - 不含来自带工厂分配的供应商的物料的采购没有被定义 -
SAP 事务代码 ME31K 报错 - 不含来自带工厂分配的供应商的物料的采购没有被定义 - 近日收到业务团队的报错说,试图创建合同,报错如下: 不含来自带工厂分配的供应商的物料的采购没有被定义 这个 ...
- JS简易计算器的实现,以及代码的优化
用JS实现简易计算器 首先创建结构和样式 <!DOCTYPE html> <html lang="en"> <head> <meta ch ...
- elsearch搜索引擎 + painless脚本语言入门
最近项目用到了elsearch,ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎. 自从版本6.0之后,其默认脚本语言变为 painless . ...
- 【架构篇】ASP.NET Core 基于 Consul 动态配置热更新
背景 通常,.Net 应用程序中的配置存储在配置文件中,例如 App.config.Web.config 或 appsettings.json.从 ASP.Net Core 开始,出现了一个新的可扩展 ...
- EasyUI笔记(五)表单
本系列只列出一些常用的属性.事件或方法,具体完整知识请查看API文档 Form(表单) 创建一个简单的HTML表单.构建一个包含id.action和method值的表单元素. <form id= ...
- java控制台模式控制光标及字符颜色
System.out.println("\033[47;31mhello world\033[5m"); 47是字背景颜色, 31是字体的颜色, hello world是字符串. ...
- 安装canvas
本方法仅适用用于window系统 安装canvas需要当前工作环境拥有python环境,且只能适用python2.7版本,v3.x.x版本会造成系统报错 1.在管理员权限下 使用choco insta ...
- C# sqlite 事务提交多个语句,提升插入速度
private SQLiteConnection connection; private SQLiteCommand command; private SQLiteTransaction transa ...