Python编程常用的36个经典案例!

news2024/10/12 17:50:07

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

在这里插入图片描述

1. 列表推导式

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:
    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)
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 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

点击领取,100%免费!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2208379.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

腾讯云-云直播

云直播&#xff08;Cloud Streaming Services&#xff09;为您提供极速、稳定、专业的直播云端处理服务&#xff0c;根据业务中不同直播场景的需求&#xff0c;云直播提供标准直播、快直播、慢直播和云导播台服务&#xff0c;分别针对大规模实时观看、高并发推流录制及超低延时…

鸿蒙开发之ArkUI 界面篇 三十二 Styles(封装组件)

鸿蒙提供了Extend组件&#xff0c;作用是对组件的属性、点击事件的封装&#xff0c;简化代码、方便调用&#xff0c;但是这个组件的缺点是只能封装一种组件&#xff0c;例如只能封装Text或者是Button&#xff0c;不能跨组件使用&#xff0c;如果不同组件有相同的地方、需要使用…

常见锁策略总结:从悲观锁到自旋锁

欢迎浏览高耳机的博客 希望我们彼此都有更好的收获 感谢三连支持&#xff01; 在多线程编程中,锁是保证数据一致性和线程安全的重要机制.本文将直观且简洁的介绍常见的锁策略,包括它们的基本逻辑,使用场景以及优缺点. 悲观锁 与 乐观锁 悲观锁:预防性策略 悲观锁是一种主动锁…

Pandas处理时间序列之预测

import pandas as pd import numpy as np import matplotlib.pylab as plt %matplotlib inline from matplotlib.pylab import rcParams rcParams[figure.figsize] 15, 6 一、移动平均过程&#xff08;MA&#xff09; 移动平均过程&#xff08;Moving Average process&#…

机器学习——自动化机器学习(AutoML)

机器学习——自动化机器学习&#xff08;AutoML&#xff09; 自动化机器学习&#xff08;AutoML&#xff09;——2024年的新趋势什么是AutoML&#xff1f;AutoML的关键组成部分AutoML的优势AutoML 实例&#xff1a;使用Auto-sklearn进行回归分析AutoML的应用领域2024年值得关注…

webm格式怎么转换成mp4?这几种方法可以轻松完成视频转换!

webm格式怎么转换成mp4&#xff1f;WebM&#xff0c;作为一种新兴的视频文件格式&#xff0c;尽管携带了众多优势&#xff0c;却也不乏其固有的局限性&#xff0c;这些局限在实际应用中尤为凸显&#xff0c;成为了用户关注的焦点。本文将深入探讨WebM格式面临的挑战&#xff0c…

Compose第六弹 对话框与弹窗

1.compose中怎么使用对话框&#xff1f; 2.怎么显示Popup弹窗&#xff1f; 一、Compose显示对话框 二、Popup Popup就类似以前的Popupwindow&#xff0c;我们可以看到其实上面的DropdownMenu是Popup的一个具体实现。 2.1 Popup定义 Popup的定义如下&#xff1a; Composable…

ANSYS apdl界面频繁停止工作,需要卸载重装吗

如果经常出现以上报错界面&#xff0c;无需重装&#xff0c;一般是因为你在此图形显示界面滚动了鼠标滚轮&#xff0c;导致ANSYS停止工作 出现这个界面是因为前一次ANSYS非正常退出&#xff0c;再次进入就会出现

天塌了!「系分」新教程10月出版?11月软考会用到新内容吗?

软考教程改版相关事宜一直都有在关注&#xff0c;今天&#xff0c;发现“中国权威的出版物数据服务平台”网站更新了软考教程出版信息。 01、系统分析师新版教程 2024年8月&#xff0c;在“中国权威的出版物数据服务平台”网站搜索“系统分析师教程”显示的出版时间是2024年&a…

自动化运维:提升效率、降低风险的利器

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

【.net core使用minio大文件分片上传】.net core使用minio大文件分片上传以及断点续传、秒传思路

版本&#xff1a;.net core 7 需求&#xff1a;net限制了上传的大小&#xff0c;只能上传25M上下的文件&#xff0c;如果上传一个八十多兆的文件&#xff0c;swagger接口报错&#xff0c;如果前端调用上传接口&#xff0c;会报CORS跨域错误&#xff0c;这篇文章介绍怎么使用分片…

高德地图怎么定位自己的店铺?

随着科技的飞速发展&#xff0c;我们的生活也变得更加便利&#xff0c;很多时候只需要一台手机便能解决许多问题&#xff0c;出行方面同样如此。无论你想去哪里&#xff0c;只要在地图导航上输入相应地址&#xff0c;就能随时导航前往目的地。而高德地图作为国内首屈一指的地图…

基于yolov8、yolov5的果蔬检测系统(含UI界面、数据集、训练好的模型、Python代码)

项目介绍 项目中所用到的算法模型和数据集等信息如下&#xff1a; 算法模型&#xff1a;     yolov8、yolov8 SE注意力机制 或 yolov5、yolov5 SE注意力机制 &#xff0c; 直接提供最少两个训练好的模型。模型十分重要&#xff0c;因为有些同学的电脑没有 GPU&#xff0…

行测刷题(1)

D D C 论据论点话题不一致优先考虑拆桥&#xff0c;要切断论点和论据之间的联系&#xff0c;一般拆桥的选项都要包含论点和论据不一样的关键词&#xff0c;也就是道德责任和舆论批评 体重变化较小可能也发生了体重减少的状况 主题词:人工培育的水稻 要表示文章对策&#xff0c;…

数学建模算法与应用 第11章 偏最小二乘回归及其方法

目录 11.1 偏最小二乘回归概述 11.2 Matlab 偏最小二乘回归命令 Matlab代码示例&#xff1a;偏最小二乘回归 11.3 案例分析&#xff1a;化学反应中的偏最小二乘回归 Matlab代码示例&#xff1a;光谱数据的PLS回归 习题 11 总结 偏最小二乘回归&#xff08;Partial Least …

Python字符编码详解!

本文简单介绍了各种常用的字符编码的特点&#xff0c;并介绍了在python2.x中如何与编码问题作战 &#xff1a;&#xff09; 请注意本文关于Python的内容仅适用于2.x&#xff0c;3.x中str和unicode有翻天覆地的变化&#xff0c;请查阅其他相关文档。 文章开始前打个小广告——分…

ES创建文档,使用postman调用请求

请求的url 地址是http://192.168.1.108:9200/shopping/_doc&#xff0c;请求方式为post, 请求参数为: { "title":"小米手机", "category":"小米", "images":"http://www.gulixueyuan.com/xm.jpg", "price&…

系统移植一

使用设备是fs4412开发板 一、系统移植 系统移植是将一个操作系统或软件从一个硬件平台或处理器架构转移到另一个平台的过程。系统移植的主要目标是使软件在新的硬件环境下能够正常运行。在系统移植过程中&#xff0c;主要的改动集中在硬件相关的底层部分以及操作系统的核心模…

开源代码编译过程中遇到的问题(持续更新)

一、A-LOAM 地址&#xff1a;GitHub - HKUST-Aerial-Robotics/A-LOAM: Advanced implementation of LOAM 1.error: ‘LocalParameterization’ is not a member of ‘ceres 原因&#xff1a;ceres 版本的问题&#xff0c;A-LOAM 使用的 ceres 版本过低。如果安装的是 ceres 2.2…

大模型微调方法总结(非常详细)零基础入门到精通,收藏这一篇就够了

大模型训练代价很高&#xff0c;国盛证券出过一个报告《ChatGPT需要多少算力》&#xff0c;指出GPT3&#xff08;175B&#xff09;训练一次成本约140万刀&#xff0c;大概是1千万人民币。GPT3已经是2020年的历史了&#xff0c;现在的训练成本可能更高。高昂的训练成本小公司难以…