返回

几道趣味 Python 热身题,助你敲开伯克利 CS61A 大门

闲谈

作为伯克利大学计算机科学专业 CS61A 课程的序章,这道作业旨在通过趣味横生的 Python 问题,激发你的编程兴趣。本篇博客将为你拆解这道作业中的三道精华习题,助你开启这段充满挑战与收获的编程之旅。

第一题:遍历列表,精准取值

给定一个整数列表 nums,要求你返回该列表中所有偶数的和。

def sum_even_numbers(nums):
    """
    计算列表中所有偶数的和。

    Args:
        nums: 输入整数列表。

    Returns:
        偶数和。
    """
    sum = 0
    for num in nums:
        if num % 2 == 0:
            sum += num
    return sum

第二题:字符串处理,巧妙反转

给定一个字符串 s,要求你返回该字符串反转后的结果。

def reverse_string(s):
    """
    反转字符串。

    Args:
        s: 输入字符串。

    Returns:
        反转后的字符串。
    """
    reversed_s = ""
    for i in range(len(s) - 1, -1, -1):
        reversed_s += s[i]
    return reversed_s

第三题:字符串查找,高效匹配

给定一个字符串 text 和一个模式字符串 pattern,要求你返回 patterntext 中首次出现的索引。若 pattern 不存在于 text 中,则返回 -1

def find_pattern(text, pattern):
    """
    查找模式字符串在文本中的首次出现位置。

    Args:
        text: 输入文本字符串。
        pattern: 输入模式字符串。

    Returns:
        模式字符串在文本中的首次出现位置,若不存在则返回 -1。
    """
    i = 0
    j = 0
    while i < len(text) and j < len(pattern):
        if text[i] == pattern[j]:
            j += 1
        else:
            i = i - j + 1
            j = 0
    if j == len(pattern):
        return i - j + 1
    else:
        return -1

结语

CS61A 课程的这道作业以其趣味性十足的问题设计,让初学者也能轻松入门 Python 编程。通过对这三道题目的剖析,你不仅可以提升自己的编程技能,更能领略到计算机科学的魅力。保持日拱一卒的学习精神,在编程的道路上不断探索和收获!