Python 经典代码:提升您编程技能的 10 个示例320


导言

Python 作为一种强大且多用途的语言,以其简洁性和可读性而闻名。在 Python 的广泛代码库中,一些经典代码示例展示了该语言的优势,并为程序员提供了宝贵的见解。本文将探讨 10 个这样的经典代码示例,从基础概念到高级技术,帮助您提升编程技能。

1. FizzBuzz

一个经典的编程练习,它测试对条件逻辑和循环的理解。要求您打印从 1 到 100 的数字,但满足以下条件:如果数字可以被 3 整除,则打印 "Fizz";如果可以被 5 整除,则打印 "Buzz";如果可以同时被 3 和 5 整除,则打印 "FizzBuzz"。
for i in range(1, 101):
if i % 3 == 0 and i % 5 == 0:
print("FizzBuzz")
elif i % 3 == 0:
print("Fizz")
elif i % 5 == 0:
print("Buzz")
else:
print(i)

2. 斐波那契数列

另一个经典练习,它展示了迭代和递归。要求您生成斐波那契数列的前 n 个数,其中每个数字是它前面两个数字的和。
# 迭代方法
def fibonacci_iterative(n):
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
# 递归方法
def fibonacci_recursive(n):
if n < 2:
return n
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)

3. 素数生成器

使用素数生成器,您可以有效地生成素数列表。素数是只能被自己和 1 整除的正整数。
def prime_generator():
prime_numbers = [2]
number = 3
while True:
is_prime = True
for prime in prime_numbers:
if number % prime == 0:
is_prime = False
break
if is_prime:
(number)
yield number
number += 2

4. 最长公共子序列

最长公共子序列 (LCS) 问题涉及寻找两个字符串之间的最长公共子序列。它在自然语言处理和生物信息学等领域有应用。
def longest_common_subsequence(str1, str2):
m, n = len(str1), len(str2)
dp = [[0] * (n + 1) for _ in range(m + 1)]
for i in range(1, m + 1):
for j in range(1, n + 1):
if str1[i - 1] == str2[j - 1]:
dp[i][j] = dp[i - 1][j - 1] + 1
else:
dp[i][j] = max(dp[i - 1][j], dp[i][j - 1])
return dp[m][n]

5. 快速排序

快速排序是一种高效的排序算法,它使用分治法。它反复选择一个基准元素,然后将数组分为两部分:小于基准元素和大于基准元素的元素。
def quick_sort(arr):
if len(arr) pivot]
return quick_sort(left) + middle + quick_sort(right)

6. 二分查找

二分查找是一种快速有效的搜索算法,它通过将列表或数组一分为二来查找所需的元素。它基于数组是有序的前提。
def binary_search(arr, target):
left, right = 0, len(arr) - 1
while left

2024-10-14


上一篇:逻辑回归在 Python 中的实战指南

下一篇:Python 中读取文件的多种方式