Python入门基础 带你从入门到精通
前言
1 变量和简单数据类型
变量命名格式:变量名 = “赋值”
1.1 变量使用规范
使用变量时,需要遵守一些规则。违反这些规则将引发错误。
~变量名只能包含数字、字母、下划线。变量名不能以数字开头以及不能包含空格。
~变量名不能将Python保留字和函数名作为变量名。如print等
如下是python3的33个保留字列表:
变量名要简单又具有描述性。如name比n好,user_name比u_n好。
~慎用大写字母I和O,避免看错成数字1和0。
1.2 字符串
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中引号包括单引号和双引号。这种灵活性能够在字符串中包含引号和撇号,如:
>>> str = "I'm David"
>>> str1 = 'I told my friend,"i love Python"'
常用字符串操作方法
以首字母大写的方式显示每个单词:
>>> name = "hello python world"
>>> print(name.title())
Hello Python World
将字符串改为全部大写或全部小写:
>>> str1 = "I love python"
>>> print(str1.upper()) #将字符串改为全部大写
I LOVE PYTHON
>>> print(str1.lower()) #将字符串改为全部小写
i love python
字符串合拼(拼接)
Python使用加号(+)来合拼字符串,如:
>>> first_name = "Guido"
>>> last_name = "van Rossum"
>>> full_name = first_name + " " + last_name
>>> print(full_name)
Guido van Rossum
使用制表符\t或换行符\n添加空白:
>>> print("Languages:\n\tPython\n\tC++\n\tPHP")
Languages:PythonC++PHP
删除字符串的空格:
>>> name = " p y t h o n "
>>> print(name.rstrip()) #删除字符串右端空格p y t h o n
>>> print(name.lstrip()) #删除字符串左端空格
p y t h o n
>>> print(name.strip()) #删除字符串两端空格
p y t h o n
>>> print(name.replace(' ','')) #删除字符串全部空格包括制表符和换行符
python
字符串的序号
字符串是字符的序列,可以按照单个字符或字符片段进行索引。
>>> name = "Hello World"
>>> print(name[0])
H
>>> print(name[0:-1])
Hello Worl
>>> print(name[-1])
d
>>> print(name[::])
Hello World
>>> print(name[0:11])
Hello World
找到字符串中最低字符索引号:S.find(sub [,start [,end]]) -> int
失败时返回-1
>>> name = "hello world"
>>> print(name.find('d'))
10
返回某些字符出现的次数:S.count(sub[, start[, end]]) -> int
>>> name = "hello world"
>>> print(name.count('l'))
3
把字符串由分隔符返回一个列表:S.split([sep [,maxsplit]]) -> list of strings,如果给定maxsplit,则最多为maxsplit
>>> name = "hello world"
>>> print(name.split(' '))
['hello', 'world']
>>> print(name.split(' ',0))
['hello world']
字符串格式化输出(format和%用法)
%方法格式代码
>>> "{}:计算机{}的CPU占用率为{}%".format('2019-03-25','python',10) #S.format(*args, **kwargs) -> string
'2019-03-25:计算机python的CPU占用率为10%'
>>> "%s:计算机%s的CPU占用率为%d%%" % ('2019-03-25','python',10) #%用法
'2019-03-25:计算机python的CPU占用率为10%
小结:可以用help函数查看字符串的相关操作,比如help(str.find)
2 组合数据类型
2.1 集合类型
集合的定义及操作
~集合用大括号{}表示,元素间用逗号分隔;
~建立集合类型用{}或set();
~建立空集合类型,必须用set();
~集合元素之间无序;
~集合中每个元素唯一,不存在相同元素
>>> A = {"python",'666',("wenwei-blog",666)}
{'python', '666', ('wenwei-blog', 666)}
>>> B = set("pypy")
{'y', 'p'}
>>> C = {"python",123,"python",123}
{'python', 123}
集合操作符
6个操作符
4个增强操作符
集合操作方法
集合应用场景
包含关系比较;数据去重。
2.1 序列类型定义
~序列是具有先后关系的一组元素
~序列是一个基类类型(基本数据类型)
~序列类型分为字符串、列表、元组类型
2.2 序列类型之列表
列表由一系列按特定顺序排列的元素组成,用方括号[]来表示列表。
列表的增删改查相关操作
对列表数字执行简单统计计算
>>> digits = [1,23,434,55,44,67]
>>> min(digits)
1
>>> max(digits)
434
>>> sum(digits)
624
列表相关练习
练习1:创建一个列表,其中包含数字1-100并打印出来然后计算列表数字的总值。
>>> digits = [value for value in range(1,101)];sum(digits)
5050
练习2:求1-20的奇数
>>> for i in range(1,21,2):print(i)1
3
5
7
9
11
13
15
17
19
练习3: 输出3-30以内能被3整除的数字
>>> lists = [n for n in range(3,31)]
>>> lists
[3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30]
>>> for i in lists:if i % 3 == 0:print(i)3
6
9
12
15
18
21
24
27
30
2.3 序列类型之元组
元组其实跟列表差不多,也是存一组数据,只不过它一旦创建便不能修改,所以又叫只读列表
它只有两个方法,一个是count(统计元组某个元素出现的次数tuple.count(‘str’)),一个是index(查看某个元素的索引号tuple.index(‘str’))
>>> names = ('zhiwenwei','zhouyouxian')
>>> names.index('zhiwenwei')
0
>>> names.count('zhiwenwei')
1
元组练习题
有如下变量,请实现要求的功能
tu = (“alex”, [11, 22, {“k1”: ‘v1’, “k2”: [“age”, “name”], “k3”: (11,22,33)}, 44])
a. 请问tu变量中的第一个元素 “alex” 是否可被修改?
元组不可直接被修改,需要转换成列表或字典
b. 请问tu变量中的"k2"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k2是字典的键,对应的值是列表可修改:tu[1][2][‘k2’]=‘Seven’
c. 请问tu变量中的"k3"对应的值是什么类型?是否可以被修改?如果可以,请在其中添加一个元素 “Seven”
k3是字典的键,对应的值是元组不可修改
2.4 字典类型
字典是包含0个或多个键值对的集合,没有长度限制,可以根据键索引值的内容。
Python语言中通过字典实现映射,通过大括号{}建立,建立模型如下:
{键1:值1,键2:值2,…}
>>> city = {'中国':'北京','美国':'纽约','法国':'巴黎'}
>>> city
{'中国': '北京', '美国': '纽约', '法国': '巴黎'}
拓展:字典是无序的。python语言中,字符串、列表、元组都是采用数字索引,字典采用字符索引。
字典的函数和方法
字典的基本原则
字典是一个键值对的集合,该集合以键为索引,一个键对应一个值信息
字典中的元素以键信息为索引访问
字典长度是可变的,可以通过对键信息赋值实现增加或修改键值对。
2.5 jieba库基本介绍
jieba库提供三种分词模式,最简单只需要掌握一个函数;
jieba是优秀的中文分词第三方库,需额外安装
jieba库的安装方法
pip install jieba
jieba分词的三种模式
精确模式:把文本精确切分,不存冗余单词
>>> word1 = jieba.lcut("python无所不能!除了生不出孩子,我们应该学习使用它!")
Building prefix dict from the default dictionary ...
Dumping model to file cache /tmp/jieba.cache
Loading model cost 1.832 seconds.
Prefix dict has been built succesfully.
>>> print(word1,type(word1))
['python', '无所不能', '!', '除了', '生不出', '孩子', ',', '我们', '应该', '学习', '使用', '它', '!'] <class 'list'>
2.6 实例:文本词频统计
英文文本:hamlet,统计出现最多的英文单词
https://python123.io/resources/pye/hamlet.txt
代码实现:
#Hamlet词频统计
def getText():txt = open("hamlet",'r').read()txt = txt.lower() #大写字母转换小写for word in '~!@#$%^&*()_+-={}[],./:";<>?':txt = txt.replace(word," ")#把多余符号转换为空格return txt
hamletTxt = getText()
words = hamletTxt.split() #以空格拆分为列表
counts = {}
for word in words:counts[word] = counts.get(word,0) + 1 #以每个词为键,值默认0,,每出现一次累加1
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True) #[1]按照第二维排序,reverse=True表示降序
for i in range(10):word,count = items[i]print("{0:<10}{1:5}".format(word,count))
中文文本:三国,分析人物
https://python123.io/resources/pye/threekingdoms.txt
import jieba
txt = open("Threekingdoms", 'r', encoding="utf-8").read()
excludes = {'将军','却说','荆州','二人','不可','不能','如此'}
words = jieba.lcut(txt)
counts = {}
for word in words:if len(word) == 1:continue#书中同一人物多个名字统一改为一个名字elif word == '诸葛亮' or word == '空明日':rword = "孔明"elif word == '关公' or word == '云长':rword = "关羽"elif word == '玄德' or word == '玄德日':rword = "刘备"elif word == '孟德' or word == '丞相':rword = "曹操"else:rword = wordcounts[word] = counts.get(word, 0) + 1
for word in excludes:del counts[word] #去重
items = list(counts.items())
items.sort(key=lambda x:x[1],reverse=True)
for i in range(10):word,count = items[i]print("{0:<10}{1:>5}".format(word,count))
3 程序的控制结构
3.1 程序的分支结构
根据判断条件结果而选择不同向前路径的运行方式
单分支结构
if <条件> :<语句块>
示例:
guess = eval(input("请输入数字:"))
if guess == 88:print("猜对了")
二分支结构
if <条件> :<语句块>else:<语句块>
guess = eval(input("请输入数字:"))
if guess == 88:print("猜对了")
else:print("猜错了")
多分支结构
if <条件1> :<语句块1>elif <条件2> :<语句块2>...else:<语句块N>
示例
age = 25
count = 0
while count < 3:guess_age = int(input("guess_age:"))if guess_age == age:print("yes,you got it!!!")breakelif guess_age > age:print("think smaller...")else:print("think bigger...")count += 1
3.2 程序的循环结构
遍历循环
语法结构:
for <循环变量> in <循环结构>:
<语句块>
无限循环
由条件控制的循环运行方式
语法结构:
while <条件>:
<语句块>
循环控制保留字
break 和 continue
-break 跳出并结束当前整个循环,执行循环后的语句
-continue 结束当次循环,继续执行后续次数循环
循环的拓展
当循环没有被break语句退出时,执行else语句。
else语句作为“正常”完成循环的奖励
3.3 异常处理
异常处理的基本使用
示例
try:num = eval(input("请输入数字"))print(num**2)
except:print("你输入的不是数字")
异常处理的高级使用
try:语句块1except:语句块2else:语句块3(不发生异常时执行)finally语句块4(最终会执行)
3.4 实例:身体质量指数BMI
体质指数(BMI)= 体重(kg)÷ 身高²(m)
代码实例:
height,weight = eval(input("请输入身体(米)和体重(公斤)[逗号分开]:"))
bmi = weight / pow(height,2)
print("BMI数值为:{:.2f}".format(bmi))#.2f#保留两位小数
who,nat = "",""
if bmi < 18.5:who,nat = "偏瘦","偏瘦"
elif 18.5 <= bmi < 24:who,nat = "正常","正常"
elif 24 <= bmi < 25:who,nat = "正常","偏胖"
elif 25 <= bmi < 28:who,nat = "偏胖","偏胖"
elif 28 <= bmi <30:who,nat = "偏胖","肥胖"
else:who,nat = "肥胖","肥胖"
print("BMI指标为:国际'{}',国内'{}'".format(who,nat))
结果展示:
4 函数和代码复用
4.1 函数的定义和作用
def 函数名(o个或多个参数):
函数体
return 返回值
-函数是一段代码的表示
-函数是一段具有特定功能的、可重用的语句组
-函数是一种功能的抽象,一般函数表达特定功能
两个作用:降低编程难度和代码重用
函数的调用
4.2 函数的参数传递
可选参数传递
函数定义时可以为某些参数定义默认值,构成可选参数。
def test(n,m=1): #m为可选参数s = 1for i in range(1,n+1):s *= iprint(s//m)
test(10)
test(10,2)
结果:
可变参数传递
def test(n,*args):#args为可变参数,也可以命名其他值
s = 1
for i in range(1,n+1):
s += i
for item in args:
s += item
print(s)
test(10,3)
test(10,3,1,5)
函数执行结果:
参数组合:*args和**kwargs
def test(*args,**kwargs):print("args =",args)print("kwargs =",kwargs)print("----------------------------------")
if __name__ == '__main__':test(1,5,94,564)test(a=1,b=2,c=3)test(1,2,3,4,a=1,b=2,c=3)test('I love python',1,None,a=1,b=2,c=3)
函数执行结果:
参数传递的两种方式:位置传递和名称传递
小结:
函数可以有参数也可以没有,但必须保持括号。args是可变参数,args接收的是一个tuple;**kw是关键字参数,kw接收的是一个dict。在同时使用args和kwargs时,必须*args参数列要在kwargs前面。
4.3 lambda函数
lambda函数是一种匿名函数,即没有名字的函数;lambda函数用于定义简单的、能够在一行内表示的函数。
g = lambda x,y:x*y
print(g(4,5))
6 文件和数据格式化
5.1 文件的使用
Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
常用语法格式
变量名 = open(文件路径(相对或绝对路径),打开模式,encoding=None)
打开模式
打开的文件模式描述 ‘r’只读模式,默认值,文件不存在返回FileNotFoundError ‘w’ 覆盖写模式,文件不存在则创建,存在则完全覆盖 ‘x’ 创建写模式,文件不存在则创建,存在则返回FileExistsError ‘a’ 追加写模式,文件不存在则创建,存在则在文件最后追加内容 ‘b’ 二进制文件模式 ‘t’ 文本文件模式,默认值 ‘+’ 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
file对象
file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数
file对象描述f.read(size)读入全部内容,如果给出参数,读入前size长度f.readline() 读取整行,包括 “\n” 字符。f.readlines(sizeint) 读取所有行并返回列表,若给定sizeint>0,则是设置一次读多少字节,这是为了减轻读取压力。f.write(s) 将字符串或字节流写入文件f.writelines(lines) 将元素全为字符串的列表写入文件f.close() 关闭文件f.seed(offset) 调整当前文件操作指针的位置,0-文件开头;1-文件当前位置;2-文件末尾位置 f.flush() 刷新文件内部缓冲,数据立刻写入文件
5.2 wordcloud库的使用
词云以词语为基本单位,更加直观和艺术第展示文件。
wordcloud库官网:https://amueller.github.io/word_cloud/
github地址:https://github.com/amueller/word_cloud
wordcloud下载安装
pip install wordcloud
wordcloud常规方法
w = wordcloud.WordCloud()
方法描述例子w.generate(text)向wordcloud对象w加载文本text
w.generate("Python by WordCloud")
w.to_file(filename) 将词云输出.png或.jpg图像文件
w.to_file("outfile.png")
实例
import wordcloud
w = wordcloud.WordCloud() #设置wordcloud对象
w.generate("Python by WordCloud,is fun and powerful!") #配置对象参数并加载词云文本
w.to_file("outfile.png") #输出词云文件
执行生成图片:
程序执行过程报错:ModuleNotFoundError: No module named ‘matplotlib’
解决报错:安装python画图工具第三方库matplotlib:pip install matplotlib
wordcloud工作流程
分割:以空格分割单词统计:单词出现次数并过滤字体:根据统计配置字号布局:颜色环境尺寸
配置对象参数
w.wordcloud.WordCloud(<参数>)
参数描述例子 width 指定生成图片宽度,默认400像素
width=500
height 指定生成图片高度,默认200像素
height=300
min_font_size 指定词云字体最小字号,默认4号
min_font_size=20
max_font_size 指定词云字体最大字号,根据高度自动调节
max_font_size=40
font_step 指定词云单词步进间隔,默认1
font_step=6
font_path 指定文件字体的路径,默认None font_path=“msyh.ttc” max_words 指定词云显示最多单词数量,默认200
max_words=5
stopwords 指定词云排除列表,即不显示的单词列表 stopwords={“python”} mask 指定词云形状,默认长方形,修改需应用imread函数
from scripy.misc import imread
mk=imread(“pic.png”)
mask=mk
background_color 指定词云图片背景颜色,默认黑色
background_color="white"
实例1
import wordcloud
w = wordcloud.WordCloud()
text = "life is short, you need python"
w = wordcloud.WordCloud(background_color="white",width=500,height=300,min_font_size=20,max_font_size=40,font_step=6,max_words=5)
w.generate(text)
w.to_file("outfile2.png")
实例2
import wordcloud
import jieba
text = """
wordcloud是python非常优秀的第三方库,词云以词语为基本单位更加直观和艺术的展示文本词云图,\
也叫文字云,是对文本中出现频率较高的关键词予以视觉化的展现,词云图过滤掉大量的低频低质的文本信息,\
使得浏览者只要一眼扫过文本就可领略文本的主旨。基于Python的词云生成类库,好用功能强大。\
在做统计分析的时候有着很好的应用。
"""
w = wordcloud.WordCloud(width=800,height=400,font_path="msyh.ttc")
w.generate(" ".join(jieba.lcut(text))) #中文需要先分词并组成空格分隔字符串
w.to_file("outfile3.png")
实例3
常规图词云
https://python123.io/resources/pye/新时代中国特色社会主义.txt
import wordcloud
import jieba
f = open("新时代中国特色社会主义","r",encoding="utf-8")
text = jieba.lcut(f.read())
text = " ".join(text)
f.close()
w = wordcloud.WordCloud(background_color='white',width=800,height=400,font_path="msyh.ttc")
w.generate(text)
w.to_file("outfile4.png")
实例4
不常规图词云:生成下图五角星形状
import wordcloud
import jieba
from scipy.misc import imread
#图片必须是白色背景色
mask = imread('five-pointed star.png')
f = open("新时代中国特色社会主义","r",encoding="utf-8")
text = jieba.lcut(f.read())
text = " ".join(text)
f.close()
w = wordcloud.WordCloud(background_color='white',width=1000,height=700,font_path="msyh.ttc",mask=mask)
w.generate(text)
w.to_file("outfile5.png")
效果
读者福利:知道你对Python感兴趣,还准备了这套python学习资料
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以找到适合自己的学习方案
包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!
零基础Python学习资源介绍
Python入门基础 带你从入门到精通相关推荐
- 音视频开发入门基础知识(视频入门篇)
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...
- 炒股入门基础知识之炒股入门?炒股入门股票基础知识该掌握哪些
最近几年越来越多的朋友们开始进入股票市场,为了也是自己在业余的时间,可以有一个事情做,如果能够赚钱的话自然是更好的,但是如果赔钱自己也能够乐观的面对,毕竟投资是有风险的,我们为大家介绍一下<阿尔 ...
- 音视频开发入门基础知识(音频入门篇)
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 前言 音频的采集和播放 音频常见的格式 音频的编码 前言 在音视频开发入门基础知 ...
- python数据处理电脑配置_『大数据python计算机基础教学视频教程』入门学python需要什么配置的电脑...
x = 1 if x 4.2 1) else匹前的缩进相同且最接近的if 2) 改之前y=x 2行,之后是y=x 1先执行 第5题 代码还n = 1 while n <= 5: i = 1 wh ...
- 负荷计算的时候assert失败_负荷计算的入门基础知识,小白入门必备!
负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...
- python编程入门与案例详解-Python零基础必看的入门书藉:Python编程从入门到实践...
提取码:sc9i 本书是一本针对所有学习Python读者而作的Python 入门书.全书分两部分:第一部分介绍用Python编程所必须了解的基本概念,包括matplotlib.NumPy 和Pygal ...
- python教程自带数据库_Python入门进阶教程-数据库操作
Python数据库操作Python版本3.8.0,开发工具:Pycharm 建议本节在掌握了数据库相关操作后再进行学习 MySQL 是最流行的关系型数据库管理系统.本小节通过Python对MySQL数 ...
- python入门基础系列八_Python 入门系列 —— 21. dict 的介绍
Dictionary 字典常用于存储键值对的集合,它是一种无序,可修改并且不允许重复,字典是用 {} 来表示,并带有 k/v 键值对,比如下面定义的字典结构.thisdict = { "br ...
- 零基础带你快速入门Ribbon技术(浅显易懂、小白都能看懂)
xmind文档下载地址:https://download.csdn.net/download/Kevinnsm/19024681 赠(2021Java后端技术体系)下载地址: https://down ...
最新文章
- POJ 3258:River Hopscotch (最大化最小值)
- 代码规范指南:怎样写才能干净整洁
- 深入浅出 Redis client/server交互流程
- 一文搞定哈希(六种构建、四种冲突解决方法、查找算法总结)
- c++直角坐标系与极坐标系的转换_一篇阅读量高达2百6十多万的关于坐标系和投影的相关知识探讨...
- 巧妙喝水打败多种疾病
- 为什么电脑不能打字_为什么不能用电脑验光仪测出来的度数直接配眼镜?
- 金融时报:人工智能在银行中的应用—对全球30家大型银行的调查
- python程序的name的作用是什么_python 中__name__ = '__main__' 的作用,到底干嘛的?
- 有关emoji表情以及utf-16编码
- java基础----变量与常量+作用域
- [转]VUE优秀UI组件库合集
- android des ecb加密_Android逆向 | 基础知识篇 01
- JBPM节点分支之Group节点分析
- 数据分析:AI智能科技影响下,电话机器人实现落地
- 学一门计算机语言大体的过程,学习一门新编程语言的6个步骤
- 怎么完全卸载赛门铁克_如何干净彻底卸载诺顿?
- SWOT分析思维的一些基本思考与见解
- 如何写一篇综述论文、浅谈
- 【游戏开发引擎】 实验3:Captain Blaster 2D 滚动射击游戏
热门文章
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 一.前言 二.视频采集和显示 三.视频常见的格式 四.RGB转YUV和YUV转R ...
最近几年越来越多的朋友们开始进入股票市场,为了也是自己在业余的时间,可以有一个事情做,如果能够赚钱的话自然是更好的,但是如果赔钱自己也能够乐观的面对,毕竟投资是有风险的,我们为大家介绍一下<阿尔 ...
RTSP实时音视频开发实战课程:<RTSP实时音视频开发实战> 音视频开发入门基础知识(音频入门篇) 目录 前言 音频的采集和播放 音频常见的格式 音频的编码 前言 在音视频开发入门基础知 ...
x = 1 if x 4.2 1) else匹前的缩进相同且最接近的if 2) 改之前y=x 2行,之后是y=x 1先执行 第5题 代码还n = 1 while n <= 5: i = 1 wh ...
负荷计算是电气设计人员必须掌握的一必修课,选导体.设备还有保护开关的选择,电网系统分析,都离不开负荷计算的内容,为此小编特意总结9个负荷计算的入门基础知识,分享给大家,希望能在工作和学习中作为一份参考 ...
提取码:sc9i 本书是一本针对所有学习Python读者而作的Python 入门书.全书分两部分:第一部分介绍用Python编程所必须了解的基本概念,包括matplotlib.NumPy 和Pygal ...
Python数据库操作Python版本3.8.0,开发工具:Pycharm 建议本节在掌握了数据库相关操作后再进行学习 MySQL 是最流行的关系型数据库管理系统.本小节通过Python对MySQL数 ...
Dictionary 字典常用于存储键值对的集合,它是一种无序,可修改并且不允许重复,字典是用 {} 来表示,并带有 k/v 键值对,比如下面定义的字典结构.thisdict = { "br ...
xmind文档下载地址:https://download.csdn.net/download/Kevinnsm/19024681 赠(2021Java后端技术体系)下载地址: https://down ...