直接做作业了
作业1
词频统计:
def wordcount(text):
# 移除前后的空白字符,并用正则表达式去除非字母、数字字符
text = text.strip()
text = re.sub(r'[^\w\s]', '', text)
# 过滤掉空字符串
textlist = list(filter(None, text.lower().split(' ')))
word_freq = {}
for word in textlist:
if word in word_freq:
word_freq[word] += 1
else:
word_freq[word] = 1
# 排个序?
sorted_word_freq = dict(sorted(word_freq.items(), key=lambda item: item[1], reverse=True))
return sorted_word_freq
作业2
关于使用vscode debug,之前一直是使用断点debug的,但是基础只是还不是特别牢固,mark一下:
可以使用“Run and Debug”侧边栏顶部的按钮来单步执行代码。这样,你可以逐行运行代码,并查看每行代码执行后的效果。
debug面板各按钮功能介绍:
-
1
: continue: 继续运行到下一个断点 -
2
: step over:跳过,可以理解为运行当前行代码,不进入具体的函数或者方法。 -
3
: step into: 进入函数或者方法。如果当行代码存在函数或者方法时,进入代码该函数或者方法。如果当行代码没有函数或者方法,则等价于step over。 -
4
: step out:退出函数或者方法, 返回上一层。 -
5
: restart:重新启动debug -
6
: stop:终止debug
调试中的单步执行命令
在调试程序时,step over
、step into
和 step out
是三种常用的单步执行命令。它们用于控制调试器在代码中的移动方式,各自的作用和适用场景如下:
1. Step Over(跳过)
-
概念:执行当前行代码,但如果该行代码包含函数或方法调用,则不进入该函数或方法,而是直接执行完函数后跳到下一行代码。
-
使用场景:当你对当前行代码的函数或方法的内部实现不感兴趣,只想查看执行完这一行后,程序的变化或结果时,可以使用
Step Over
。 -
图示说明:
def add(a, b): return a + b x = 5 y = 10 result = add(x, y) # 当前行 print(result)
当调试到 result = add(x, y
) 这一行时,使用 Step Over
会直接跳到 print(result)
行,而不进入 add
函数。
2. Step Into(进入)
- 概念:如果当前行代码包含函数或方法调用,调试器会进入该函数或方法,逐行执行其内部代码。
- 使用场景:当你需要检查函数或方法的内部实现或细节,或找出某个函数调用中可能存在的问题时,使用
Step Into
。 - 图示说明:
def add(a, b):
return a + b
x = 5
y = 10
result = add(x, y) # 当前行
print(result)
调试到 result = add(x, y)
这一行时,使用 Step Into
会进入 add
函数内部进行调试,即进入 return a + b
行。
3. Step Out(退出)
- 概念:退出当前函数或方法,并返回到调用该函数或方法的地方,继续执行。
- 使用场景:当你在函数内部调试后,发现问题不在该函数内,或已经检查完该函数,想快速返回到上一层代码执行时,可以使用
Step Out
。 - 图示说明:
def add(a, b):
return a + b
def multiply(a, b):
return a * b
x = 5
y = 10
result = add(x, y)
result2 = multiply(x, y) # 当前行
print(result2)
调试进入 multiply
函数内部时,如果使用 Step Out
,会直接跳出 multiply
函数,返回到 print(result2)
这一行。
命令行调试截图:
可能自己对命令行调试还不是很擅长,感觉不如打断点…