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

news2025/2/25 3:57:38

在这里插入图片描述

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

1.列表推导式

  • 这个例子展示了列表推导式,用于生成FizzBuzz序列。
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)   

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

  • "csv"模块是处理CSV文件的利器,与"with"语句结合可以确保文件正确关闭。
import csv      
with open('data.csv', mode='r') as file:csvFile = csv.reader(file)       
for row in csvFile:           
print(row)   

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.计算字符串中某个字符的数量

  • "count()"方法可以快速统计子串在字符串中的出现次数。
text = "Hello, World!"char = "l"   
count = text.count(char)   
print(f"The character '{char}' appears {count} times.")   

5.使用set进行去重

  • 集合(set)是一个无序不重复的元素集,非常适合去重。
duplicates = [1, 2, 2, 3, 4, 4, 5]   
unique_list = list(set(duplicates))   
print(unique_list)   

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

  • "format()"方法使字符串格式化更加灵活和清晰。
name = "John"age=30   
print("My name is {} and I am {} years old.".format(name, age))   

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.路径操作

  • "os.path"模块提供了许多实用的路径操作函数。
import os path = "/path/to/some/file.txt"   
dirname = os.path.dirname(path)   
basename = os.path.basename(path)   
print("Directory:", dirname)   
print("Basename:", basename)   

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

  • "os.environ"允许我们访问和修改环境变量。
import os # 读取环境变量   
print("PATH:", os.environ["PATH"]) # 设置环境变量   
os.environ["NEW_VAR"] = "NewValue"   
print("NEW_VAR:", os.environ["NEW_VAR"])   

12.使用"itertools"模块

  • "itertools"模块提供了一系列用于创建迭代器的函数,非常有用。
import itertools      
for combination in itertools.combinations([1, 2, 3], 2):       
print(combination)   

13.日期时间计算和操作

  • 日期时间计算是常见的需求,"datetime"模块提供了丰富的类和方法。
from datetime 
import datetime, timedelta      
now = datetime.utcnow()   
one_day = timedelta(days=1)   
yesterday = now - one_day   
print("Yesterday's date:", yesterday)   

14.排序和反序列表

  • 列表对象自带的"sort()"和"reverse()"方法可以方便地对列表进行排序和反序。
numbers = [3, 1, 4, 1, 5, 9, 2, 6]   
numbers.sort()   
print("Sorted:", numbers)   
numbers.reverse()   
print("Reversed:", numbers)   

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

  • "json"模块使得Python处理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)   

16.使用"collections"模块的"defaultdict"

  • "defaultdict"是字典的一个子类,它提供了一个默认值,用于字典中尝试访问不存在的键。
from collections 
import defaultdict      
dd = defaultdict(int)   
dd["apple"] = 1   
dd["banana"] = 2   
print(dd["apple"])  # 输出:1   
print(dd["orange"])  # 输出: 0,不存在的键返回默认值0   

17.使用"functools"模块的"reduce"函数

  • "reduce"函数可以将一个二元函数累积地应用到一个序列的元素上,从左到右,以便将序列减少为单个值。
from functools 
import reduce   
from operator 
import add   
numbers = [1, 2, 3, 4]   
total = reduce(add, numbers)   
print(total)  # 输出:10   

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

  • "threading"模块允许我们创建和管理线程,这是实现并发的一种方式。
import threading      
def print_numbers():       
for i in range(10):           
print(i)   
thread = threading.Thread(target=print_numbers)   
thread.start()   
thread.join()   

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

  • "multiprocessing"模块是Python中进行进程编程的关键模块。
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()  

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

  • "requests"模块简化了HTTP请求的相关操作,是进行网络编程的好帮手。
import requests      
response = requests.get("https://www.example.com")  
 print(response.status_code)   
 print(response.text) 

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

  • "map()"函数可以对一个序列的每个元素应用指定的函数。
string_numbers = "1 2 3 4 5"   
numbers = list(map(int, string_numbers.split()))   
print(numbers)   

22.条件语句

  • 条件语句是控制程序流程的基本构建块。
x = 7   if x > 5:       
print("x is greater than 5")   
else:       
print("x is less than or equal to 5")   

23.for循环遍历列表

  • "for"循环在Python中是常用的迭代工具。
fruits = ["apple", "banana", "cherry"]   
for fruit in fruits:       
print(fruit)   

24.while循环

  • "while"循环允许程序按条件重复执行代码。
count = 0   
while count < 5:       
print(count)       
count += 1   

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

  • "enumerate()"函数可以同时获得元素的索引和值,使代码更简洁。
for index, value in enumerate(["apple", "banana", "cherry"]):       
print(index, value) 

26.列表切片

  • 列表切片是访问列表子集的一种快捷方式。
fruits = ["apple", "banana", "cherry", "date", "elderberry"]   
print(fruits[1:4])   

27.字符串格式化

  • 字符串格式化是Python中处理字符串的重要方法。
name = "John"   
age = 30   
print(f"My name is {name} and I am {age} years old.") 

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()同时遍历多个列表

  • 使用"zip()"可以方便地并行迭代多个序列。
names = ["Alice", "Bob", "Charlie"]   
ages = [25, 30, 35]   
for name, age in zip(names, ages):       
print(name, age)   

图片

总结

  • 最后希望你编程学习上不急不躁,按照计划有条不紊推进,把任何一件事做到极致,都是不容易的,加油,努力!相信自己!

文末福利

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

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

  • ① Python所有方向的学习路线图,清楚各个方向要学什么东西
  • ② 100多节Python课程视频,涵盖必备基础、爬虫和数据分析
  • ③ 100多个Python实战案例,学习不再是只会理论
  • ④ 华为出品独家Python漫画教程,手机也能学习

可以扫描下方二维码领取【保证100%免费

在这里插入图片描述

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

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

相关文章

互联网Java工程师面试题及答案整理(2024年最新版)

前言 作为一个 Java 程序员&#xff0c;你平时总是陷在业务开发里&#xff0c;每天噼里啪啦忙敲着代码&#xff0c;上到系统开发&#xff0c;下到 Bug 修改&#xff0c;你感觉自己无所不能。然而偶尔的一次聚会&#xff0c;你听说和自己一起出道的同学早已经年薪 50 万&#x…

拥抱大模型时代,从入门到精通,科技从业者的转型攻略与AI红利指南

前言 自2022年11月ChatGPT问世以来&#xff0c;大模型在人工智能领域的潜能得到了充分展示&#xff0c;其深远影响引发了研究热潮。在不到一年的时间里&#xff0c;国产大模型如雨后春笋般涌现&#xff0c;2023年成为了大模型时代的元年。对于IT圈的科技从业者来说&#xff0c…

NextViT实战:使用NextViT实现图像分类任务(二)

文章目录 训练部分导入项目使用的库设置随机因子设置全局参数图像预处理与增强读取数据设置Loss设置模型设置优化器和学习率调整策略设置混合精度&#xff0c;DP多卡&#xff0c;EMA定义训练和验证函数训练函数验证函数调用训练和验证方法 运行以及结果查看测试完整的代码 在上…

从零开始讲PCIe(8)——PCIe拓扑与组件

一、拓扑结构 和PCI-X一样&#xff0c;PCIe链路是点对点的连接&#xff0c;而不是像传统PCI那样使用共享总线。这是由于其使用了非常高的传输速度。因此&#xff0c;链路只能连接两个接口&#xff0c;为了构建一个复杂的系统&#xff0c;必须采用某种方式来扩展连接。在PCIe中&…

《Linux从小白到高手》理论篇:一文概览常用Linux重要配置文件

List item 今天继续宅家&#xff0c;闲来无事接着写。本篇是《Linux从小白到高手》理论篇的最后一篇了。本篇集中介绍所有常用的Linux重要配置文件。 用这个命令可以查看配置文件所在的位置&#xff1a;如上图 locate "*.conf" "*.ini" "*.cfg&quo…

论文 | Model-tuning Via Prompts Makes NLP Models Adversarially Robust

这篇论文研究了使用提示 (Prompting) 方法微调预训练语言模型&#xff0c;以提高其在对抗样本攻击下的鲁棒性。论文的主要贡献如下&#xff1a; 1.MVP 比 MLP-FT 更鲁棒&#xff1a; 论文比较了 MVP (Model-tuning Via Prompts) 和传统的 MLP-FT (Fine-tuning with an MLP head…

热门:AI变现,看看谁在默默赚大钱?

在这个愈发依赖AI的时代&#xff0c;找到属于自己的盈利方式愈发重要。 更多实操教程和AI绘画工具,可以扫描下方,免费获取 总的来说&#xff0c;利用AI进行盈利的方式主要有三种&#xff1a;技术型、流量型和内容型。 每种方式都根植于AI的特性&#xff0c;但同时也需要特定…

【英语】2. 英语的表达习惯

文章目录 前言less v. more n.解释e.g. less v. more prep.被动与中文的歧义总结参考文献 前言 进行英语前后缀的复习 less v. more n. 解释 外国的表达方式&#xff1a;更多地偏向静态&#xff0c;因此更多地使用名词 e.g. (rather Chinglish expression) She could not c…

Linux Cent7 已安装MySQL5.7.X,再安装MYSQL8.4.2

一、 下载安装 检查Linux系统的glibc版本rpm -qa | grep glibc结果&#xff1a;glibc-common-2.17-260.el7_6.6.x86_64 glibc-2.17-260.el7_6.6.x86_64 glibc-headers-2.17-260.el7_6.6.x86_64 glibc-devel-2.17-260.el7_6.6.x86_64访问MySQL官网&#xff0c;下载对应版本数据…

【智能算法应用】侏儒猫鼬优化算法求解二维路径规划问题

摘要 在复杂环境下的移动机器人路径规划问题中&#xff0c;最优路径的求解具有重要的应用价值。本文基于一种新型智能优化算法——侏儒猫鼬优化算法&#xff08;DMOA&#xff09;&#xff0c;提出了一种二维路径规划的有效求解方法。该算法通过模拟侏儒猫鼬的觅食、社会合作与…

一行 Python 代码能实现什么丧心病狂的功能?圣诞树源代码

手头有 109 张头部 CT 的断层扫描图片&#xff0c;我打算用这些图片尝试头部的三维重建。基础工作之一&#xff0c;就是要把这些图片数据读出来&#xff0c;组织成一个三维的数据结构&#xff08;实际上是四维的&#xff0c;因为每个像素有 RGBA 四个通道&#xff09;。 这个…

Github优质项目推荐-第四期

文章目录 Github优质项目推荐 - 第四期一、【Umi-OCR】&#xff0c;26.1k stars - 文字识别工具二、【AFFiNE】&#xff0c;41k stars - 知识库平台三、【NocoBase】&#xff0c;12k stars - 无代码/低代码平台四、【neovim】&#xff0c;82.3k stars - 改良版VIM五、【generat…

LLM大模型:开源RAG框架汇总

前言 本文搜集了一些开源的基于LLM的RAG&#xff08;Retrieval-Augmented Generation&#xff09;框架&#xff0c;旨在吸纳业界最新的RAG应用方法与思路。如有错误或者意见可以提出&#xff0c;同时也欢迎大家把自己常用而这里未列出的框架贡献出来&#xff0c;感谢~ RAG应用…

【AI副业项目】AI猫咪带娃新风尚:探索副业新机遇

随着互联网技术的飞速发展&#xff0c;内容创作已成为许多人追求自我表达、实现职业转型或发展副业的重要途径。然而&#xff0c;在信息爆炸的时代&#xff0c;如何创作出既新颖又吸引眼球的内容&#xff0c;成为了摆在每位创作者面前的难题。 在当今这个数字化与智能化并行的…

TM1618控制共阳极数码管的数据传送问题

数据传送中的问题 首先每个字节是按照一个地址写入的&#xff0c;而共阳极数码管的公共端是SEG引脚连接的。这使得数码管显示的编码是按照竖向的字节。如下图所示中&#xff0c;横向是公共端&#xff0c;竖向是实际编码字符字节。 数据转换方式 这样可以一次写入所有需要显示…

GoogleNet网络介绍及代码撰写详解(总结2)

可以从本人以前的文章中可以看出作者以前从事的是嵌入式控制方面相关的工作&#xff0c;是一个机器视觉小白&#xff0c;之所以开始入门机器视觉的学习只要是一个idea&#xff0c;想把机器视觉与控制相融合未来做一点小东西。废话不多说开始正题。&#xff08;如有侵权立即删稿…

思维导图工具,轻松搞定复杂问题!

一提到思维导图&#xff0c;想必大家都不会陌生&#xff1b;它能帮助我们更好地梳理思路&#xff0c;让复杂的想法变得清晰可见&#xff1b;而随着互联网的普及&#xff0c;在线思维导图工具更是成为了我们日常工作和学习的得力助手&#xff1b;今天&#xff0c;我就来给大家推…

深入解析DPU:AI时代的芯片分工与超级网卡

引言 在当今AI时代&#xff0c;计算需求的爆炸性增长使得传统数据中心的架构面临着巨大的挑战。数据处理任务越来越复杂&#xff0c;尤其是在大型AI模型如GPT和BERT的应用中&#xff0c;如何提高数据中心的计算和传输效率成为关键问题。传统的CPU&#xff08;中央处理器&#…

从零开始讲PCIe(10)——事务层介绍

一、事务层概述 事务层在响应软件层的请求时&#xff0c;会生成出站数据包。同时&#xff0c;它也会检查入站数据包&#xff0c;并将其中包含的信息传递到软件层。事务层支持非发布事务的分割事务协议&#xff0c;能够将入站的完成数据包与之前传输的非发布请求相关联。该层处理…

开发人员智能助手

据说AI可以代替开发人员&#xff0c;目前看暂时不用担心&#xff0c;不仅不担心&#xff0c;还要主动使用它。 过去有了问题需要自己各网站搜索&#xff0c;真真假假的东西太多&#xff0c;很难找到正确答案&#xff0c;现在可以问智能体了&#xff1a; 1、JAVA开发大师 htt…