
本文精选50个Python实用代码片段,涵盖基本操作、数据结构、算法、文件处理等常见场景。每个片段都配有说明和代码示例,帮助快速了解Python编程技巧。
a, b = 1, 2
a, b = b, a # 交换变量值
print(a, b) # 输出: 2 1x = 5
print(1 < x < 10) # 输出: Trueage = 20
status = "成年" if age >= 18 else "未成年"
print(status) # 输出: 成年text = "Python"
reversed_text = text[::-1]
print(reversed_text) # 输出: nohtyPitems = [1, 2, 2, 3, 4, 4, 5]
unique_items = list(set(items))
print(unique_items) # 输出: [1, 2, 3, 4, 5]squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]even_squares = [x**2 for x in range(10) if x % 2 == 0]
print(even_squares) # 输出: [0, 4, 16, 36, 64]nested_list = [[1, 2], [3, 4], [5, 6]]
flat_list = [item for sublist in nested_list for item in sublist]
print(flat_list) # 输出: [1, 2, 3, 4, 5, 6]numbers = [3, 1, 4, 1, 5, 9, 2]
max_val = max(numbers)
min_val = min(numbers)
print(f"最大值: {max_val}, 最小值: {min_val}")data = [5, 2, 8, 1, 9]
data.sort() # 升序排序
print(data) # 输出: [1, 2, 5, 8, 9]
data.sort(reverse=True) # 降序排序
print(data) # 输出: [9, 8, 5, 2, 1]squares_dict = {x: x**2 for x in range(5)}
print(squares_dict) # 输出: {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}dict1 = {'a': 1, 'b': 2}
dict2 = {'c': 3, 'd': 4}
merged = {**dict1, **dict2}
print(merged) # 输出: {'a': 1, 'b': 2, 'c': 3, 'd': 4}original = {'a': 1, 'b': 2, 'c': 3}
reversed_dict = {v: k for k, v in original.items()}
print(reversed_dict) # 输出: {1: 'a', 2: 'b', 3: 'c'}from collections import defaultdict
word_count = defaultdict(int)
words = ['apple', 'banana', 'apple', 'orange']
for word in words:
word_count[word] += 1
print(dict(word_count)) # 输出: {'apple': 2, 'banana': 1, 'orange': 1}from collections import OrderedDict
ordered = OrderedDict()
ordered['z'] = 1
ordered['a'] = 2
ordered['m'] = 3
print(list(ordered.keys())) # 输出: ['z', 'a', 'm']words = ['Hello', 'World', 'Python']
sentence = ' '.join(words)
print(sentence) # 输出: Hello World Pythontext = "apple,banana,orange"
fruits = text.split(',')
print(fruits) # 输出: ['apple', 'banana', 'orange']text = "I like Java"
new_text = text.replace("Java", "Python")
print(new_text) # 输出: I like Pythonname = "Alice"
age = 25
message = f"{name} is {age} years old"
print(message) # 输出: Alice is 25 years oldfilename = "document.pdf"
is_pdf = filename.endswith('.pdf')
is_doc = filename.startswith('doc')
print(f"PDF文件: {is_pdf}, 文档文件: {is_doc}")def sum_numbers(*args):
return sum(args)
result = sum_numbers(1, 2, 3, 4, 5)
print(result) # 输出: 15def create_profile(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
create_profile(name="John", age=30, city="New York")square = lambda x: x**2
print(square(5)) # 输出: 25
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x**2, numbers))
print(squared) # 输出: [1, 4, 9, 16, 25]from functools import lru_cache
@lru_cache(maxsize=None)
def fibonacci(n):
if n < 2:
return n
return fibonacci(n-1) + fibonacci(n-2)
print(fibonacci(10)) # 输出: 55def timer(func):
import time
def wrapper(*args, **kwargs):
start = time.time()
result = func(*args, **kwargs)
end = time.time()
print(f"函数 {func.__name__} 执行时间: {end-start:.2f}秒")
return result
return wrapper
@timer
def slow_function():
time.sleep(1)
slow_function()with open('example.txt', 'r', encoding='utf-8') as file:
content = file.read()
print(content)with open('example.txt', 'r', encoding='utf-8') as file:
for line in file:
print(line.strip())data = ["第一行", "第二行", "第三行"]
with open('output.txt', 'w', encoding='utf-8') as file:
for line in data:
file.write(line + '\n')import json
# 写入JSON
data = {"name": "John", "age": 30}
with open('data.json', 'w') as f:
json.dump(data, f)
# 读取JSON
with open('data.json', 'r') as f:
loaded_data = json.load(f)
print(loaded_data)import csv
# 写入CSV
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerow(['Name', 'Age', 'City'])
writer.writerow(['Alice', 25, 'New York'])
writer.writerow(['Bob', 30, 'London'])
# 读取CSV
with open('data.csv', 'r') as file:
reader = csv.reader(file)
for row in reader:
print(row)try:
result = 10 / 0
except ZeroDivisionError:
print("不能除以零!")try:
# 可能出错的代码
number = int("abc")
except ValueError:
print("值错误!")
except Exception as e:
print(f"其他错误: {e}")try:
file = open('test.txt', 'r')
content = file.read()
except FileNotFoundError:
print("文件不存在!")
finally:
file.close() # 确保文件被关闭class NegativeNumberError(Exception):
pass
def check_positive(number):
if number < 0:
raise NegativeNumberError("数字不能为负")
return number
try:
check_positive(-5)
except NegativeNumberError as e:
print(e)class Timer:
def __enter__(self):
import time
self.start = time.time()
return self
def __exit__(self, *args):
self.end = time.time()
print(f"耗时: {self.end-self.start:.2f}秒")
with Timer():
# 需要计时的代码
import time
time.sleep(1)from datetime import datetime
now = datetime.now()print(f"当前时间: {now}")print(f"格式化时间: {now.strftime('%Y-%m-%d %H:%M:%S')}")from datetime import datetime, timedelta
start = datetime(2024, 1, 1)
end = datetime(2024, 1, 10)
difference = end - startprint(f"相差天数: {difference.days}")import timefrom datetime import datetime
timestamp = time.time()print(f"当前时间戳: {timestamp}")
dt = datetime.fromtimestamp(timestamp)
print(f"转换后的时间: {dt}")from datetime import datetimeimport pytz
utc_time = datetime.now(pytz.utc)beijing_time = utc_time.astimezone(pytz.timezone('Asia/Shanghai'))
print(f"北京时间: {beijing_time}")from datetime import datetime
date_string = "2024-01-15 14:30:00"
parsed_date = datetime.strptime(date_string, '%Y-%m-%d %H:%M:%S')
print(f"解析后的日期: {parsed_date}")# 生成器节省内存
large_sum = sum(x for x in range(1000000))
print(f"总和: {large_sum}")class CountDown:
def __init__(self, start):
self.current = start
def __iter__(self):
return self
def __next__(self):
if self.current <= 0:
raise StopIteration
self.current -= 1
return self.current + 1
for num in CountDown(5):
print(num)class FileManager:
def __init__(self, filename, mode):
self.filename = filename
self.mode = mode
self.file = None
def __enter__(self):
self.file = open(self.filename, self.mode)
return self.file
def __exit__(self, exc_type, exc_val, exc_tb):
if self.file:
self.file.close()
with FileManager('test.txt', 'w') as f:
f.write('Hello, World!')class Person:
def __init__(self, name):
self._name = name
@property
def name(self):
return self._name
@name.setter
def name(self, value):
if not value:
raise ValueError("姓名不能为空")
self._name = value
person = Person("Alice")
print(person.name)
person.name = "Bob"
print(person.name)class Calculator:
@staticmethod
def add(x, y):
return x + y
@classmethod
def multiply(cls, x, y):
return x * y
print(Calculator.add(5, 3)) # 输出: 8print(Calculator.multiply(5, 3)) # 输出: 15from tqdm import tqdmimport time
for i in tqdm(range(100)):
time.sleep(0.1) # 模拟耗时操作import sys
def show_memory_usage(var_name, variable):
size = sys.getsizeof(variable)
print(f"{var_name} 占用内存: {size} 字节")
large_list = list(range(100000))
show_memory_usage("large_list", large_list)import timeit
code_to_test = """sum_result = sum(range(1000))"""
execution_time = timeit.timeit(code_to_test, number=1000)
print(f"执行时间: {execution_time:.4f} 秒")import os
# 读取环境变量
python_path = os.getenv('PYTHONPATH')
print(f"Python路径: {python_path}")
# 设置环境变量(当前进程)
os.environ['MY_VAR'] = 'my_value'import sys
# 简单参数解析
if len(sys.argv) > 1:
print(f"接收到的参数: {sys.argv[1:]}")
else:
print("没有提供参数")
# 使用argparse进行高级解析
import argparse
parser = argparse.ArgumentParser(description='示例程序')
parser.add_argument('--name', type=str, help='你的姓名')
parser.add_argument('--age', type=int, help='你的年龄')
args = parser.parse_args()
if args.name and args.age:
print(f"你好 {args.name}, 你 {args.age} 岁了")以上50个代码片段涵盖了Python编程的常见场景和实用技巧。通过学习和实践这些片段,可以显著提升Python编程效率和代码质量。
“无他,惟手熟尔”!有需要的用起来!
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!