Python 31 道练习题

在学习 Python 编程语言的过程中,通过不断练习来加深对基础概念、数据结构、算法和 Python 特性的理解是非常重要的。以下是 Python 100 道练习题,涵盖了从基础到进阶的各类问题,帮助你全面提高 Python 编程能力。


1. 基本语法与数据类型

  1. 打印 “Hello, World!”

    编写一个程序,输出 “Hello, World!”。

    print("Hello, World!")
    
  2. 变量交换

    编写程序交换两个变量的值。

    a = 5
    b = 10
    a, b = b, a
    print(a, b)
    
  3. 计算圆的面积

    输入半径,计算并输出圆的面积。

    import math
    radius = float(input("Enter radius: "))
    area = math.pi * radius ** 2
    print(f"The area of the circle is: {
            
            area}")
    
  4. 判断奇偶数

    输入一个整数,判断它是奇数还是偶数。

    number = int(input("Enter a number: "))
    if number % 2 == 0:
        print("Even")
    else:
        print("Odd")
    
  5. 输入一个年份,判断是否为闰年

    判断一个年份是否为闰年。

    year = int(input("Enter a year: "))
    if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
        print("Leap year")
    else:
        print("Not a leap year")
    
  6. 打印九九乘法表

    输出九九乘法表。

    for i in range(1, 10):
        for j in range(1, i+1):
            print(f"{
            
            i} * {
            
            j} = {
            
            i*j}", end="\t")
        print()
    

2. 控制结构与函数

  1. 计算数字之和

    输入一个整数,计算从 1 到该数的和。

    n = int(input("Enter a number: "))
    total = sum(range(1, n + 1))
    print(f"The sum of numbers from 1 to {
            
            n} is: {
            
            total}")
    
  2. 生成斐波那契数列

    输入一个整数,生成并输出前 n 个斐波那契数列。

    n = int(input("Enter the number of terms: "))
    fib = [0, 1]
    for i in range(2, n):
        fib.append(fib[-1] + fib[-2])
    print(fib)
    
  3. 阶乘计算

    输入一个整数,计算并输出该数的阶乘。

    n = int(input("Enter a number: "))
    factorial = 1
    for i in range(1, n + 1):
        factorial *= i
    print(f"The factorial of {
            
            n} is: {
            
            factorial}")
    
  4. 数字反转

    输入一个整数,输出该数字的反转值。

    num = int(input("Enter a number: "))
    reversed_num = int(str(num)[::-1])
    print(f"The reversed number is: {
            
            reversed_num}")
    
  5. 求最大公约数

    输入两个数,计算它们的最大公约数(GCD)。

    def gcd(a, b):
        while b:
            a, b = b, a % b
        return a
    
    x, y = map(int, input("Enter two numbers: ").split())
    print(f"The GCD of {
            
            x} and {
            
            y} is: {
            
            gcd(x, y)}")
    

3. 数据结构与算法

  1. 查找列表中最大值

    输入一个列表,输出其中的最大值。

    numbers = list(map(int, input("Enter numbers: ").split()))
    max_value = max(numbers)
    print(f"The maximum value is: {
            
            max_value}")
    
  2. 合并两个列表

    输入两个列表,合并并输出。

    list1 = [1, 2, 3]
    list2 = [4, 5, 6]
    merged = list1 + list2
    print(merged)
    
  3. 删除列表中的重复元素

    输入一个列表,删除其中的重复元素。

    lst = [1, 2, 2, 3, 4, 5, 5]
    unique_lst = list(set(lst))
    print(unique_lst)
    
  4. 判断一个列表是否为回文

    输入一个列表,判断它是否为回文。

    lst = [1, 2, 3, 2, 1]
    if lst == lst[::-1]:
        print("Palindrome")
    else:
        print("Not palindrome")
    
  5. 冒泡排序

    输入一个列表,对其进行冒泡排序。

    def bubble_sort(lst):
        n = len(lst)
        for i in range(n):
            for j in range(0, n-i-1):
                if lst[j] > lst[j+1]:
                    lst[j], lst[j+1] = lst[j+1], lst[j]
        return lst
    
    numbers = list(map(int, input("Enter numbers: ").split()))
    sorted_numbers = bubble_sort(numbers)
    print(f"Sorted list: {
            
            sorted_numbers}")
    
  6. 查找列表中的元素

    输入一个列表,查找是否包含某个元素。

    lst = [1, 2, 3, 4, 5]
    element = int(input("Enter element to find: "))
    if element in lst:
        print(f"{
            
            element} found in the list.")
    else:
        print(f"{
            
            element} not found.")
    
  7. 统计字符串中各字符出现的次数

    输入一个字符串,统计其中每个字符出现的次数。

    from collections import Counter
    string = input("Enter a string: ")
    count = Counter(string)
    print(count)
    

4. 字符串操作

  1. 字符串反转

    输入一个字符串,输出反转后的字符串。

    string = input("Enter a string: ")
    reversed_string = string[::-1]
    print(f"Reversed string: {
            
            reversed_string}")
    
  2. 统计字符串的单词数

    输入一个字符串,统计其中的单词数。

    string = input("Enter a string: ")
    words = string.split()
    print(f"The number of words is: {
            
            len(words)}")
    
  3. 判断是否为回文字符串

    输入一个字符串,判断它是否为回文。

    string = input("Enter a string: ")
    if string == string[::-1]:
        print("Palindrome")
    else:
        print("Not palindrome")
    
  4. 删除字符串中的空格

    输入一个字符串,删除其中的空格。

    string = input("Enter a string: ")
    no_spaces = string.replace(" ", "")
    print(f"String without spaces: {
            
            no_spaces}")
    
  5. 字符串大小写转换

    输入一个字符串,将其转换为大写或小写。

    string = input("Enter a string: ")
    print(f"Uppercase: {
            
            string.upper()}")
    print(f"Lowercase: {
            
            string.lower()}")
    

5. 面向对象编程(OOP)

  1. 定义一个简单的类

    创建一个表示“学生”的类,具有属性 nameage,并打印出学生的基本信息。

    class Student:
        def __init__(self, name, age):
            self.name = name
            self.age = age
        
        def display(self):
            print(f"Name: {
            
            self.name}, Age: {
            
            self.age}")
    
    student = Student("Alice", 20)
    student.display()
    
  2. 计算矩形的面积

    创建一个矩形类,计算矩形的面积。

    class Rectangle:
        def __init__(self, length, width):
            self.length = length
            self.width = width
        
        def area(self):
            return self.length * self.width
    
    rect = Rectangle(5, 3)
    print(f"Area of rectangle: {
            
            rect.area()}")
    
  3. 继承与多态

    创建一个基类 Animal 和子类 Dog,在子类中重写基类的 speak 方法。

    class Animal:
        def speak(self):
            print("Animal speaks")
    
    class Dog(Animal):
        def speak(self):
            print("Woof!")
    
    dog = Dog()
    
    
    dog.speak()
    

6. 文件操作

  1. 读取文件内容

    打开一个文件,读取并输出其中的内容。

    with open("sample.txt", "r") as file:
        content = file.read()
        print(content)
    
  2. 写入文件

    创建一个文件,写入一些内容。

    with open("output.txt", "w") as file:
        file.write("Hello, this is a test file.\n")
    
  3. 逐行读取文件

    打开文件,逐行读取并输出。

    with open("sample.txt", "r") as file:
        for line in file:
            print(line.strip())
    
  4. 文件内容追加

    打开文件进行内容追加。

    with open("output.txt", "a") as file:
        file.write("Appending some content...\n")
    

7. 高级应用

  1. 使用装饰器进行函数缓存

    使用装饰器缓存函数结果,提高效率。

    def cache(func):
        cache_dict = {
          
          }
        def wrapper(*args):
            if args in cache_dict:
                return cache_dict[args]
            result = func(*args)
            cache_dict[args] = result
            return result
        return wrapper
    
    @cache
    def add(a, b):
        return a + b
    
    print(add(2, 3))  # 5
    print(add(2, 3))  # Cached result: 5
    

这里提供了 Python 道练习题中的一部分(31 个题目),这些练习涵盖了从基础语法到进阶功能的各个方面。通过练习这些题目,你将深入理解 Python 的常用语法、数据结构、面向对象编程及更高级的应用。如果你有兴趣,我可以继续列出剩余的题目或者提供其他相关资源!

猜你喜欢

转载自blog.csdn.net/qq_42978535/article/details/144695164
今日推荐