Python基础知识学习_Day3

Python基础知识学习_Day3

大家好,又见面了,我是全栈君。

一、字典用法

字典是一种key-value数据类型,通过key获取具体value的内容,字典的特性是无序、去重。

增删改查用法如下:

1.1基本增删改查操作

 1 name = {
   
   "name":"alex","age":"18","xx":{
   
   "ed":3000,"ye":2000}}
 2 print(name["name"])   #打印name对应的value的内容
 3 print(name.get("name")) #select
 4 name["sex"] = "boy"  # add
 5 print(name)
 6 del name["sex"] #del
 7 print(name)
 8 name.pop("name") #del
 9 print(name)
10 name.clear() #清空字典
11 print(name)
12 name2 = name.copy() #浅copy,只修改第一层,第二层不变。
13 name2["sex"] = "girl"
14 name2["xx"]["ye"] = "1000"
15 print(name)
16 print(name2)
17 print(name.fromkeys("alex","3")) #分别赋值
18 print(name.keys()) #打印所有key

1.2 字典循环用法

1 方法1.
2 name = {
   
   "name":"alex","age":"18","xx":{
   
   "ed":3000,"ye":2000}}
3 for i in name:   #这种for 以后常用
4     print(i,name[i]) #打印key value的值
5 
6 方法2.
7 for k,v in name: #会先把dict转成list,数据里大时莫用
8     print(k,v)

1.3 三级菜单经典版

Python基础知识学习_Day3
Python基础知识学习_Day3

 1 menu = {
 2     '北京':{
 3         '海淀':{
 4             '五道口':{
 5                 'soho':{},
 6                 '网易':{},
 7                 'google':{}
 8             },
 9             '中关村':{
10                 '爱奇艺':{},
11                 '汽车之家':{},
12                 'youku':{},
13             },
14             '上地':{
15                 '百度':{},
16             },
17         },
18         '昌平':{
19             '沙河':{
20                 '老男孩':{},
21                 '北航':{},
22             },
23             '天通苑':{},
24             '回龙观':{},
25         },
26         '朝阳':{},
27         '东城':{},
28     },
29     '上海':{
30         '闵行':{
31             "人民广场":{
32                 '炸鸡店':{}
33             }
34         },
35         '闸北':{
36             '火车战':{
37                 '携程':{}
38             }
39         },
40         '浦东':{},
41     },
42     '山东':{},
43 }
44 current_level = menu #定义当前层
45 last_levels = [] #标记级别
46 while True:
47     for key in current_level:
48         print(key)
49     choice = input("pls input city:").strip()
50     if choice == 0:continue #输入为空,继续输入
51     if choice =='b': #退出判断
52         if len(last_levels) ==0: break #回到第一层,退出程序
53         current_level = last_levels[-1] #返回上一层
54         last_levels.pop() #删掉当前层
55     if choice not in current_level:continue #如果输入错误,继续输入
56     last_levels.append(current_level) #记录当前层
57     current_level = current_level[choice] #进入下一层

三级菜单程序

 

二、集合用法

 集合是无序的不重复的数据组合,可以测试两个集合直接的交集、并集、差集等

2.1集合的基本用法

 1 s1 = {1,2,3,4,5}
 2 s2 = {2,3,6,7}
 3 s3 = {2,3}
 4 print(s1.intersection(s2))#交集
 5 print(s1&s2) #交集
 6 print(s1.difference(s2))#差集
 7 print(s2.difference(s1))#差集
 8 print(s1-s2) #差集
 9 print(s1.union(s2)) #合集
10 print(s1|s2) #合计
11 print(s1.symmetric_difference(s2))#对称差集
12 print(s2.symmetric_difference(s1))#对称差集
13 print(s1^s2) #对称差集
14 print(s3.issuperset(s1)) #子集
15 print(s1.issuperset(s3)) #子集
16 print(s3<s1) #子集

 三、字符编码集

用什么字符集写入就用什么字符集读取。

内存都是unicode编码,统一字节,高效。

Python基础知识学习_Day3

四、文件操作

4.1基本操作

主要分三步,打开文件,处理文件,关闭文件。

1 f =open('a.txt','r')   #只读方式打开文件
2 first_line = f.readline()  #只读一行
3 data = f.read()# 读取剩下的所有内容,文件大时不要用
4 f.close()  #关闭文件

4.2 基本选项

r,只读模式打开(默认)

w,只写模式打开(清空原文件内容)

a,追加模式(相当于列表里面的append),可以读。

r+,读写模式

w+, 写读模式

rb wb ab 表示处理二进制文件。

4.3 文件字符替换

1 f = open('test',encoding="utf-8")
2 for i in f:
3     if "hello" in i:
4         i = i.replace("hello","good")
5     print(i)

 4.4 文件光标移动

f = open('test',encoding="utf-8")
f.seek(10)  #移动文件光标到第10个字节
print(f.read())
print(f.tell())  #显示当前光标位置

 

转载于:https://www.cnblogs.com/liumj0305/p/5991904.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/108824.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • great little war game_flash游戏

    great little war game_flash游戏空格键显示血

    2022年9月7日
    0
  • java activiti 工作流引擎_Activiti工作流引擎简介详解

    java activiti 工作流引擎_Activiti工作流引擎简介详解Activiti工作流引擎简介一、概述Activiti是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理,工作流,服务协作等领域的一个开源,灵活的,易扩展的可执行流程语言框架。Activiti基于Apache许可的开源BPM平台,创始人TomBaeyens是JBossJBPM的项目架构师,它的特色是提供了eclipse插件,开发人员可以通过插…

    2022年7月27日
    16
  • this.class.getClassLoader()怎么理解?「建议收藏」

    this.class.getClassLoader()怎么理解?「建议收藏」this.class.getClassLoader()怎么理解?java是面向对象语言,面向对象的语言的宗旨就是万事万物皆对象,那么类也是一个对象,类里面的属性和方法也是对象。java里面的所有的类都是Class类的对象,这个this.class是获得这个类相对于Class类的对象。后面的方法是获得这个类对象的加载器。只有Class类才有getClassLoader()方法呀~可以这么想,我们平时讲述某某类,但是我们并没有说这个类怎么和虚拟机打交道,虚拟机怎么识别这个类.总不能全靠字符

    2022年6月1日
    33
  • 宽度学习(Broad Learning System)

    宽度学习(Broad Learning System)宽度学习系统(BLS)一词的提出源于澳门大学科技学院院长陈俊龙于2018年1月发表的《BroadLearningSystem:AnEffectiveandEfficientIncrementalLearningSystemWithouttheNeedforDeepArchitecture》

    2022年5月22日
    33
  • Spring面试题(2020最新版)「建议收藏」

    Spring面试题(2020最新版)「建议收藏」文章目录Spring概述(10)什么是spring?Spring框架的设计目标,设计理念,和核心是什么Spring的优缺点是什么?Spring有哪些应用场景Spring由哪些模块组成?Spring框架中都用到了哪些设计模式?详细讲解一下核心容器(springcontext应用上下文)模块Spring框架中有哪些不同类型的事件Spring应用程序有哪些不同组件?使用Spring有哪些方式…

    2022年5月7日
    34
  • vim复制粘贴命令

    vim复制粘贴命令1.选定文本块。使用v进入可视模式,移动光标键选定内容。 2.复制的命令是y,即yank(提起),常用的命令如下:   y   在使用v模式选定了某一块的时候,复制选定块到缓冲区用;   yy  复制整行(nyy或者yny,复制n行,n为数字);   y^  复制当前到行头的内容;   y$  复制当前到行尾的内容;   yw  复制一个word(ny…

    2022年9月23日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号