Python编程常用的19个经典案例

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 csvwith open('data.csv', mode='r') as file:csvFile =csv.reader (file)for row in csvFile:print(row)

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

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

import repattern = 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] = valreturn valreturn wrapper
@cache
def Fibonacci(n):if n < 2:return nreturn 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 ospath = "/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 itertoolsfor combination in itertools.combinations([1, 2, 3], 2):print(combination)

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

13. 日期时间计算和操作

from datetime import datetime, timedeltanow = 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 jsondata = {"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 defaultdictdd = 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 threadingdef 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_countdef 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中进行进程编程的关键模块。

  最后由于文章篇幅有限,文档资料内容较多,需要这些文档的朋友,可以加小助手微信免费获取,【保证100%免费】,中国人不骗中国人。

全套Python学习资料分享:

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

图片

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。

图片

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

图片

四、入门学习视频全套

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

图片

图片

五、实战案例

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

图片

图片

在这里插入图片描述

最后

如果你也想自学Python,可以关注我。我会把踩过的坑分享给你,让你不要踩坑,提高学习速度,还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

希望这篇文章对你有帮助,也希望能帮到大家,因为你我都是热爱python的编程语言爱好者。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于数据流图绘制和使用上的一些个人经验

假设我们需要开发一个项目进度管理系统&#xff0c;在这个项目进度管理系统之中&#xff0c;我们需要开发一个功能&#xff1a;项目成员的列表。我们具有这样的业务需求&#xff1a; 在项目进度管理系统中&#xff0c;我们需要知道参与项目的人员到底有哪些&#xff0c;并且项目…

手眼标定工具操作文档

1.手眼标定原理介绍 术语介绍 手眼标定&#xff1a;为了获取相机与机器人坐标系之间得位姿转换关系&#xff0c;需要对相机和机器人坐标系进行标定&#xff0c;该标定过程成为手眼标定&#xff0c;用于存储这一组转换关系的文件称为手眼标定文件。 ETH&#xff1a;即Eye To …

AlipayHK支付宝HK接入-商户收款(PHP)

一打开支付宝国际版 二、点开商户服务 三、下载源码

基于Arduino的平衡车机械臂

两轮驱动机器人车与机械臂的DIY指南 视频&#xff1a; 基于Arduino的平衡车机械臂 资料下载链接 引言 在这篇文章中&#xff0c;我们将一起探索如何构建一个两轮驱动的机器人车&#xff0c;并配备有一个机器人臂&#xff0c;这个项目适合初学者&#xff0c;并且可以在动态环…

【练习Day20】字符串变形

链接&#xff1a;字符串变形_牛客题霸_牛客网 方法一&#xff1a;双逆转&#xff08;推荐使用&#xff09; 思路&#xff1a; 将单词位置的反转&#xff0c;那肯定前后都是逆序&#xff0c;不如我们先将整个字符串反转&#xff0c;这样是不是单词的位置也就随之反转了。但是单…

ip地址和网络号关系是什么

在浩瀚的网络世界中&#xff0c;每一个连接互联网的设备都需要一个独特的标识来确保数据的准确传输。这个标识就是IP地址。然而&#xff0c;在深入探索IP地址的同时&#xff0c;我们不得不提及一个与之紧密相关的概念——网络号。网络号与IP地址之间存在着怎样的联系与区别&…

android 登录界面编写

1、登录页面实现内容 1.实现使用两个EditText输入框输入用户名和密码。 2.使用CheckBox控件记住密码功能。 3.登录时候&#xff0c;验证用户名和密码是否为空。 4.当前CheckBox控件记住密码勾上时&#xff0c;使用SharedPreferences存储用户名和密码。 5.登录时候使用Prog…

run postinstall error, please remove node_modules before retry!

下载 node_modules 报错&#xff1a;run postinstall error, please remove node_modules before retry! 原因&#xff1a;node 版本出现错误&#xff0c;我的项目之前是在 12 下运行的。解决方法&#xff1a; 先卸载node_modules清除缓存将node版本切换到12重新下载即可

Docker 安装 禅道-21.2版本-外部数据库模式

Docker 安装系列 1、拉取最新版本&#xff08;zentao 21.2&#xff09; [rootTseng ~]# docker pull hub.zentao.net/app/zentao Using default tag: latest latest: Pulling from app/zentao 55ab1b300d4b: Pull complete 6b5749e5ef1d: Pull complete bdccb03403c1: Pul…

visual studio 2022 c++使用教程

介绍 c开发windows一般都是visual studio&#xff0c;linux一般是vscode&#xff0c;但vscode调试c不方便&#xff0c;所以很多情况都是2套代码&#xff0c;在windows上用vs开发方便&#xff0c;在转到linux。 安装 1、官网下载vs2022企业版–选择桌面开发–安装位置–安装–…

python学opencv|读取图像(十七)认识alpha通道

【1】引言 前序学习进程中&#xff0c;我们已经掌握了RGB和HSV图像的通道拆分和合并&#xff0c;获得了很多意想不到的效果&#xff0c;相关链接包括且不限于&#xff1a; python学opencv|读取图像&#xff08;十二&#xff09;BGR图像转HSV图像-CSDN博客 python学opencv|读…

设计模式--单例模式【创建型模式】

设计模式的分类 我们都知道有 23 种设计模式&#xff0c;这 23 种设计模式可分为如下三类&#xff1a; 创建型模式&#xff08;5 种&#xff09;&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式&#xff08;7 种&#xff09;&#xff1…

neo4j 图表数据导入到 TuGraph

neo4j 图表数据导入到 TuGraph 代码文件说明后文 前言:近期在引入阿里的 TuGraph 图数据库&#xff0c;需要将 原 neo4j 数据导入到新的 tugraph 数据库中。预期走csv文件导入导出&#xff0c;但因为格式和数据库设计问题&#xff0c;操作起来比较麻烦&#xff08;可能是个人没…

模具生产过程中的标签使用流程图

①NFC芯片嵌入周转筐&#xff0c;通过读卡器读取CK_Label_v3的数据&#xff0c;并将这些信息上传至服务器进行存储&#xff1b; ②服务器随后与客户的WMS&#xff08;仓库管理系统&#xff09;进行交互&#xff0c;记录和同步注塑机的原始数据&#xff1b; ③当周转筐内的模具…

Linux线程同步

1 线程同步概念 假设有有三个线程A,B,C&#xff0c;当前一个线程A对内存中的共享资源进行访问时&#xff0c;其它线程B&#xff0c;C都不可以对这块内存进行操作&#xff0c;直到线程A对这块内存访问完毕为止&#xff0c;B&#xff0c;C中的一个才能访问这块内存&#xff0c;剩…

Vue与React:前端框架的巅峰对决

文章目录 一、引言&#xff08;一&#xff09;前端框架发展现状简述 二、Vue 与 React 框架概述&#xff08;一&#xff09;Vue.js 简介&#xff08;二&#xff09;React.js 简介 三、开发效率对比&#xff08;一&#xff09;Vue 开发效率分析&#xff08;二&#xff09;React …

项目管理工具Maven(一)

Maven的概念 什么是Maven 翻译为“专家”&#xff0c;“内行”Maven是跨平台的项目管理工具。主要服务于基于Java平台的项目构建&#xff0c;依赖管理和项目信息管理。什么是理想的项目构建&#xff1f; 高度自动化&#xff0c;跨平台&#xff0c;可重用的组件&#xff0c;标准…

【Prometheus 】【实战篇(五)】深入解析 Prometheus 监控指标类型:Counter、Gauge、Histogram 和 Summary

Prometheus 提供了四种核心的指标类型&#xff0c;分别是 Counter&#xff08;计数器&#xff09;、Gauge&#xff08;仪表&#xff09;、Histogram&#xff08;直方图&#xff09;和 Summary&#xff08;摘要&#xff09;。这些指标类型在客户端库中有具体的使用说明&#xff…

outlook smtp 发送邮件

前提条件 开通 app password 开通 smtp 服务 import smtplib from email.mime.multipart import MIMEMultipart from email.mime.text import MIMETextdef send_html_email_smtp(sender_email, sender_password, recipient_email, subject, html_content):# Create the messag…

如何利用Python爬虫获得Lazada商品评论列表

在电商领域&#xff0c;用户评论是了解商品口碑和市场反馈的重要渠道。对于Lazada这样的东南亚电商平台&#xff0c;获取商品评论列表对于市场分析、产品改进和销售策略的制定至关重要。本文将详细介绍如何使用Python编写爬虫程序&#xff0c;以获取Lazada商品的评论列表。 一、…