在学习 Python 编程语言的过程中,通过不断练习来加深对基础概念、数据结构、算法和 Python 特性的理解是非常重要的。以下是 Python 100 道练习题,涵盖了从基础到进阶的各类问题,帮助你全面提高 Python 编程能力。
1. 基本语法与数据类型
-
打印 “Hello, World!”
编写一个程序,输出 “Hello, World!”。
print("Hello, World!")
-
变量交换
编写程序交换两个变量的值。
a = 5 b = 10 a, b = b, a print(a, b)
-
计算圆的面积
输入半径,计算并输出圆的面积。
import math radius = float(input("Enter radius: ")) area = math.pi * radius ** 2 print(f"The area of the circle is: { area}")
-
判断奇偶数
输入一个整数,判断它是奇数还是偶数。
number = int(input("Enter a number: ")) if number % 2 == 0: print("Even") else: print("Odd")
-
输入一个年份,判断是否为闰年
判断一个年份是否为闰年。
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")
-
打印九九乘法表
输出九九乘法表。
for i in range(1, 10): for j in range(1, i+1): print(f"{ i} * { j} = { i*j}", end="\t") print()
2. 控制结构与函数
-
计算数字之和
输入一个整数,计算从 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}")
-
生成斐波那契数列
输入一个整数,生成并输出前 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)
-
阶乘计算
输入一个整数,计算并输出该数的阶乘。
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}")
-
数字反转
输入一个整数,输出该数字的反转值。
num = int(input("Enter a number: ")) reversed_num = int(str(num)[::-1]) print(f"The reversed number is: { reversed_num}")
-
求最大公约数
输入两个数,计算它们的最大公约数(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. 数据结构与算法
-
查找列表中最大值
输入一个列表,输出其中的最大值。
numbers = list(map(int, input("Enter numbers: ").split())) max_value = max(numbers) print(f"The maximum value is: { max_value}")
-
合并两个列表
输入两个列表,合并并输出。
list1 = [1, 2, 3] list2 = [4, 5, 6] merged = list1 + list2 print(merged)
-
删除列表中的重复元素
输入一个列表,删除其中的重复元素。
lst = [1, 2, 2, 3, 4, 5, 5] unique_lst = list(set(lst)) print(unique_lst)
-
判断一个列表是否为回文
输入一个列表,判断它是否为回文。
lst = [1, 2, 3, 2, 1] if lst == lst[::-1]: print("Palindrome") else: print("Not palindrome")
-
冒泡排序
输入一个列表,对其进行冒泡排序。
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}")
-
查找列表中的元素
输入一个列表,查找是否包含某个元素。
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.")
-
统计字符串中各字符出现的次数
输入一个字符串,统计其中每个字符出现的次数。
from collections import Counter string = input("Enter a string: ") count = Counter(string) print(count)
4. 字符串操作
-
字符串反转
输入一个字符串,输出反转后的字符串。
string = input("Enter a string: ") reversed_string = string[::-1] print(f"Reversed string: { reversed_string}")
-
统计字符串的单词数
输入一个字符串,统计其中的单词数。
string = input("Enter a string: ") words = string.split() print(f"The number of words is: { len(words)}")
-
判断是否为回文字符串
输入一个字符串,判断它是否为回文。
string = input("Enter a string: ") if string == string[::-1]: print("Palindrome") else: print("Not palindrome")
-
删除字符串中的空格
输入一个字符串,删除其中的空格。
string = input("Enter a string: ") no_spaces = string.replace(" ", "") print(f"String without spaces: { no_spaces}")
-
字符串大小写转换
输入一个字符串,将其转换为大写或小写。
string = input("Enter a string: ") print(f"Uppercase: { string.upper()}") print(f"Lowercase: { string.lower()}")
5. 面向对象编程(OOP)
-
定义一个简单的类
创建一个表示“学生”的类,具有属性
name
和age
,并打印出学生的基本信息。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()
-
计算矩形的面积
创建一个矩形类,计算矩形的面积。
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()}")
-
继承与多态
创建一个基类
Animal
和子类Dog
,在子类中重写基类的speak
方法。class Animal: def speak(self): print("Animal speaks") class Dog(Animal): def speak(self): print("Woof!") dog = Dog() dog.speak()
6. 文件操作
-
读取文件内容
打开一个文件,读取并输出其中的内容。
with open("sample.txt", "r") as file: content = file.read() print(content)
-
写入文件
创建一个文件,写入一些内容。
with open("output.txt", "w") as file: file.write("Hello, this is a test file.\n")
-
逐行读取文件
打开文件,逐行读取并输出。
with open("sample.txt", "r") as file: for line in file: print(line.strip())
-
文件内容追加
打开文件进行内容追加。
with open("output.txt", "a") as file: file.write("Appending some content...\n")
7. 高级应用
-
使用装饰器进行函数缓存
使用装饰器缓存函数结果,提高效率。
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 的常用语法、数据结构、面向对象编程及更高级的应用。如果你有兴趣,我可以继续列出剩余的题目或者提供其他相关资源!