书生大模型实战营(2)——函数实现+Vscode连接InternStudio debug笔记

第二关任务:

任务一:请实现一个wordcount函数,统计英文字符串中每个单词出现的次数。返回一个字典,key为单词,value为对应单词出现的次数。

**任务二:**请使用本地vscode连接远程开发机,将上面你写的wordcount函数在开发机上进行debug,体验debug的全流程,并完成一份debug笔记(需要截图)。

1、基础知识

这里需要了解Python和debug,可以查看文档学习。

2、使用vscode连接开发机进行python debug

VScode连接开发机可以去看上一篇书生大模型实战营(1)------InterStudio基础知识+Vscode SSH连接远程服务器+Linux基础指令

点击插件,可以看到本地和开发机上的插件,如果开发机没有安装python插件,点击安装:

单击vscode页面下方有一个X和!的位置可以快速打开vscode的控制台,然后进入TERMINAL。

TIPS:右上方的+可以新建一个TERMINAL。

2.1debug单个python文件

首先新建文件夹,写一个简单的python程序来做debug演示。

启动debug:

当代码在断点处停下来时,你可以查看和修改变量的值。在"Run and Debug"侧边栏的"Variables"(变量)部分,你可以看到当前作用域内的所有变量及其值。

单步执行代码

从左到右一次是;

  • 1: continue: 继续运行到下一个断点

  • 2: step over:跳过,可以理解为运行当前行代码,不进入具体的函数或者方法。

  • 3: step into: 进入函数或者方法。如果当行代码存在函数或者方法时,进入代码该函数或者方法。如果当行代码没有函数或者方法,则等价于step over。

  • 4: step out:退出函数或者方法, 返回上一层。

  • 5: restart:重新启动debug

  • 6: stop:终止debug

改动代码后运行:

2.2在vscode使用命令行进行debug

当py文件有很多参数和复杂文件关系时,直接使用命令行来发起debug会是一个更好的选择。

vscode支持通过remote的方法连我们在命令行中发起的debug server。首先我们要配置一下debug的config。

首先我们要配置一下debug的config。

还是点击VSCode侧边栏的"Run and Debug"(运行和调试),单击"create a lauch.json file"

选择debugger时选择python debuger。选择debug config时选择remote attach就行,随后会让我们选择debug server的地址,因为我们是在本地debug,所以全都保持默认直接回车就可以了,也就是我们的server地址为localhost:5678。

debug命令行

现在vscode已经准备就绪,让我们来看看如何在命令行中发起debug。如果没有安装debugpy的话可以先通过pip install debugpy安装一下。

复制代码
python -m debugpy --listen 5678 --wait-for-client ./myscript.py
  • ./myscript.py可以替换为我们想要debug的python文件,后面可以和直接在命令行中启动python一样跟上输入的参数。记得要先在想要debug的python文件打好断点并保存。

  • --wait-for-client参数会让我们的debug server在等客户端连入后才开始运行debug。在这就是要等到我们在run and debug界面启动debug。

先在终端中发起debug server,然后再去vscode debug页面单击一下绿色箭头开启debug。

2.3对word_count.py文件进行debug

  • 创建文件

根据任务写函数word_count.py文件

python 复制代码
import string

def wordcount(text):
    punctuations = string.punctuation
    for punct in punctuations:
        text = text.replace(punct, '')
    words = text.lower().split()
    count_dict = {}
    for word in words:
        if word in count_dict:
            count_dict[word] += 1
        else:
            count_dict[word] = 1
    return count_dict

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.
"""
print(wordcount(text))

重复上面步骤

程序结果:

相关推荐
Li_RuiQi9 小时前
DAgger方法演进_独立学习笔记
笔记·学习·计算机视觉
Li_RuiQi13 小时前
DAgger与交互式模仿学习_ACT学习笔记
笔记·学习
He BianGu13 小时前
【笔记】C# 中BindingFlags的详细作用
笔记·c#
AI视觉网奇14 小时前
turtle 入门教程笔记
笔记
跨知易知识产权14 小时前
美国专利确权是什么,和专利诉讼有什么不一样?
笔记
杨逢昌工厂6S管理14 小时前
126-杨逢昌6S三环体系:越做越乱的现场熵增机理与基准化治理——一线现场诊断笔记
经验分享·笔记·职场和发展·学习方法
悟道书生14 小时前
若依 RBAC 权限控制学习笔记
java·网络·笔记·sql·学习·vue
陈哈哈111115 小时前
折腾了半天,总算把 Vim 9.2 装明白了
笔记
陈哈哈111115 小时前
折腾了半天,总算把 OpenGL 的开发环境给装明白了
笔记
深圳老胡16 小时前
STM32F103 硬件 SPI 与软件 IO 模拟 SPI 最高速度差异详解
笔记·stm32·单片机·代码规范·1024程序员节