熬夜整理!Python入门必刷的100道实战编程题【附源码+详细解析】
2026/7/15 2:12:13 网站建设 项目流程

1. Python入门编程题精选

刚开始学习Python时,最头疼的就是不知道从哪里下手练习。我当年自学Python时,也是在网上到处找题目,但很多题目要么太难要么太简单,根本不适合新手。后来在企业做技术面试官,发现很多初级开发者连最基本的语法都写不利索。所以这次我特意整理了10个最适合入门的Python题目,都是企业面试和实际开发中最常用的基础语法。

先来看第一个经典题目:数字排列组合。题目要求用1、2、3、4这四个数字,能组成多少个互不相同且无重复数字的三位数?这个问题考察的是对循环和条件判断的掌握。我第一次写这个程序时,用了三层嵌套for循环,后来发现其实可以用itertools库的permutations函数简化:

from itertools import permutations digits = [1, 2, 3, 4] count = 0 for p in permutations(digits, 3): print(p[0], p[1], p[2]) count += 1 print(f"总共有{count}种组合")

第二个必刷题是企业奖金计算。这个题目模拟了真实业务场景中的分段计算需求,考察的是对条件分支的理解。很多新手会写一堆if-else,其实可以用更优雅的字典方式实现:

profit = int(input("请输入利润金额(元): ")) thresholds = [1000000, 600000, 400000, 200000, 100000, 0] rates = [0.01, 0.015, 0.03, 0.05, 0.075, 0.1] bonus = 0 for i in range(len(thresholds)): if profit > thresholds[i]: bonus += (profit - thresholds[i]) * rates[i] profit = thresholds[i] print("应发奖金:", bonus)

2. Python核心数据结构实战

掌握Python的数据结构是进阶的关键。我见过不少开发者工作3年还在用列表处理所有问题,完全不知道字典和集合的优势。下面这组题目专门训练数据结构的选择和使用技巧。

列表去重是个经典问题。新手可能会用双重循环,但Python老手都知道用集合的特性:

def remove_duplicates(lst): return list(set(lst)) # 保留原始顺序的写法 def remove_duplicates_ordered(lst): seen = set() return [x for x in lst if not (x in seen or seen.add(x))]

字典合并是实际开发中经常遇到的需求。Python 3.9+提供了更简洁的操作符:

dict1 = {'a': 1, 'b': 2} dict2 = {'b': 3, 'c': 4} # 传统方法 merged = {**dict1, **dict2} # Python 3.9+ merged = dict1 | dict2

矩阵转置考察对列表推导式的掌握。这个题目我在面试中经常用,能看出候选人是否真正理解Python的简洁语法:

matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] transpose = [[row[i] for row in matrix] for i in range(len(matrix[0]))]

3. Python函数与算法精粹

函数是Python编程的基石,而算法则是程序员的必备技能。这部分题目都是我在技术面试中必问的,能快速判断候选人的编程水平。

斐波那契数列有至少5种实现方式,从最基础的递归到高级的生成器:

# 递归法(性能最差) def fib_recursive(n): if n <= 1: return n return fib_recursive(n-1) + fib_recursive(n-2) # 生成器法(最优雅) def fib_generator(): a, b = 0, 1 while True: yield a a, b = b, a + b # 获取前10项 fib = fib_generator() print([next(fib) for _ in range(10)])

素数判断算法考察对数学概念的理解和代码优化能力。我见过的最优解是这样的:

def is_prime(n): if n <= 1: return False if n == 2: return True if n % 2 == 0: return False max_divisor = int(n**0.5) + 1 for i in range(3, max_divisor, 2): if n % i == 0: return False return True

快速排序是算法面试的常客。Python风格的实现非常简洁:

def quicksort(lst): if len(lst) <= 1: return lst pivot = lst[len(lst)//2] left = [x for x in lst if x < pivot] middle = [x for x in lst if x == pivot] right = [x for x in lst if x > pivot] return quicksort(left) + middle + quicksort(right)

4. Python实战项目演练

最后这部分是小型项目实战,把前面学到的知识综合运用。这些项目都是我带新人时用的真实案例,特别适合写到简历中。

文件加密工具结合了文件操作和加密算法:

import hashlib def encrypt_file(input_file, output_file, key): with open(input_file, 'rb') as f: data = f.read() # 使用SHA256生成加密密钥 hash_key = hashlib.sha256(key.encode()).digest() encrypted = bytearray() for i in range(len(data)): encrypted.append(data[i] ^ hash_key[i % len(hash_key)]) with open(output_file, 'wb') as f: f.write(encrypted)

单词统计工具展示了文本处理的常用技巧:

from collections import Counter import re def word_count(file_path, top_n=10): with open(file_path, 'r', encoding='utf-8') as f: text = f.read().lower() words = re.findall(r'\b\w+\b', text) return Counter(words).most_common(top_n)

简易爬虫框架演示了网络请求和HTML解析:

import requests from bs4 import BeautifulSoup def simple_crawler(url, max_depth=2): visited = set() def crawl(url, depth): if depth > max_depth or url in visited: return try: print(f"Crawling: {url}") response = requests.get(url, timeout=5) visited.add(url) soup = BeautifulSoup(response.text, 'html.parser') # 提取所有链接 for link in soup.find_all('a', href=True): next_url = link['href'] if next_url.startswith('http'): crawl(next_url, depth + 1) except Exception as e: print(f"Error crawling {url}: {e}") crawl(url, 0)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询