Python基础教程——常用的36个经典案例!

东眠的鱼 2024-09-07 08:37:01 阅读 95

Python 的简洁和强大使其成为许多开发者的首选语言。本文将介绍36个常用的Python经典代码案例。这些示例覆盖了基础语法、常见任务、以及一些高级功能。(建议收藏食用)

在这里插入图片描述

1. 列表推导式

<code>fizz_buzz_list = [

"FizzBuzz" if i % 15 == 0 else "Fizz" if i % 3 == 0 else "Buzz" if i % 5 == 0 else i for i in range(1, 101) ]

print(fizz_buzz_list)

这个例子展示了列表推导式,用于生成FizzBuzz序列。

2. 使用with语句和csv模块读取CSV文件

import csv

with open('data.csv', mode='r') as file: code>

csvFile = csv.reader(file)

for row in csvFile:

print(row)

csv模块是处理CSV文件的利器,与with语句结合可以确保文件正确关闭。

3. 正则表达式查找字符串

import re

pattern = r'\b[A-Za-z][A-Za-z0-9_]*\b'

text = "Hello, this is a test string with username: JohnDoe"

matches = re.findall(pattern, text)

print(matches)

正则表达式是强大的文本匹配工具,这里用来找出字符串中的所有单词。

4. 计算字符串中某个字符的数量

text = "Hello, World!"

char = "l"

count = text.count(char)

print(f"The character '{ char}' appears { count} times.")

count() 方法可以快速统计子串在字符串中的出现次数。

5. 使用set进行去重

duplicates = [1, 2, 2, 3, 4, 4, 5]

unique_list = list(set(duplicates))

print(unique_list)

集合(set)是一个无序不重复的元素集,非常适合去重。

6. 使用format()格式化字符串

name = "John"

age = 30

print("My name is {} and I am {} years old.".format(name, age))

format() 方法使字符串格式化更加灵活和清晰。

7. 实现一个简单的缓存装饰器

def cache(func):

cache_dict = { }

def wrapper(num):

if num in cache_dict:

return cache_dict[num]

else:

val = func(num)

cache_dict[num] = val

return val

return wrapper

@cache

def fibonacci(n):

if n < 2:

return n

return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(10))

装饰器可以用来缓存函数的结果,提高性能。

8. 使用try-except-else-finally处理异常

try:

result = 10 / 0

except ZeroDivisionError:

print("Cannot divide by zero")

else:

print("Result is:", result)

finally:

print("Execution complete.")

完整的异常处理流程可以让我们更好地控制程序执行。

9. 断言(assertion)的使用

def divide(a, b):

assert b != 0, "Division by zero is not allowed"

return a / b

print(divide(10, 0))

断言可以帮助我们在开发阶段捕捉到错误条件。

10. 路径操作

import os

path = "/path/to/some/file.txt"

dirname = os.path.dirname(path)

basename = os.path.basename(path)

print("Directory:", dirname)

print("Basename:", basename)

os.path 模块提供了许多实用的路径操作函数。

11. 环境变量的读取和设置

import os

# 读取环境变量

print("PATH:", os.environ["PATH"])

# 设置环境变量

os.environ["NEW_VAR"] = "NewValue"

print("NEW_VAR:", os.environ["NEW_VAR"])

os.environ 允许我们访问和修改环境变量。

12. 使用itertools模块

import itertools

for combination in itertools.combinations([1, 2, 3], 2):

print(combination)

itertools 模块提供了一系列用于创建迭代器的函数,非常有用。

13. 日期时间计算和操作

from datetime import datetime, timedelta

now = datetime.utcnow()

one_day = timedelta(days=1)

yesterday = now - one_day

print("Yesterday's date:", yesterday)

日期时间计算是常见的需求,datetime 模块提供了丰富的类和方法。

14. 排序和反序列表

numbers = [3, 1, 4, 1, 5, 9, 2, 6]

numbers.sort()

print("Sorted:", numbers)

.reverse()

print("Reversed:", numbers)

列表对象自带的 sort()reverse() 方法可以方便地对列表进行排序和反序。

15. 使用json模块处理JSON数据

import json

data = { "name": "John", "age": 30}

json_data = json.dumps(data)

print(json_data)

parsed_data = json.loads(json_data)

print(parsed_data)

json模块使得Python处理JSON数据变得简单。

16. 使用collections模块的defaultdict

from collections import defaultdict

dd = defaultdict(int)

dd["apple"] = 1

dd["banana"] = 2

print(dd["apple"]) # 输出:1

print(dd["orange"]) # 输出: 0,不存在的键返回默认值0

defaultdict 是字典的一个子类,它提供了一个默认值,用于字典中尝试访问不存在的键。

17. 使用functools模块的reduce函数

from functools import reduce

from operator import add

numbers = [1, 2, 3, 4]

total = reduce(add, numbers)

print(total) # 输出:10

reduce 函数可以将一个二元函数累积地应用到一个序列的元素上,从左到右,以便将序列减少为单个值。

18. 使用threading模块进行简单的多线程编程

import threading

def print_numbers():

for i in range(10):

print(i)

thread = threading.Thread(target=print_numbers)

thread.start()

thread.join()

threading模块允许我们创建和管理线程,这是实现并发的一种方式。

19. 使用multiprocessing模块进行多进程编程

from multiprocessing import Process, cpu_count

def print_hello():

print("Hello from child process")

if __name__ == '__main__':

processes = []

for _ in range(cpu_count()):

p = Process(target=print_hello)

p.start()

processes.append(p)

for p in processes:

p.join()

multiprocessing模块是Python中进行进程编程的关键模块。

20. 使用requests模块进行HTTP请求

import requests

response = requests.get("https://www.example.com")

print(response.status_code)

print(response.text)

requests模块简化了HTTP请求的相关操作,是进行网络编程的好帮手。

21. 使用map()函数将字符串转换为整数列表

string_numbers = "1 2 3 4 5"

numbers = list(map(int, string_numbers.split()))

print(numbers)

map() 函数可以对一个序列的每个元素应用指定的函数。

22. 条件语句

x = 7

if

x > 5:

print("x is greater than 5")

else:

print("x is less than or equal to 5")

条件语句是控制程序流程的基本构建块。

23. for循环遍历列表

fruits = ["apple", "banana", "cherry"]

for fruit in fruits:

print(fruit)

for 循环在Python中是常用的迭代工具。

24. while循环

count = 0

while count < 5:

print(count)

count += 1

while 循环允许程序按条件重复执行代码。

25. 使用enumerate()获取列表的索引和值

for index, value in enumerate(["apple", "banana", "cherry"]):

print(index, value)

enumerate() 函数可以同时获得元素的索引和值,使代码更简洁。

26. 列表切片

fruits = ["apple", "banana", "cherry", "date", "elderberry"]

print(fruits[1:4])

列表切片是访问列表子集的一种快捷方式。

27. 字符串格式化

name = "John"

age = 30

print(f"My name is { name} and I am { age} years old.")

字符串格式化是Python中处理字符串的重要方法。

28. 异常处理

try:

result = 10 / 0

except ZeroDivisionError:

print("Cannot divide by zero")

异常处理可以帮助我们捕获和处理错误。

29. 类定义

class Person:

def __init__(self, name, age):

self.name = name

self.age = age

def greet(self):

print(f"Hello, my name is { self.name} and I am { self.age} years old.")

类的使用是面向对象编程的核心。

30. 集合并集

fruits_set = { "apple", "banana", "cherry"}

veggies_set = { "carrot", "broccoli", "banana"}

print(fruits_set | veggies_set)

集合操作可以方便地处理一组唯一的元素。

31. 创建字典

person_dict = { "name": "John", "age": 30, "city": "New York"}

print(person_dict)

字典是存储键值对的数据结构。

32. 访问字典值

person_dict = { "name": "John", "age": 30, "city": "New York"}

print(person_dict["name"])

通过键来访问字典中的值。

33. 删除字典元素

person_dict = { "name": "John", "age": 30, "city": "New York"}

del person_dict["age"]

print(person_dict)

在字典中删除元素同样容易。

34. 生成器函数

def countdown(n):

while n > 0:

yield n

n -= 1

for i in countdown(5):

print(i)

生成器可以创建迭代器,按需产生值。

35. 使用zip()同时遍历多个列表

names = ["Alice", "Bob", "Charlie"]

ages = [25, 30, 35]

for name, age in zip(names, ages):

print(name, age)

使用 zip() 可以方便地并行迭代多个序列。

最后这里免费分享给大家一份Python全台学习资料,包含视频、源码。课件,希望能帮到那些不满现状,想提升自己却又没有方向的朋友,也可以和我一起来学习交流呀。

编程资料、学习路线图、源代码、软件安装包等!【点击这里】领取!

Python所有方向的学习路线图,清楚各个方向要学什么东西

100多节Python课程视频,涵盖必备基础、爬虫和数据分析

100多个Python实战案例,学习不再是只会理论

华为出品独家Python漫画教程,手机也能学习

历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。