前言
这套 150 道 Python 练习题完全对标嵩天老师《Python程序设计基础》,覆盖了教材里Python基础语法、流程控制、函数、序列类型、字典集合、字符串、文件操作、异常处理、面向对象、模块包、标准库等所有核心知识点,难度从入门到进阶,特别适合初学 Python 的大学生练习。
不用着急把所有题目一次性做完,跟着自己的学习进度慢慢练就好。每道题的代码答案我都会陆续更新在博客主页,大家可以对照参考。
最后想强调的是:一定要手动敲代码,遇到报错别着急用 AI 直接找答案,试着自己排查、调试,在解决报错的过程中才能真正理解知识点,打好编程基础。
一、Python基础入门 15题
第1题:输出 Hello, Python!,熟悉Python程序基本结构
print("Hello, Python!")
第2题:定义整数、浮点数、字符串、布尔类型变量并输出
a = 10
b = 3.14
c = "Python"
d = True
print(a, b, c, d)
第3题:输入两个整数,计算其和、差、积、商
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print(f"和:{a + b}")
print(f"差:{a – b}")
print(f"积:{a * b}")
print(f"商:{a / b}")
第4题:输入圆半径,计算圆的周长和面积
import math
r = float(input("请输入圆半径:"))
print(f"周长:{2 * math.pi * r}")
print(f"面积:{math.pi * r * r}")
第5题:求两个整数的余数,掌握 % 运算符
a = int(input("请输入第一个整数:"))
b = int(input("请输入第二个整数:"))
print(f"{a} % {b} = {a % b}")
第6题:验证 ** 幂运算和 // 整除运算
a = 10
b = 3
print(f"10 ** 3 = {a ** b}")
print(f"10 // 3 = {a // b}")
第7题:计算表达式 (3 + 4) * 5 – 6 / 2 的值
result = (3 + 4) * 5 – 6 / 2
print(f"(3+4)*5-6/2 = {result}")
第8题:输入长方形长和宽,计算面积和周长
length = float(input("请输入长方形的长:"))
width = float(input("请输入长方形的宽:"))
print(f"面积:{length * width}")
print(f"周长:{2 * (length + width)}")
第9题:交换两个变量的值(Python特有方式)
a = 3
b = 5
print(f"交换前:a={a}, b={b}")
a, b = b, a
print(f"交换后:a={a}, b={b}")
第10题:使用 eval() 计算用户输入的表达式
expr = input("请输入一个数学表达式:")
result = eval(expr)
print(f"计算结果:{result}")
第11题:输入两个数,输出较大的数
a = float(input("请输入第一个数:"))
b = float(input("请输入第二个数:"))
print(f"较大的数:{max(a, b)}")
第12题:输出数字的二进制、八进制、十六进制形式
n = int(input("请输入一个整数:"))
print(f"二进制:{bin(n)}")
print(f"八进制:{oct(n)}")
print(f"十六进制:{hex(n)}")
第13题:输入一个实数,输出其整数部分和小数部分
num = float(input("请输入一个实数:"))
integer = int(num)
decimal = num – integer
print(f"整数部分:{integer}")
print(f"小数部分:{decimal}")
第14题:查看变量的数据类型
a = 10
b = 3.14
c = "Python"
d = True
print(type(a), type(b), type(c), type(d))
第15题:输入矩形长和宽,计算对角线长度
import math
length = float(input("请输入矩形的长:"))
width = float(input("请输入矩形的宽:"))
diagonal = math.sqrt(length ** 2 + width ** 2)
print(f"对角线长度:{diagonal}")
二、流程控制(顺序、选择、循环)20题
第16题:输入一个字符,输出其 Unicode 编码
c = input("请输入一个字符:")
print(f"Unicode编码:{ord(c)}")
第17题:输入总秒数,换算成小时、分钟、秒
total = int(input("请输入总秒数:"))
h = total // 3600
m = (total % 3600) // 60
s = total % 60
print(f"{h}小时{m}分钟{s}秒")
第18题:判断一个整数是正数、负数还是零
n = int(input("请输入一个整数:"))
if n > 0:
print("正数")
elif n < 0:
print("负数")
else:
print("零")
第19题:输入三个数,输出最大值
a = float(input("请输入第一个数:"))
b = float(input("请输入第二个数:"))
c = float(input("请输入第三个数:"))
print(f"最大值:{max(a, b, c)}")
第20题:判断一个年份是否为闰年
year = int(input("请输入年份:"))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"{year}年是闰年")
else:
print(f"{year}年不是闰年")
第21题:输入成绩,输出等级:90+A、80–89B、70–79C、60–69D、<60E
score = int(input("请输入成绩:"))
if score >= 90:
print("A")
elif score >= 80:
print("B")
elif score >= 70:
print("C")
elif score >= 60:
print("D")
else:
print("E")
第22题:输入三边,判断能否构成三角形
a = float(input("请输入第一条边:"))
b = float(input("请输入第二条边:"))
c = float(input("请输入第三条边:"))
if a + b > c and a + c > b and b + c > a:
print("能构成三角形")
else:
print("不能构成三角形")
第23题:输入1–7,输出对应星期几
n = int(input("请输入1-7:"))
weeks = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
if 1 <= n <= 7:
print(weeks[n – 1])
else:
print("输入错误")
第24题:输入月份,输出该月天数(考虑闰年)
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if month == 2:
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print("29天")
else:
print("28天")
else:
print(f"{days_in_month[month – 1]}天")
第25题:输出1–100所有整数
for i in range(1, 101):
print(i, end=" ")
第26题:计算1–100的累加和
total = sum(range(1, 101))
print(f"1-100累加和:{total}")
第27题:计算1–10的阶乘
result = 1
for i in range(1, 11):
result *= i
print(f"10! = {result}")
第28题:输出九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f"{j}*{i}={i*j}", end="\\t")
print()
第29题:输出斐波那契数列前20项
a, b = 1, 1
print(a, b, end=" ")
for _ in range(18):
a, b = b, a + b
print(b, end=" ")
第30题:判断一个数是否为素数
n = int(input("请输入一个整数:"))
is_prime = True
if n < 2:
is_prime = False
else:
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
is_prime = False
break
print(f"{n}是素数" if is_prime else f"{n}不是素数")
第31题:输入一个整数,求各位数字之和
n = input("请输入一个整数:")
total = sum(int(d) for d in n)
print(f"各位数字之和:{total}")
第32题:输入一个整数,逆序输出各位数字
n = input("请输入一个整数:")
print(n[::–1])
第33题:输出100–200之间所有素数
for n in range(100, 201):
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
break
else:
print(n, end=" ")
第34题:求两个正整数的最大公约数
a = int(input("请输入第一个正整数:"))
b = int(input("请输入第二个正整数:"))
while b:
a, b = b, a % b
print(f"最大公约数:{a}")
第35题:使用while循环实现猜数字游戏
import random
answer = random.randint(1, 100)
while True:
guess = int(input("请猜一个1-100的数字:"))
if guess > answer:
print("太大了")
elif guess < answer:
print("太小了")
else:
print("猜对了!")
break
三、函数 15题
第36题:定义无参函数,输出 Hello, Function!
def hello():
print("Hello, Function!")
hello()
第37题:定义函数求两个数的和
def add(a, b):
return a + b
print(f"3 + 5 = {add(3, 5)}")
第38题:定义函数判断一个数是否为偶数
def is_even(n):
return n % 2 == 0
n = int(input("请输入一个整数:"))
print(f"{n}是偶数" if is_even(n) else f"{n}是奇数")
第39题:定义函数求圆的面积
import math
def circle_area(r):
return math.pi * r * r
r = float(input("请输入圆半径:"))
print(f"圆面积:{circle_area(r)}")
第40题:定义函数实现两个数交换
def swap(a, b):
return b, a
x, y = 3, 5
print(f"交换前:x={x}, y={y}")
x, y = swap(x, y)
print(f"交换后:x={x}, y={y}")
第41题:定义函数求n的阶乘(递归)
def factorial(n):
if n == 0 or n == 1:
return 1
return n * factorial(n – 1)
n = int(input("请输入n:"))
print(f"{n}! = {factorial(n)}")
第42题:定义函数判断素数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
n = int(input("请输入一个整数:"))
print(f"{n}是素数" if is_prime(n) else f"{n}不是素数")
第43题:调用函数输出1–100所有素数
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
for i in range(1, 101):
if is_prime(i):
print(i, end=" ")
第44题:定义函数求列表最大值
def list_max(lst):
return max(lst)
arr = [3, 1, 4, 1, 5, 9, 2, 6]
print(f"列表最大值:{list_max(arr)}")
第45题:定义函数计算列表平均值
def list_avg(lst):
return sum(lst) / len(lst)
arr = [85, 90, 78, 88, 92]
print(f"列表平均值:{list_avg(arr)}")
第46题:递归求斐波那契数列第n项
def fibonacci(n):
if n == 1 or n == 2:
return 1
return fibonacci(n – 1) + fibonacci(n – 2)
n = int(input("请输入n:"))
print(f"斐波那契数列第{n}项:{fibonacci(n)}")
第47题:使用默认参数的函数
def greet(name, greeting="Hello"):
print(f"{greeting}, {name}!")
greet("Python")
greet("World", "Hi")
第48题:使用可变参数的函数
def sum_all(*args):
return sum(args)
print(sum_all(1, 2, 3))
print(sum_all(1, 2, 3, 4, 5))
第49题:使用关键字参数的函数
def print_info(name, age, **kwargs):
print(f"姓名:{name},年龄:{age}")
for k, v in kwargs.items():
print(f"{k}:{v}")
print_info("张三", 20, 性别="男", 专业="计算机")
第50题:lambda匿名函数的使用
square = lambda x: x ** 2
print(f"5的平方:{square(5)}")
# 排序使用
students = [("张三", 85), ("李四", 92), ("王五", 78)]
students.sort(key=lambda x: x[1], reverse=True)
print(students)
四、序列类型(列表、元组)15题
第51题:定义列表,输入10个整数并输出
lst = []
print("请输入10个整数:")
for _ in range(10):
lst.append(int(input()))
print("列表内容:", lst)
第52题:求列表所有元素的和
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(f"列表元素和:{sum(lst)}")
第53题:求列表的最大值和最小值
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
print(f"最大值:{max(lst)}")
print(f"最小值:{min(lst)}")
第54题:统计列表中正数、负数、零的个数
lst = [–3, 1, –4, 0, 5, –9, 2, 6, 0, –3]
positive = sum(1 for x in lst if x > 0)
negative = sum(1 for x in lst if x < 0)
zero = sum(1 for x in lst if x == 0)
print(f"正数:{positive}个,负数:{negative}个,零:{zero}个")
第55题:将列表元素逆序
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print("逆序后:", lst[::–1])
第56题:在列表中查找指定数值是否存在
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
target = int(input("请输入要查找的数:"))
if target in lst:
print("找到该数")
else:
print("未找到该数")
第57题:对列表进行升序排序
lst = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3]
lst.sort()
print("排序后:", lst)
第58题:列表推导式生成1-10的平方
squares = [x ** 2 for x in range(1, 11)]
print(squares)
第59题:定义元组并访问元素
t = (1, 2, 3, 4, 5)
print("元组:", t)
print("第一个元素:", t[0])
print("最后一个元素:", t[–1])
第60题:列表切片操作
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print("前3个:", lst[:3])
print("后3个:", lst[–3:])
print("偶数位置:", lst[::2])
print("逆序:", lst[::–1])
第61题:合并两个有序列表
lst1 = [1, 3, 5, 7, 9]
lst2 = [2, 4, 6, 8, 10]
merged = sorted(lst1 + lst2)
print(merged)
第62题:删除列表中的重复元素
lst = [1, 2, 2, 3, 3, 3, 4, 4, 5]
unique = list(set(lst))
print(unique)
第63题:获取列表中指定元素的索引
lst = ["a", "b", "c", "d", "e"]
print(lst.index("c"))
第64题:在列表指定位置插入元素
lst = [1, 2, 3, 4, 5]
lst.insert(2, 100)
print(lst)
第65题:列表嵌套(二维列表)遍历
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
for row in matrix:
for num in row:
print(num, end=" ")
print()
五、字典与集合 10题
第66题:定义字典并访问键值对
student = {"name": "张三", "age": 20, "score": 85}
print(student["name"])
print(student.get("age"))
第67题:遍历字典的所有键和值
student = {"name": "张三", "age": 20, "score": 85}
for key, value in student.items():
print(f"{key}: {value}")
第68题:添加和修改字典元素
student = {"name": "张三", "age": 20}
student["score"] = 85 # 添加
student["age"] = 21 # 修改
print(student)
第69题:删除字典元素
student = {"name": "张三", "age": 20, "score": 85}
del student["age"]
print(student)
第70题:字典统计字符出现次数
s = "hello world"
count = {}
for c in s:
count[c] = count.get(c, 0) + 1
print(count)
第71题:定义集合并添加元素
s = set()
s.add(1)
s.add(2)
s.add(3)
print(s)
第72题:集合的交集、并集、差集运算
a = {1, 2, 3, 4, 5}
b = {4, 5, 6, 7, 8}
print("交集:", a & b)
print("并集:", a | b)
print("差集:", a – b)
第73题:列表去重(利用集合)
lst = [1, 2, 2, 3, 3, 3, 4, 5]
unique = list(set(lst))
print(unique)
第74题:字典推导式
squares = {x: x ** 2 for x in range(1, 6)}
print(squares)
第75题:判断两个集合是否相等
a = {1, 2, 3}
b = {3, 2, 1}
print(a == b) # True,集合无序
六、字符串处理 10题
第76题:统计字符串长度
s = "Hello, Python!"
print(f"字符串长度:{len(s)}")
第77题:字符串大小写转换
s = "Hello, Python!"
print("大写:", s.upper())
print("小写:", s.lower())
print("首字母大写:", s.capitalize())
第78题:判断字符串是否为回文
s = input("请输入字符串:")
if s == s[::–1]:
print("是回文字符串")
else:
print("不是回文字符串")
第79题:字符串分割与连接
s = "apple,banana,orange"
fruits = s.split(",")
print("分割后:", fruits)
print("连接后:", "-".join(fruits))
第80题:去除字符串两端空白
s = " Hello, Python! "
print("去除两端空白:", s.strip())
print("去除左端:", s.lstrip())
print("去除右端:", s.rstrip())
第81题:字符串查找与替换
s = "Hello, Python!"
print("'Python'的位置:", s.find("Python"))
print("替换后:", s.replace("Python", "World"))
第82题:字符串格式化输出
name = "张三"
age = 20
print(f"姓名:{name},年龄:{age}")
print("姓名:{},年龄:{}".format(name, age))
第83题:统计字符串中字母个数
s = "Hello123World456"
count = sum(1 for c in s if c.isalpha())
print(f"字母个数:{count}")
第84题:字符串切片操作
s = "Hello, Python!"
print("前5个字符:", s[:5])
print("后6个字符:", s[–6:])
print("每隔一个字符:", s[::2])
第85题:判断字符串是否以指定前缀开头/后缀结尾
s = "hello.py"
print("是否以'hello'开头:", s.startswith("hello"))
print("是否以'.py'结尾:", s.endswith(".py"))
七、文件操作 10题
第86题:向文本文件写入内容
with open("data.txt", "w", encoding="utf-8") as f:
f.write("Hello, Python!\\n")
f.write("这是第二行")
print("写入完成")
第87题:读取文本文件全部内容
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
print(content)
第88题:逐行读取文本文件
with open("data.txt", "r", encoding="utf-8") as f:
for line in f:
print(line.strip())
第89题:向文件追加内容
with open("data.txt", "a", encoding="utf-8") as f:
f.write("\\n这是追加的内容")
第90题:统计文本文件中字符个数
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
print(f"字符个数:{len(content)}")
第91题:复制文本文件
with open("source.txt", "r", encoding="utf-8") as src:
with open("target.txt", "w", encoding="utf-8") as dst:
dst.write(src.read())
第92题:读取CSV格式数据
with open("data.csv", "r", encoding="utf-8") as f:
for line in f:
row = line.strip().split(",")
print(row)
第93题:JSON文件读写
import json
data = {"name": "张三", "age": 20}
# 写入
with open("data.json", "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False)
# 读取
with open("data.json", "r", encoding="utf-8") as f:
loaded = json.load(f)
print(loaded)
第94题:检查文件是否存在
import os
if os.path.exists("data.txt"):
print("文件存在")
else:
print("文件不存在")
第95题:获取文件大小
import os
size = os.path.getsize("data.txt")
print(f"文件大小:{size}字节")
八、异常处理 10题
第96题:捕获除零异常
try:
a = 10 / 0
except ZeroDivisionError:
print("除数不能为0")
第97题:捕获多个异常
try:
n = int(input("请输入一个整数:"))
result = 10 / n
except ValueError:
print("输入不是有效的整数")
except ZeroDivisionError:
print("不能除以零")
第98题:使用else子句
try:
n = int(input("请输入一个整数:"))
except ValueError:
print("输入错误")
else:
print(f"你输入的是:{n}")
第99题:使用finally子句
try:
f = open("data.txt", "r")
content = f.read()
except FileNotFoundError:
print("文件不存在")
finally:
if 'f' in locals():
f.close()
print("执行完毕")
第100题:抛出自定义异常
def check_age(age):
if age < 0:
raise ValueError("年龄不能为负数")
return age
try:
check_age(–1)
except ValueError as e:
print(e)
第101题:自定义异常类
class MyError(Exception):
def __init__(self, msg):
self.msg = msg
try:
raise MyError("自定义异常")
except MyError as e:
print(e.msg)
第102题:获取异常详细信息
import traceback
try:
10 / 0
except Exception as e:
print(f"异常类型:{type(e).__name__}")
print(f"异常信息:{e}")
第103题:输入验证(循环直到正确)
while True:
try:
n = int(input("请输入一个整数:"))
break
except ValueError:
print("输入无效,请重试")
print(f"你输入的是:{n}")
第104题:断言assert的使用
def divide(a, b):
assert b != 0, "除数不能为0"
return a / b
print(divide(10, 2))
第105题:异常嵌套
try:
try:
10 / 0
except ZeroDivisionError:
print("内层捕获除零异常")
raise # 重新抛出
except:
print("外层捕获异常")
九、面向对象编程 15题
第106题:定义简单的类
class Person:
pass
p = Person()
print(p)
第107题:类的属性和方法
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def say_hello(self):
print(f"你好,我是{self.name},今年{self.age}岁")
p = Person("张三", 20)
p.say_hello()
第108题:封装(私有属性)
class Person:
def __init__(self, name, age):
self._name = name
self._age = age
def get_name(self):
return self._name
def set_age(self, age):
if age > 0:
self._age = age
p = Person("张三", 20)
print(p.get_name())
第109题:继承
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
print("汪汪")
dog = Dog()
dog.speak()
第110题:方法重写
class Animal:
def speak(self):
print("动物叫")
class Dog(Animal):
def speak(self):
print("汪汪")
dog = Dog()
dog.speak()
第111题:super()调用父类方法
class Person:
def __init__(self, name):
self.name = name
class Student(Person):
def __init__(self, name, student_id):
super().__init__(name)
self.student_id = student_id
s = Student("张三", "1001")
print(s.name, s.student_id)
第112题:类属性和实例属性
class Counter:
count = 0 # 类属性
def __init__(self):
Counter.count += 1
c1 = Counter()
c2 = Counter()
print(Counter.count) # 2
第113题:静态方法和类方法
class Math:
@staticmethod
def add(a, b):
return a + b
@classmethod
def info(cls):
print(f"这是{cls.__name__}类")
print(Math.add(3, 5))
Math.info()
第114题:魔术方法 __str__
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person(name={self.name}, age={self.age})"
p = Person("张三", 20)
print(p)
第115题:运算符重载
class Vector:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
def __str__(self):
return f"({self.x}, {self.y})"
v1 = Vector(1, 2)
v2 = Vector(3, 4)
print(v1 + v2)
第116题:多态
class Animal:
def speak(self):
pass
class Dog(Animal):
def speak(self):
print("汪汪")
class Cat(Animal):
def speak(self):
print("喵喵")
def make_speak(animal):
animal.speak()
make_speak(Dog())
make_speak(Cat())
第117题:抽象基类
from abc import ABC, abstractmethod
class Shape(ABC):
@abstractmethod
def area(self):
pass
class Rectangle(Shape):
def __init__(self, w, h):
self.w = w
self.h = h
def area(self):
return self.w * self.h
r = Rectangle(3, 4)
print(r.area())
第118题:@property装饰器
class Person:
def __init__(self, birth_year):
self._birth_year = birth_year
@property
def age(self):
return 2024 – self._birth_year
p = Person(2000)
print(p.age) # 像访问属性一样调用方法
第119题:多重继承
class A:
def method_a(self):
print("A的方法")
class B:
def method_b(self):
print("B的方法")
class C(A, B):
pass
c = C()
c.method_a()
c.method_b()
第120题:组合(has-a关系)
class Engine:
def start(self):
print("引擎启动")
class Car:
def __init__(self):
self.engine = Engine()
def start(self):
self.engine.start()
print("汽车启动")
car = Car()
car.start()
十、模块与包 10题
第121题:导入标准库模块
import math
print(math.pi)
print(math.sqrt(16))
第122题:导入模块中的特定函数
from math import sqrt, pi
print(pi)
print(sqrt(16))
第123题:模块别名
import math as m
print(m.pi)
第124题:导入所有内容(不推荐)
from math import *
print(pi)
print(sqrt(16))
第125题:查看模块内容
import math
print(dir(math))
第126题:__name__变量的使用
if __name__ == "__main__":
print("这个脚本正在被直接运行")
else:
print("这个脚本正在被导入")
第127题:创建简单的自定义模块
# 假设保存为 mymodule.py
def greet(name):
return f"Hello, {name}!"
# 在其他文件中使用
# from mymodule import greet
# print(greet("Python"))
第128题:__all__ 变量
# mymodule.py
__all__ = ["func1", "func2"]
def func1():
pass
def func2():
pass
def func3(): # 不会被 import * 导入
pass
第129题:包的导入
# 目录结构:
# mypackage/
# __init__.py
# module1.py
# module2.py
# from mypackage import module1
# from mypackage.module1 import func
第130题:第三方库安装与导入
# pip install requests
import requests
# response = requests.get("https://www.example.com")
十一、标准库常用功能 10题
第131题:datetime处理日期时间
from datetime import datetime, date
now = datetime.now()
print("当前时间:", now)
print("今天日期:", date.today())
print("格式化:", now.strftime("%Y-%m-%d %H:%M:%S"))
第132题:random随机数
import random
print("0-1随机数:", random.random())
print("1-10整数:", random.randint(1, 10))
print("随机选择:", random.choice(["a", "b", "c"]))
第133题:time时间模块
import time
print("时间戳:", time.time())
print("休眠1秒…")
time.sleep(1)
print("醒来了")
第134题:os操作系统接口
import os
print("当前目录:", os.getcwd())
print("环境变量:", os.environ.get("PATH"))
第135题:sys系统相关
import sys
print("Python版本:", sys.version)
print("命令行参数:", sys.argv)
print("模块搜索路径:", sys.path)
第136题:re正则表达式
import re
text = "我的邮箱是test@example.com"
pattern = r"\\w+@\\w+\\.\\w+"
match = re.search(pattern, text)
if match:
print("找到邮箱:", match.group())
第137题:collections高级容器
from collections import Counter, defaultdict
# 计数
s = "abracadabra"
print(Counter(s))
# 默认字典
d = defaultdict(int)
d["a"] += 1
print(d)
第138题:itertools迭代工具
import itertools
# 排列
for p in itertools.permutations([1, 2, 3], 2):
print(p)
# 组合
for c in itertools.combinations([1, 2, 3], 2):
print(c)
第139题:json处理
import json
data = {"name": "张三", "age": 20}
json_str = json.dumps(data, ensure_ascii=False)
print("JSON字符串:", json_str)
loaded = json.loads(json_str)
print("解析后:", loaded)
第140题:base64编码
import base64
data = "Hello, Python!".encode()
encoded = base64.b64encode(data)
print("编码后:", encoded)
decoded = base64.b64decode(encoded)
print("解码后:", decoded.decode())
十二、Pythonic特性 10题
第141题:列表推导式
# 生成1-10的平方
squares = [x ** 2 for x in range(1, 11)]
print(squares)
# 带条件的推导式
evens = [x for x in range(1, 11) if x % 2 == 0]
print(evens)
第142题:字典推导式
# 键为数字,值为平方
square_dict = {x: x ** 2 for x in range(1, 6)}
print(square_dict)
第143题:集合推导式
# 生成唯一的偶数
nums = [1, 2, 2, 3, 4, 4, 5]
unique_evens = {x for x in nums if x % 2 == 0}
print(unique_evens)
第144题:生成器表达式
# 生成器,节省内存
gen = (x ** 2 for x in range(1, 11))
for num in gen:
print(num, end=" ")
第145题:enumerate遍历索引和值
fruits = ["apple", "banana", "orange"]
for i, fruit in enumerate(fruits, 1):
print(f"{i}. {fruit}")
第146题:zip并行遍历
names = ["张三", "李四", "王五"]
scores = [85, 92, 78]
for name, score in zip(names, scores):
print(f"{name}: {score}")
第147题:解包操作
# 列表解包
a, b, *rest = [1, 2, 3, 4, 5]
print(a, b, rest)
# 字典解包
d1 = {"a": 1, "b": 2}
d2 = {"c": 3, **d1}
print(d2)
第148题:三元表达式
a = 10
b = 20
max_val = a if a > b else b
print(f"较大值:{max_val}")
第149题:装饰器基础
def logger(func):
def wrapper(*args, **kwargs):
print(f"调用函数:{func.__name__}")
return func(*args, **kwargs)
return wrapper
@logger
def add(a, b):
return a + b
print(add(3, 5))
第150题:上下文管理器(with语句)
# 自定义上下文管理器
class MyContext:
def __enter__(self):
print("进入上下文")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("退出上下文")
return False
with MyContext() as ctx:
print("在上下文中执行")
-171主机测评](https://www.171host.com/wp-content/uploads/2026/09/20260903041509-6a98f44dd0a3a-220x150.png)


