Python编程入门:10道经典练习题附详细解答

包含编程籽料、学习路线图、爬虫代码、安装包等!【点击领取!】

前言
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漫画教程,手机也能学习

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值