第三期书生大模型实战营 第2关 Python 基础知识

第三期书生大模型实战营 第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中进行了调试,了解的程序的运行过程。

接下来,就让我们在大模型实战开发中畅游吧!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/44677.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细分析Java中的@EventListener事件监听器(附Demo)

目录 前言1. 基本知识2. Demo 前言 Java的基本知识推荐阅读: java框架 零基础从入门到精通的学习路线 附开源项目面经等(超全)Spring框架从入门到学精(全) 1. 基本知识 用于标注一个方法为事件监听器 事件监听器方…

ArduPilot开源飞控之AP_Mount_Siyi

ArduPilot开源飞控之AP_Mount_Siyi 1. 源由2. 框架设计2.1 类和继承2.2 公共方法2.3 保护方法2.4 私有成员和方法2.5 解析状态2.6 重要成员变量 3. 重要方法3.1 AP_Mount_Siyi::init3.2 AP_Mount_Siyi::update3.3 AP_Mount_Siyi::read_incoming_packets3.4 AP_Mount_Siyi::proc…

哈斯机床采集数据

哈斯自身也有一套设备采集监控系统,但是软件和架构功能都比较老,再加上不能兼容其他数控系统,所以即使免费送给客户,客户的使用意愿也十分有限。 哈斯系统市面上常见就串口和网口两种形式。关于市面上机床采集的问题:网…

Bash ——shell

Bash作为用户与操作系统之间的接口,让用户通过命令行输入各种指令来控制和操作计算机系统。 shell的两种解释: 1.linux命令解释器 Terminal 终端 ——》shell命令 ——》 Linux kernel (内核) Linux内核的作用: 1.…

15、电科院FTU检测标准学习笔记-基本性能

作者简介: 本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验 在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验 ———————————————————…

简单状压dp(以力扣464为例)

目录 1.状态压缩dp是啥? 2.题目分析 3.解题思路 4.算法分析 5.代码分析 6.代码一览 7.结语 1.状态压缩dp是啥? 顾名思义,状态压缩dp就是将原本会超出内存限制的存储改用更加有效的存储方式。简而言之,就是压缩dp的空间。 …

jdk中自带的并发类

1、seamplore 信号量 countDownLaunch:等待所有线程都完成,主线程在执行 CyclicBarrirer 内存屏障 exchanger 线程之间交换数据 phaser 阶段协同器 阻塞队列

AWS-WAF-Log S3存放,通过Athena查看

1.创建好waf-cdn 并且设置好规则和log存储方式为s3 2. Amazon Athena 服务 使用 (注意s3桶位置相同得区域) https://docs.aws.amazon.com/zh_cn/athena/latest/ug/waf-logs.html#waf-example-count-matched-ip-addresses 官方文档参考,建一个分区查询表…

C. Earning on Bets

题目 个人补充&#xff1a; #include <bits/stdc.h> using namespace std; #define int long long #define pb push_back #define fi first #define se second #define lson p << 1 #define rson p << 1 | 1 #define ll long longconst int maxn 1e6 5, in…

C语言 | Leetcode C语言题解之第228题汇总区间

题目&#xff1a; 题解&#xff1a; char** summaryRanges(int* nums, int numsSize, int* returnSize) {char** ret malloc(sizeof(char*) * numsSize);*returnSize 0;int i 0;while (i < numsSize) {int low i;i;while (i < numsSize && nums[i] nums[i …

算法通关:004_1选择排序

代码一定要自己手敲理解 public class _004 {//选择排序&#xff0c;冒泡排序&#xff0c;插入排序//交换public static void swap(int[] arr,int i ,int j){int temp arr[i];arr[i] arr[j];arr[j] temp;}//选择排序public static void selectSort(int[] arr){if(arr null…

YOLOv10改进 | Conv篇 | 利用FasterBlock二次创新C2f提出一种全新的结构(全网独家首发,参数量下降70W)

一、本文介绍 本文给大家带来的改进机制是利用FasterNet的FasterBlock改进特征提取网络&#xff0c;将其用来改进ResNet网络&#xff0c;其旨在提高计算速度而不牺牲准确性&#xff0c;特别是在视觉任务中。它通过一种称为部分卷积&#xff08;PConv&#xff09;的新技术来减少…

NLP入门——词袋语言模型的搭建、训练与预测

卷积语言模型实际上是取了句子最后ctx_len个词作为上下文输入模型来预测之后的分词。但更好的选择是我们做一个词袋&#xff0c;将所有分词装在词袋中作为上下文&#xff0c;这样预测的分词不只根据最后ctx_len个分词&#xff0c;而是整个词袋中的所有分词。 例如我们的序列是&…

javaweb图书商城系统带万字文档网上书城java项目java课程设计java毕业设计

文章目录 图书商城系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档&#xff08;9.9&#xffe5;带走&#xff09; 图书商城系统 一、项目演示 网上书城 二、项目介绍 语言&#xff1a;java 数据库&#xff1a;…

typora 两边太宽,设置宽度

步骤&#xff1a; 查看目前使用主题类型 文件 —> 偏好设置 —> 外观 —> 打开主题文件夹 修改对应的主题&#xff1a;max-width

MySQL 数据库支持存储emoji表情

当你通过node.js&#xff0c;往mysql存储emoji表情的时候&#xff0c;可能会遇到报错&#xff1a; code: ‘ER_TRUNCATED_WRONG_VALUE_FOR_FIELD’, errno: 1366, sqlMessage: “Incorrect string value: ‘\xF0\x9F\x8D\x94’ for column ‘nick_name’ at row 1”, sqlState…

MySQL数据库主从复制+mycat读写分离+MHA实操

目录 一、主从复制 1.1 主从复制简介 1.2 MySQL支持的复制类型 1.3 主从复制的工作过程 1.4 主从复制的同步模式 1.4.1 异步复制&#xff08;Asynchronous replication&#xff09; 1.4.2 全同步复制&#xff08;Fully synchronous replication&#xff09; 1.4.3 半同…

力扣2356.二维差分模板——子矩阵元素加1

力扣2356.二维差分模板——子矩阵元素加1 模板题 最后将n2*n2的矩阵删去周围一圈变成n*n矩阵的操作 class Solution {public:vector<vector<int>> rangeAddQueries(int n, vector<vector<int>>& queries) {vector<vector<int>> res…

【JavaWeb程序设计】Servlet(二)

目录 一、改进上一篇博客Servlet&#xff08;一&#xff09;的第一题 1. 运行截图 2. 建表 3. 实体类 4. JSP页面 4.1 login.jsp 4.2 loginSuccess.jsp 4.3 loginFail.jsp 5. mybatis-config.xml 6. 工具类&#xff1a;创建SqlSessionFactory实例&#xff0c;进行 My…

UI设计工具选择指南:Sketch、XD、Figma、即时设计

在数字产品设计产业链中&#xff0c;UI设计师往往起着连接前后的作用。产品经理从一个“需求”开始&#xff0c;制定一个抽象的产品概念原型。UI设计师通过视觉呈现将抽象概念具体化&#xff0c;完成线框图交互逻辑视觉用户体验&#xff0c;最终输出高保真原型&#xff0c;并将…