包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】
前言
Python作为当今最受欢迎的编程语言之一,以其简洁的语法和强大的功能吸引了无数开发者。对于初学者来说,通过解决实际问题来学习Python是最有效的方法之一。本文将提供10道Python经典练习题,涵盖基础语法、数据结构、函数使用等核心知识点,每道题都附有详细解答和代码实现。
加粗样式练习题1:计算圆的面积和周长
题目:编写一个Python程序,接收用户输入的半径,计算并输出圆的面积和周长。
import math
def circle_calculations():
radius = float(input("请输入圆的半径: "))
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
print(f"圆的面积为: {area:.2f}")
print(f"圆的周长为: {circumference:.2f}")
# 调用函数
circle_calculations()
解答要点:
使用math.pi获取π值
**运算符用于计算平方
:.2f格式化输出保留两位小数
练习题2:判断闰年
题目:编写一个函数判断输入的年份是否是闰年。
def is_leap_year(year):
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
return True
else:
return False
# 测试用例
print(is_leap_year(2000)) # True
print(is_leap_year(1900)) # False
print(is_leap_year(2024)) # True
解答要点:
闰年规则:能被4整除但不能被100整除,或者能被400整除
使用布尔值直接返回判断结果
练习题3:字符串反转
题目:编写一个函数,实现字符串反转(不使用内置的[::-1]方法)。
def reverse_string(s):
reversed_str = ""
for char in s:
reversed_str = char + reversed_str
return reversed_str
# 测试
print(reverse_string("Python")) # nohtyP
print(reverse_string("Hello World")) # dlroW olleH
解答要点:
通过循环逐个字符构建反转字符串
字符串拼接顺序决定了反转效果
练习题4:统计字符出现次数
题目:编写一个函数,统计字符串中每个字符出现的次数。
def count_characters(s):
char_count = {}
for char in s:
char_count[char] = char_count.get(char, 0) + 1
return char_count
# 测试
print(count_characters("programming"))
# 输出: {'p': 1, 'r': 2, 'o': 1, 'g': 2, 'a': 1, 'm': 2, 'i': 1, 'n': 1}
解答要点:
使用字典存储字符和对应计数
dict.get(key, default)方法避免KeyError
练习题5:斐波那契数列
题目:编写一个函数生成斐波那契数列的前n项。
def fibonacci(n):
fib_sequence = [0, 1]
while len(fib_sequence) < n:
fib_sequence.append(fib_sequence[-1] + fib_sequence[-2])
return fib_sequence[:n]
# 测试
print(fibonacci(10))
# 输出: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
解答要点:
初始化前两项
循环计算后续项直到达到所需长度
处理n=0或1的特殊情况
练习题6:列表去重
题目:编写一个函数,去除列表中的重复元素,保持原有顺序。
def remove_duplicates(lst):
seen = set()
result = []
for item in lst:
if item not in seen:
seen.add(item)
result.append(item)
return result
# 测试
print(remove_duplicates([1, 2, 2, 3, 4, 4, 5]))
# 输出: [1, 2, 3, 4, 5]
解答要点:
使用集合set快速判断元素是否存在
保持原始顺序需要额外列表存储结果
练习题7:素数判断
题目:编写一个函数判断一个数是否为素数。
def is_prime(num):
if num <= 1:
return False
for i in range(2, int(num**0.5) + 1):
if num % i == 0:
return False
return True
# 测试
print(is_prime(17)) # True
print(is_prime(25)) # False
解答要点:
素数定义:大于1且只能被1和自身整除的数
优化:只需检查到平方根即可
练习题8:字典排序
题目:编写一个函数,按值对字典进行降序排序。
def sort_dict_by_value(d):
return dict(sorted(d.items(), key=lambda item: item[1], reverse=True))
# 测试
grades = {'Alice': 85, 'Bob': 92, 'Charlie': 78, 'David': 95}
print(sort_dict_by_value(grades))
# 输出: {'David': 95, 'Bob': 92, 'Alice': 85, 'Charlie': 78}
解答要点:
dict.items()获取键值对
sorted()函数配合lambda表达式排序
reverse=True实现降序
练习题9:计算器
题目:编写一个简单的四则运算计算器。
def calculator():
num1 = float(input("输入第一个数字: "))
operator = input("输入运算符(+, -, *, /): ")
num2 = float(input("输入第二个数字: "))
if operator == '+':
result = num1 + num2
elif operator == '-':
result = num1 - num2
elif operator == '*':
result = num1 * num2
elif operator == '/':
if num2 == 0:
return "错误: 除数不能为零"
result = num1 / num2
else:
return "错误: 无效运算符"
return f"结果: {result}"
# 调用
print(calculator())
解答要点:
基本的输入输出处理
运算符判断和错误处理
除零检查
练习题10:文件单词统计
题目:编写一个程序统计文本文件中各单词的出现频率。
import re
from collections import defaultdict
def word_count(filename):
word_counts = defaultdict(int)
with open(filename, 'r', encoding='utf-8') as file:
for line in file:
words = re.findall(r'\b\w+\b', line.lower())
for word in words:
word_counts[word] += 1
return dict(word_counts)
# 测试前需要准备一个文本文件
print(word_count('sample.txt'))
解答要点:
使用正则表达式提取单词
defaultdict简化计数逻辑
文件操作和编码处理
总结
这10道Python练习题涵盖了:
基础数学运算
条件判断
字符串操作
数据结构处理
算法实现
文件操作
实际应用场景
每道题都展示了Python的不同特性和编程技巧。建议读者:
先尝试自己解决这些问题
比较自己的解决方案与提供的答案
修改参数进行更多测试
尝试扩展题目功能
编程能力的提升离不开持续的练习和实践,希望这些练习题能帮助你巩固Python基础,为进一步学习打下坚实基础。
最后:
希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!
文末福利
最后这里免费分享给大家一份Python全套学习资料,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。
包含编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!
① Python所有方向的学习路线图,清楚各个方向要学什么东西
② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
③ 100多个Python实战案例,学习不再是只会理论
④ 华为出品独家Python漫画教程,手机也能学习