第三期书生大模型实战营 第2关 Python 基础知识
- 第三期书生大模型实战营 第2关 Python 基础知识
- Python 基础
- 函数定义
- 常见的内置方法
- replace(old, new)
- lower()
- split()
- 字典dict
- 使用Python实现词频统计
- 使用VSCode进行调试
- 总结
第三期书生大模型实战营 第2关 Python 基础知识
Hello大家好,这里是第三期书生大模型实战营,闯关地图入门岛的第2关 Python 基础知识。我们将学会简单使用Python进行词频统计,并实现VSCode代码调试等。让我们开始吧~
Python 基础
首先,我们简单了解一下Python的基础知识。
函数定义
函数是预先定义的,可反复多次使用的,用来实现单一或相关联功能的代码段。能提高应用的模块性,和代码的重复利用率。
定义一个函数,需要遵循的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号**(),最后是冒号😗*。
- 圆括号之间用于定义参数,任何传入参数必须放在圆括号中间。
- 函数的第一行语句可以使用文档字符串来存放函数说明。
- 函数内容需要有缩进。
下面是定义一个简单的函数,用于打印传入的参数内容。
def print_content(content):print(content)print_content("这是要打印的内容")
执行代码后,控制台会输出:
这是要打印的内容
常见的内置方法
Python为我们提供了很多内置的方法,我们可以直接调用他们来实现相关的功能。
replace(old, new)
replace()可用于把字符串中的 旧字符串(old)替换成新字符串(new)。
"这个字符串包含旧内容".replace("旧","新")
执行代码后,输出内容如下:
这个字符串包含新内容
lower()
lower()可用于将字符串中的大写字母转换成小写。
"请问:This is InternLM Camp3 包不包含大写字母?".lower()
执行代码后,输出内容如下:
请问:this is internlm camp3 包不包含大写字母?
split()
split()用于将一个长的字符串按指定的字符拆分成多个短字符串列表。
"This is InternLM Camp3".split(" ")
执行代码后,将得到一个字符串列表:
['This', 'is', 'InternLM', 'Camp3']
字典dict
Python中字典是一种复合数据类型,可存储任意类型对象。
字典的每个键值 key:value 对用冒号 : 分割,每个键值对之间用逗号 , 分割。字典的键一般是唯一的,如果重复最后的一个键值对会替换前面的,值可以不唯一。
比如,我们可以定义一个字典:
word_count = {'hello': 1,'world!': 1,'this': 1,'is': 3,'an': 1,'example': 1,'word': 1,
'count': 2,'fun': 1,'Is': 1,'it': 2,'to': 1,'words': 1,'Yes': 1,'fun': 2}word_count
执行代码,输出内容为字典内容:
{'hello': 1, 'world!': 1, 'this': 1, 'is': 3, 'an': 1, 'example': 1, 'word': 1, 'count': 2, 'fun': 2, 'Is': 1, 'it': 2, 'to': 1, 'words': 1, 'Yes': 1}
从输出可以看出,我们定义了{'fun': 1, 'fun': 2}
,最终的输出结果中只存在{'fun': 2}
。
使用Python实现词频统计
掌握了Python的基础知识后,我们就可以来实现一个词频统计功能了。
- 首先,使用replace()将字符串中的标点符合替换掉
- 其次,使用lower()将字符串全部转换成小写
- 然后,使用split()将字符串拆分成单词
- 最后,使用dict数据类型来存储结果,key是单词,value是单词的个数
完整代码如下:
text = """
Got this panda plush toy for my daughter's birthday,
who loves it and takes it everywhere. It's soft and
super cute, and its face has a friendly look. It's
a bit small for what I paid though. I think there
might be other options that are bigger for the
same price. It arrived a day earlier than expected,
so I got to play with it myself before I gave it
to her.
"""def wordcount(text):word_list = text.replace(',', '').replace('.', '').replace('\n', '').lower().split(' ')count_dict = {}for str in word_list:if str in count_dict.keys():count_dict[str] = count_dict[str] + 1else:count_dict[str] = 1return count_dictprint(wordcount(text))
执行代码,输出内容为:
{'got': 2, 'this': 1, 'panda': 1, 'plush': 1, 'toy': 1, 'for': 3, 'my': 1, "daughter's": 1, 'birthdaywho': 1, 'loves': 1, 'it': 4, 'and': 2, 'takes': 1, 'everywhere': 1, "it's": 1, 'soft': 1, 'andsuper': 1, 'cute': 1, 'its': 1, 'face': 1, 'has': 1, 'a': 2, 'friendly': 1, 'look': 1, "it'sa": 1, 'bit': 1, 'small': 1, 'what': 1, 'i': 4, 'paid': 1, 'though': 1, 'think': 1, 'theremight': 1, 'be': 1, 'other': 1, 'options': 1, 'that': 1, 'are': 1, 'bigger': 1, 'thesame': 1, 'price': 1, 'arrived': 1, 'day': 1, 'earlier': 1, 'than': 1, 'expectedso': 1, 'to': 1, 'play': 1, 'with': 1, 'myself': 1, 'before': 1, 'gave': 1, 'itto': 1, 'her': 1}
使用VSCode进行调试
Python调试设置断点可以让程序运行到该行程序时停住,借此观察程序到断点位置时,其变量、寄存器、I/O等相关的变量内容,有助于深入了解程序运作的机制,发现、排除程序错误的原因。
VSCode 的主要功能之一是其强大的调试支持,内置调试器有助于加速编辑、编译和调试循环。
首先打开VSCode,编写wordcount.py脚本,设置断点,并启动调试。
在第一个断点处,我们可以看到所有拆分出来的单词。
然后,我们可以选择单步执行或者继续运行,直到运行到下一个断点处。
在第二个断点处,我们可以观察词频结果。
运行结束,在控制台可以看到输出内容。
至此,VSCode调试远程代码结束。
总结
至此,我们熟悉了Python的基础知识,包括函数、内置方法、数据类型等,并且使用Python实现了词频统计,最后在VSCode中进行了调试,了解的程序的运行过程。
接下来,就让我们在大模型实战开发中畅游吧!