@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)
# 总结:第一种方式处理更加高效,因为第二种方法要把字典转成列表,转换过程中如果数据量比较大会比较耗费时间,建议用第一种

四、集合

集合定义:是一个无序的、不重复的数据组合,主要作用如下

  1. 去重,把列表变成集合,就自动去重了
  2. 关系测试,测试两组数据之间的交集、并集、差集等关系
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的更多相关文章

  1. Python基础笔记系列十一:标准输入输出、文件读写和指针等操作

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 标准输入输出一.输入 在sublime中这个时候需要安装SublimeRE ...

  2. Python基础笔记系列一:基本工具与表达式

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 工具基础(Windows系统下)传送门:Python基础笔记系列四:工具的 ...

  3. 我的Python基础笔记

    Python是从刚开始参加工作,就有听各方面的测试大牛推崇,但是刚开始做测试时还是把基础的测试方法放在第一位来学习的,直到半年多以后才开始接触Python. 我的Python基础主要是以廖雪峰老师的在 ...

  4. Python基础笔记1

    这篇笔记来自廖雪峰的Python教程. 一.Python基础 Python使用缩进来组织代码块,务必遵守约定俗成的习惯,坚持使用4个空格的缩进. 在文本编辑器中,需要设置把Tab自动转换为4个空格,确 ...

  5. python基础笔记-0

    python中数据结构,主要有列表.元组.字典.集合. python中最基本数据结构是序列(sequence).序列中每个元素被分配一个序号——即元素位置,也成为索引.第一个索引是0,第二个是1,以此 ...

  6. Python基础笔记系列十四:python无缝调用c程序

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! python语言可以对c程序代码进行调用,以弥补python语言低性能的缺 ...

  7. Python基础笔记系列十三:socket网络编程

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!!使用python编写一个简易的服务端程序和客户端程序,启动服务端和客户端(监 ...

  8. Python基础笔记系列十二:requests模块的简单应用

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! httpbin httpbin这个网站能测试 HTTP 请求和响应的各种信 ...

  9. Python基础笔记系列十:模块

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 模块 #1.类比于java中的jar包,模块能让你能够有逻辑地组织你的Py ...

  10. Python基础笔记系列九:变量、自定义函数以及局部变量和全局变量

    本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 变量在前面的系列中也许就可以发现,python中的变量和C中的变量有些许不 ...

随机推荐

  1. 1. c++实现最最最原始人的数字时钟

    网课c++第一次作业,学到了iomanip库文件里的setw(),setfill()等函数,自己完成作业时搜着学到了Windows.h库文件里的sleep(),system("cls&quo ...

  2. VSTO开发指南(VB2013版) 第四章 Excel编程

    实例1:处理NewWorkbook和WorkSheet事件的控制台程序 书本第70页 程序清单 4.1 处理NewWorkbook和WorkSheet事件的控制台程序 Imports Excel = ...

  3. net start MySQL57 MySQL57 服务正在启动 . MySQL57 服务无法启动。

    造成这种情况的原因有很多,如果直接百度错误信息的话,不一定能很快解决问题,所以,出现这种情况,我们可以使用 mysqld --console 命令来查看报错信息,然后根据报错信息来百度,这样就很快定位 ...

  4. 简单配置让iterm2用得更爽

    同步自本人独立博客:https://liushiming.cn/2020/01/15/awesome-iterm2-config/ 概述 iterm2比mac原生的terminal好用很多,是mac下 ...

  5. jQuery---jquery.color.js和jquery.lazyload.js的使用

    jquery.color.js的使用 了解即可 <!--1. 引入jquery的js文件--> <script src="jquery-1.12.4.js"> ...

  6. 用R实现范式编程

    面向函数范式编程(Functional programming) 模拟简单的随机过程 模拟一个简单的随机过程:从N~(0,1)标准正态分布中产生100个随机值,反复5次得到一个list,再以每个lis ...

  7. 【笔记】机器学习 - 李宏毅 - 3 - Bias & Variance

    A more complex model does not always lead to better performance on testing data. Because error due t ...

  8. IDA PRO

    链接:https://pan.baidu.com/s/1LTXhXra5Honpn3L9rfSOgA 提取码:7bwb 工具下载地址: https://www.jb51.net/softjc/5799 ...

  9. PHP0008:PHP基础-数组

  10. [译]C# 7系列,Part 10: Span<T> and universal memory management Span<T>和统一内存管理

    原文:https://blogs.msdn.microsoft.com/mazhou/2018/03/25/c-7-series-part-10-spant-and-universal-memory- ...