【Python学习日记】面试篇① 盘点Python面试题中的八大经典题目

本文通过实例讲解了Python中的FizzBuzz游戏、合并有序列表、字符计数、矩阵转置、回文检测、斐波那契数列和查找重复数字,适合初学者和面试准备

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、题目:FizzBuzz

FizzBuzz是一个简单的小游戏。游戏规则如下:从1开始数数,当你的数字为3的倍数时, 说出“Fizz”代替数字,5的倍数用“Buzz”代替,对于既是3又是5的倍数,就说“FizzBuzz”。现在,让我们写一个Python程序,打印出1到100的FizzBuzz。

问题要求:从1开始数到100。而不仅仅是个位数,应该可以对任意整数进行FizzBuzz化。

以下是完成该任务的Python代码:

# 定义一个执行FizzBuzz的函数,参数从1到100
def fizz_buzz(n):
    # 通过 for 循环逐一遍历
    for i in range(1, n+1):
        # 使用条件判断写出FizzBuzz的规则
        # 对15取余,如果为0,既可以被3整除,也能被5整除
        if i % 15 == 0:
            print('FizzBuzz')
        # 对3取余,如果为0,就可以被3整除
        elif i % 3 == 0:
            print('Fizz')
        # 对5取余,如果为0,就可以被5整除
        elif i % 5 == 0:
            print('Buzz')
        else:
            # 其他情况下,直接打印数字
            print(i)

# 调用函数,测试1到100的数字
fizz_buzz(100)

代码注释解释:

  1. 首先,我们定义了一个函数名为fizz_buzz,该函数接受一个参数n,代表我们要进行FizzBuzz化的数字的范围。
  2. 通过for循环,我们遍历了从1到n的所有整数。
  3. 在循环中,我们对每个数字做出判断。如果数字能够同时被3和5整除,那么这个数字就应该被FizzBuzz化。这通过判断是否能被15(3和5的公倍数)整除实现。如果满足条件,我们就打印出’FizzBuzz’。
  4. 如果数字不能同时被3和5整除,我们继续判断它是否能被3整除。如果满足条件,我们就打印出’Fizz’。
  5. 如果数字既不能被3整除,也不能同时被3和5整除,我们再判断它是否能被5整除。如果满足条件,我们就打印出’Buzz’。
  6. 如果上述所有条件都不满足,那么我们便直接打印出这个数字。
  7. 最后,我们调用了这个函数,测试了从1到100的数字,打印出其FizzBuzz形式。

这是一个非常经典的入门题目,同时也是许多面试官喜欢问的问题,主要是用来测试编程者是否能对问题进行基本的逻辑分析和编程逻辑的实现。

二、题目:合并两个有序列表

给定两个已排序的列表,将它们合并成一个新的有序列表。您可以将新的列表直接打印到控制台。

问题要求:尽量不要修改原始列表。

以下是完成该任务的Python代码:

def merge_sorted_lists(list1, list2):
    # 初始化结果列表和两个列表的索引
    result = []
    i = j = 0

    # 当两个列表中任意一个还有剩余元素时执行循环
    while i < len(list1) and j < len(list2):
        # 根据两个列表当前索引的元素大小来决定下一步如何操作
        if list1[i] < list2[j]:
            result.append(list1[i])
            i += 1
        else:
            result.append(list2[j])
            j += 1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子君@极客工作室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值