欢迎光临
我们一直在努力

刷完这 150 道 Python 题(附答案),你的 Python 就彻底入门了

前言

        这套 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("在上下文中执行")

赞(0)
未经允许不得转载:171主机测评 » 刷完这 150 道 Python 题(附答案),你的 Python 就彻底入门了
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址