【学习笔记】L0G2000 Python 基础知识

123 阅读2分钟

背景

昨天刷公众号,突然接触到了《第四期书生大模型实战营》,这个不仅免费,教程还非常全面,对于刚入门大模型的小白来讲再合适不过了。我立即报名了,加入了群组并且按照任务要求和教程一步步完成了。以下是我今天的作业情况。

任务列表

  1. 完成Leetcode 383, 笔记中提交代码与leetcode提交通过截图
  2. 调用书生浦语API实现将非结构化文本转化成结构化json的例子。

完成情况

作业一

完成一道算法题。题目要求如下 : 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。

解题思路:

  1. 首先,判断magazineransomNote的长度,若长度小于ransomNote,因为题目要求每个字符只能用1次,则肯定构造不出来,直接返回False;
  2. 遍历magazine,统计每个字符出现的次数;
  3. 遍历ransomNote,统计每个字符出现的次数;
  4. 然后遍历ransomNote,比较每个字符的个数是否大于magazine中对应字符的个数,若大于,则返回False;
class Solution(object):
    def canConstruct(self, ransomNote, magazine):
        """
        :type ransomNote: str
        :type magazine: str
        :rtype: bool
        """
        if len(magazine) < len(ransomNote):
            return False
        ransom = self.count_chart(ransomNote)
        maga = self.count_chart(magazine)
        for key, value in ransom.items():
            if key not in maga:
                return False
            if value > maga[key]:
                return False
        return True


    def count_chart(self, items):
        result = {}
        for value in list(items):
            if value not in result:
                result[value] = 0
            result[value] = result[value] + 1
        return result

leetcode提交通过截图:

screenshot_2024-12-06_15-23-11.png

作业2

  1. 作业2提供的例子其中有一个小bug会导致报错修复bug,经过定位发现是因为代码对大模型输出的结果调用了json.loads进行解析,但是输出结果并不是json格式,需要进行提取。
  2. debug过程截图如下:

api-debug_res.png 4. 修复bug

res_json = json.load(res[res.index('{'): res.index('}') + 1]

修复后输出如下:

result.png

感受

通过这次实操,我对vscode debug过程有了更加深刻的理解,包括ssh概念及配置、conda的使用,pip命令等。我希望通过这次训练营能让自己对大模型有更加深刻的理解,也希望大家多多关注,强烈推荐。

附训练营链接:aicarrier.feishu.cn/wiki/QtJnwe…