书生大模型实战营(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))

重复上面步骤

程序结果:

相关推荐
向上的车轮1 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab
躺着听Jay1 小时前
Oracle-相关笔记
数据库·笔记·oracle
田梓燊2 小时前
数学复习笔记 19
笔记·线性代数·机器学习
逼子格2 小时前
硬件工程师笔记——二极管Multisim电路仿真实验汇总
笔记·嵌入式硬件·硬件工程师·multisim·硬件工程师学习·电子器件·电路图
龙湾开发3 小时前
计算机图形学编程(使用OpenGL和C++)(第2版)学习笔记 10.增强表面细节(二)法线贴图
c++·笔记·学习·图形渲染·贴图
liang_20263 小时前
【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)
数据结构·笔记·学习·算法·平面·总结
汇能感知3 小时前
光谱相机的空间分辨率和时间分辨率
经验分享·笔记·科技
lwewan4 小时前
26考研408目录汇总~
笔记·考研
ljt27249606614 小时前
Compose笔记(二十三)--多点触控
笔记·android jetpack
2303_Alpha6 小时前
深度学习入门:深度学习(完结)
人工智能·笔记·python·深度学习·神经网络·机器学习