Python基础知识学习_Day3
一、字典用法
字典是一种key-value数据类型,通过key获取具体value的内容,字典的特性是无序、去重。
增删改查用法如下:
1.1基本增删改查操作
name = {"name":"alex","age":"","xx":{"ed":3000,"ye":2000}}
print(name["name"]) #打印name对应的value的内容
print(name.get("name")) #select
name["sex"] = "boy" # add
print(name)
del name["sex"] #del
print(name)
name.pop("name") #del
print(name)
name.clear() #清空字典
print(name)
name2 = name.copy() #浅copy,只修改第一层,第二层不变。
name2["sex"] = "girl"
name2["xx"]["ye"] = ""
print(name)
print(name2)
print(name.fromkeys("alex","")) #分别赋值
print(name.keys()) #打印所有key
1.2 字典循环用法
方法1.
name = {"name":"alex","age":"","xx":{"ed":3000,"ye":2000}}
for i in name: #这种for 以后常用
print(i,name[i]) #打印key value的值 方法2.
for k,v in name: #会先把dict转成list,数据里大时莫用
print(k,v)
1.3 三级菜单经典版
menu = {
'北京':{
'海淀':{
'五道口':{
'soho':{},
'网易':{},
'google':{}
},
'中关村':{
'爱奇艺':{},
'汽车之家':{},
'youku':{},
},
'上地':{
'百度':{},
},
},
'昌平':{
'沙河':{
'老男孩':{},
'北航':{},
},
'天通苑':{},
'回龙观':{},
},
'朝阳':{},
'东城':{},
},
'上海':{
'闵行':{
"人民广场":{
'炸鸡店':{}
}
},
'闸北':{
'火车战':{
'携程':{}
}
},
'浦东':{},
},
'山东':{},
}
current_level = menu #定义当前层
last_levels = [] #标记级别
while True:
for key in current_level:
print(key)
choice = input("pls input city:").strip()
if choice == 0:continue #输入为空,继续输入
if choice =='b': #退出判断
if len(last_levels) ==0: break #回到第一层,退出程序
current_level = last_levels[-1] #返回上一层
last_levels.pop() #删掉当前层
if choice not in current_level:continue #如果输入错误,继续输入
last_levels.append(current_level) #记录当前层
current_level = current_level[choice] #进入下一层
三级菜单程序
二、集合用法
集合是无序的不重复的数据组合,可以测试两个集合直接的交集、并集、差集等
2.1集合的基本用法
s1 = {1,2,3,4,5}
s2 = {2,3,6,7}
s3 = {2,3}
print(s1.intersection(s2))#交集
print(s1&s2) #交集
print(s1.difference(s2))#差集
print(s2.difference(s1))#差集
print(s1-s2) #差集
print(s1.union(s2)) #合集
print(s1|s2) #合计
print(s1.symmetric_difference(s2))#对称差集
print(s2.symmetric_difference(s1))#对称差集
print(s1^s2) #对称差集
print(s3.issuperset(s1)) #子集
print(s1.issuperset(s3)) #子集
print(s3<s1) #子集
三、字符编码集
用什么字符集写入就用什么字符集读取。
内存都是unicode编码,统一字节,高效。

四、文件操作
4.1基本操作
主要分三步,打开文件,处理文件,关闭文件。
f =open('a.txt','r') #只读方式打开文件
first_line = f.readline() #只读一行
data = f.read()# 读取剩下的所有内容,文件大时不要用
f.close() #关闭文件
4.2 基本选项
r,只读模式打开(默认)
w,只写模式打开(清空原文件内容)
a,追加模式(相当于列表里面的append),可以读。
r+,读写模式
w+, 写读模式
rb wb ab 表示处理二进制文件。
4.3 文件字符替换
f = open('test',encoding="utf-8")
for i in f:
if "hello" in i:
i = i.replace("hello","good")
print(i)
4.4 文件光标移动
f = open('test',encoding="utf-8")
f.seek(10) #移动文件光标到第10个字节
print(f.read())
print(f.tell()) #显示当前光标位置
Python基础知识学习_Day3的更多相关文章
- Python基础知识学习_Day1
1,python介绍 诞生于1989年圣诞节,目前越来越受到业界认可.应用领域十分广泛 云计算: 云计算最火的语言, 典型应用OpenStack WEB开发: 众多优秀的WEB框架,众多大型网站均为P ...
- Python基础知识学习随笔
Python学习随笔:PyCharm的错误检测使用及调整配置减少错误数量 Python学习随笔:获取当前主机名和用户名的方法 博客地址:https://blog.csdn.net/LaoYuanPyt ...
- Python基础知识学习_Day8
一.类的扩展方法 1.静态方法 语法:@staticmethod,静态方法不能访问公有属性,不能访问类.可在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量. class eat( ...
- Python基础知识学习_Day7
一.Subprocess模块 1常用方法 执行命令,返回命令执行状态,0 or非0 >>> retcode = subprocess.call(["ls", &q ...
- Python基础知识学习_Day6
一.time&datetime模块 常用选项如下: import time print(time.asctime()) #返回时间格式 print(time.localtime())#返回本地 ...
- Python基础知识学习_Day5
一.生成器和迭代器 1.列表生成 >>> a [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> a = map(lambda x:x+1, a ...
- Python基础知识学习_Day4
一.函数 1.1函数特性 减少重复代码 使程序可扩展 使程序变得容易维护 1.2函数定义和使用 def 函数名(参数): ...... 函数体 ...... 返回值 函数定义主要特点如下: def:表 ...
- Python基础知识学习_Day2
一.for循环 1.1功能及语法 for循环是迭代循环机制(while是条件循环),语法如下: for i in a b c: print(i) 1.2典型例子: 1.2.1猜年龄循环 realy_a ...
- python基础知识的学习和理解
参考链接:https://github.com/yanhualei/about_python/tree/master/python_learning/python_base python基础知识笔 ...
随机推荐
- Weka开发[4]-特征选择
特征选择,我对这一部分也不熟,大概讲一下,用AttributeSelection进行特征选择,它需要设置3个方面,第一:对属性评价的类(自己到Weka软件里看一下,英文Attribute Evalua ...
- window.parent与window.opener的区别
有这样一个需求,弹出一个新窗口 并从该新页面的select选择框中选择需要的类别,再返回到之前的父窗口页面的某个文本框中.这里就要用到window.parent和window.opener 如题两种方 ...
- 对比AutoResetEvent和ManualResetEvent
ManualResetEvent和AutoResetEvent 比较 ManualResetEvent和AutoResetEvent都继承自EventWaitHandler,它们的唯一区别就在于父类 ...
- Hibernate(一)——采用Hibernate框架开发环境搭建
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员充分使用对象编程思维来操作数据库.HIbernate的移植性很好,它可以应用于任何JDB ...
- js中的true,false盲点
上一篇博客提到了一个js的小问题,我当时的解释不太清晰,后面请教胡大大才弄明白js中的处理. js里面检查true和false的过程是这样的: 所以'0'在逻辑判断里面,是被当做true. if('0 ...
- 生成UUID简易版
最近一体化项目的主键ID都要求使用UUID,生成方法如下: import org.safehaus.uuid.UUIDGenerator; /** UUID生成器对象 */ private ...
- CSS3特性修改(自定义)浏览器默认滚动条
前言:我们做前端时,会遇到一些需求,要求把默认浏览器的滚动条样式给改写了,诶.好好的改它干啥了,也带不来用户体验,就是好看点嘛!实现原理其实是用了伪元素,webkit的伪元素实现很强,可以把滚动条当成 ...
- [ios] Xcode使用设置相关-快捷键【转】
快照: command+control+s 编辑完了可以和之前的某个版本对比,通过File->Snapshots 调试时的快捷键也像大多数 IDE 靠拢了,采用了 F5.F6.F7 简单 ...
- Node.js 使用gm处理图像
现要对之前的文件服务器进行扩展,听网上说gm处理图像来一套一套的.so决定使用该工具去实现文件服务器的图片处理这块.目标有下现在通过参数去获得缩略图http://xxx.xxx.com/image/2 ...
- 数据意识崛起,从企业应用看BI软件的未来发展
前阵子,和一群企业CIO聊天,希望从甲方角度看看对BI产品的看法.在问及一些成熟企业为何不上BI项目时,大家纷纷表示目前还处于观望状态. 提及BI,大家都觉得有些飘忽,和大数据一样,听着高大上,能真正 ...