继续总结Python中那些简单好用的用法

Python中return返回值的简单用法 经常会遇到有人问“为什么方法的最后一行,有的要return一个结果,但是有的却没有return,学习的时候很少看到有书上讲解这个return的用法,因此一直搞不清这个return是干什么用的?到底该什么时候用,return的值应该怎么确定?…" 下面我们就简单的探讨一下这个return的用法。 首先关于英文单词return,它是返回的意思。那么关于它将数据返回到哪儿去了,以及哪些数据需要返回?我们下面将举几个例子进行探讨。 问题1:return将数据返回到哪儿去了? 我们先看下面这几行代码,构造一个求和方法 阅读详情
  1. 反射,反射是一种机制,可以在运行时获取、检查和修改对象的属性和方法。Python提供了一些内置的函数和属性,可以用于实现反射操作

dir()函数:返回对象的所有属性和方法的列表

class MyClass:
    def __init__(self):
        self.name = "运维咖啡吧"
        self.age = 25

my_obj = MyClass()
print(dir(my_obj))

getattr()函数:获取对象的属性或方法

class MyClass:
    def __init__(self):
        self.name = "运维咖啡吧"
        self.age = 25

my_obj = MyClass()
name = getattr(my_obj, "name")
print(name)

setattr()函数:设置对象的属性或方法

class MyClass:
    def __init__(self):
        self.name = "运维咖啡吧"
        self.age = 25

my_obj = MyClass()
setattr(my_obj, "name", "blog.ops-coffee.cn")
print(my_obj.name)

hasattr()函数:检查对象是否具有指定的属性或方法

class MyClass:
    def __init__(self):
        self.name = "运维咖啡吧"
        self.age = 25

my_obj = MyClass()
has_name = hasattr(my_obj, "name")
print(has_name)

这些函数和属性可以帮助你在运行时动态地访问和修改对象的属性和方法。反射为编写更灵活和通用的代码提供了一种机制,可以根据需要操作对象的属性和方法

  1. 交换变量,这是一种非常常见和方便的操作,可以在需要时快速交换变量的值
a = 10
b = 20

a, b = b, a

print(a, b)  # 输出: 20 10

  1. 可迭代对象解包,它允许你将可迭代对象的元素解包到单独的变量中。这对于同时处理多个值非常有用
# 解包元组
a, b, c = (1, 2, 3)
print(a, b, c)   # 输出: 1 2 3

# 解包列表
x, y, z = [4, 5, 6]
print(x, y, z)   # 输出: 4 5 6

  1. 深复制和浅复制,当处理复杂的数据结构时,深复制和浅复制允许你创建对象的副本。深复制会创建一个全新的对象,而浅复制会创建一个新对象,但共享内部数据。
import copy

# 创建一个列表
original_list = [1, 2, [3, 4]]

# 浅复制
shallow_copy = copy.copy(original_list)

# 深复制
deep_copy = copy.deepcopy(original_list)

# 修改原始列表中的嵌套列表
original_list[2][0] = 5

print(original_list)   # 输出: [1, 2, [5, 4]]
print(shallow_copy)    # 输出: [1, 2, [5, 4]]
print(deep_copy)       # 输出: [1, 2, [3, 4]]

  1. with语句的多个上下文管理器:在一个with语句中,你可以同时使用多个上下文管理器,以便在代码块执行前后执行多个操作
class CustomContextManager1:
    def __enter__(self):
        print("Entering CustomContextManager1")

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting CustomContextManager1")

class CustomContextManager2:
    def __enter__(self):
        print("Entering CustomContextManager2")

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Exiting CustomContextManager2")

# 使用多个上下文管理器
with CustomContextManager1(), CustomContextManager2():
    # 在这里执行一些操作

比较常用的是一次打开多个文件进行操作,例如同时打开文件1和文件2,读取文件1内容处理后写入文件2

with open("file1.txt") as file1, open("file2.txt") as file2:
    # 在这里可以使用file1和file2进行操作

  1. 装饰器,通过装饰器来复用函数,简化操作
# 创建一个装饰器函数,用于计算函数执行时间
import time

def calculate_time(func):
    def wrapper(*args, **kwargs):
        start_time = time.time()
        result = func(*args, **kwargs)
        end_time = time.time()
        print(f"函数 {func.__name__} 执行时间为: {end_time - start_time} 秒")
        return result
    return wrapper

# 应用装饰器到函数
@calculate_time
def long_running_function():
    time.sleep(2)

long_running_function()

  1. 使用字典来代替冗长的if/else判断,提升代码可读性
def operation_add(a, b):
    return a + b

def operation_subtract(a, b):
    return a - b

def operation_multiply(a, b):
    return a * b

def operation_divide(a, b):
    return a / b

# 定义一个操作字典,将操作名映射到对应的函数上
operations = {
    "add": operation_add,
    "subtract": operation_subtract,
    "multiply": operation_multiply,
    "divide": operation_divide
}

# 使用字典进行操作选择和调用相应的函数
result = operations["multiply"](2, 3)
print("结果:", result)

  1. 字符串格式化,使用占位符和格式化字符串来构建新的字符串
name = "Alice"
age = 25
message = "My name is {} and I am {} years old.".format(name, age)
# 输出: "My name is Alice and I am 25 years old."

  1. 使用lamba函数进行简单的函数定义
add = lambda x, y: x + y
result = add(2, 3)
# 输出: 5

  1. 使用reversed函数反转可迭代对象
numbers = [1, 2, 3, 4, 5]
reversed_numbers = list(reversed(numbers))
# 输出: [5, 4, 3, 2, 1]

  1. 使用map函数对可迭代对象中的每个元素应用指定的函数
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
# 输出: [1, 4, 9, 16, 25]

  1. 使用filter函数根据指定的条件筛选可迭代对象中的元素
numbers = [1, 2, 3, 4, 5]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
# 输出: [2, 4]

  1. 生成器函数,使用yield关键字来生成一个值,并且在每次生成值后暂停执行,等待下一次调用
# 下面是一个简单的生成器函数示例,用于生成斐波那契数列
def fibonacci():
    a, b = 0, 1
    while True:
        yield a
        a, b = b, a + b

fib = fibonacci()
print(next(fib))  # 输出:0
print(next(fib))  # 输出:1
print(next(fib))  # 输出:1

生成器函数可以一次生成一个值,而不是一次生成所有值,这使得生成器函数非常适合处理大量数据或无限序列

  1. 使用functools模块中的partial函数进行函数参数固定:partial函数可以固定函数的部分参数,生成一个新的函数
from functools import partial

def power(x, y):
    return x ** y

square = partial(power, y=2)
cube = partial(power, y=3)

print(square(5))  # 输出 25
print(cube(5))  # 输出 125

  1. 使用try...else语句在try块没有引发异常时执行特定的代码
try:
    # 可能会引发异常的代码
    result = 10 / 2
except ZeroDivisionError:
    # 如果发生ZeroDivisionError异常
    print("除数不能为零!")
else:
    # 如果没有发生异常
    print("结果为:", result)

类似的还有try…finally无论是否发生异常,都会执行

try:
    # 可能会引发异常的代码
    f = open('example.txt', 'r')
    # 其他操作
except IOError:
    # 如果发生IOError异常
    print("无法打开文件")
else:
    # 如果没有发生异常
    print(f.read())
finally:
    # 无论是否发生异常,都会执行的清理代码
    f.close()

  1. 通过signal解耦代码
import signal
import os

# 定义一个事件处理函数
def handle_event(signum, frame):
    if signum == signal.SIGUSR1:
        print("接收到用户定义信号1,执行事件A")
        # 执行事件A的逻辑
    elif signum == signal.SIGUSR2:
        print("接收到用户定义信号2,执行事件B")
        # 执行事件B的逻辑
    else:
        print(f"接收到未知信号: {signum}")

# 注册事件处理函数
signal.signal(signal.SIGUSR1, handle_event)  # 注册处理用户定义信号1的事件处理函数
signal.signal(signal.SIGUSR2, handle_event)  # 注册处理用户定义信号2的事件处理函数

# 模拟发送事件信号
def send_event1():
    # 发送用户定义信号1
    print("发送用户定义信号1")
    os.kill(os.getpid(), signal.SIGUSR1)

def send_event2():
    # 发送用户定义信号2
    print("发送用户定义信号2")
    os.kill(os.getpid(), signal.SIGUSR2)

# 执行事件
send_event1()  # 执行事件1
send_event2()  # 执行事件2

---------------------------END---------------------------

题外话

感谢你能看到最后,给大家准备了一些福利!

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。


👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

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

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img

二、Python兼职渠道推荐*

学的同时助你创收,每天花1-2小时兼职,轻松稿定生活费.
在这里插入图片描述

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

STM32平台中ARM架构向量表配置:手把手教程 深入讲解STM32平台下arm架构的向量表配置方法,结合实际操作步骤,帮助开发者掌握中断向量的定位与初始化,提升嵌入式系统开发效率。 阅读详情

相关推荐

RPA实战-UiPath自动化处理Outlook邮件附件全流程解析

本文详细解析了如何使用UiPath实现Outlook邮件附件的自动化处理全流程,涵盖环境配置、核心流程实现、高级功能扩展及性能优化技巧。通过RPA技术,企业可大幅提升邮件附件处理效率,减少人工操作错误,适用于财务、物流等多个场景。

weixin_33701251的博客 426

如何理解Python中的yield用法?

的函数是一个生成器,这个生成器有一个方法就是next,next就相当于“下一步”生成哪个数,这一次的next开始的地方是接着上一次的next停止的地方执行的。但是,如果数据集有某种逻辑,就不必存储在一个列表中,只需编写一个生成器,它将在需要时生成这些值,基本不占用内存。所以调用next的时候,生成器并不会从函数的开始执行,只是接着上一步停止的地方开始,然后遇到。的同胞兄弟来看,他们都在函数中使用,并履行着返回某种结果的职责。第三次调用也是如此,返回生成的值(3),生成器耗尽,程序终止;的函数被称为生成器。

分享Python、数据分析、人工智能前沿知识 400

单窗算法的地表温度反演:谷歌地球引擎GEE代码

该论文基于Statistical Mono-Window(SMW)算法,对地表温度加以求解。其中,简单地说,SMW算法即是通过简单的线性关系,对由单热红外波段所得的大气表观亮温与地表温度之间的经验关系加以表示,从而计算得到LST。

2301_78834737的博客 549

Python 编程记录

是 Python 中用于定义生成器函数的关键字。生成器函数是一种特殊的函数,它可以暂停执行并保存当前的状态,然后在需要时恢复执行,从而生成一个序列。语句时,它将变成一个生成器函数。每次调用生成器函数时,它会返回一个生成器对象,而不是立即执行函数体内的代码。函数时,生成器函数将从上次暂停的位置继续执行,直到再次遇到。后面的值返回给调用者。已经执行到了最后一行,如果此时再使用一次。是一个生成器函数,它包含了三个。三次将依次输出 1、2 和 3。时,生成器函数会执行到下一个。下面是一个简单的示例,演示了。

Naoba的博客 287

Frida实战:SSL Pinning绕过技术全解析

本文详细解析了如何使用Frida工具绕过SSL Pinning技术,包括环境搭建、四种实战绕过方案及常见问题排查指南。通过具体代码示例和实战经验,帮助安全研究人员快速掌握SSL Pinning绕过技术,适用于金融类App的安全测试场景。

weixin_42530732的博客 187

1.47寸ST7789V3彩屏硬件设计与驱动调试指南

TFT LCD是一种基于薄膜晶体管阵列控制像素明暗的主动式显示技术,其核心依赖于专用驱动IC(如ST7789V3)完成时序生成、GRAM管理与伽马校正。该类小尺寸彩色显示屏广泛应用于嵌入式HMI、IoT终端与可穿戴设备,具备高PPI、低功耗和SPI接口易集成等工程优势。理解RGB565数据格式、SPI Mode 0通信时序及关键寄存器(如0x36方向控制、0x3A像素格式、0x2A/0x2B地址窗口)是实现稳定显示的基础;而正确处理电源设计(严禁5V直供)、复位时序与背光PWM调光,则直接决定系统可靠性与能

weixin_30995917的博客 165

Python的md5加密

Python md5加密 #!/usr/bin/python # -*- coding: UTF-8 -*- ''' zhouzhongqing 各种测试 ''' #md5 import hashlib if __name__ == '__main__': '''md5的测试 ''' m = hashlib.md5() m.update(b"123456") #参

愤怒的苹果ext的博客 1440

微信小程序推送微信服务号模板消息

微信小程序中发送微信服务号模板消息,无需用户手动确认订阅,无需绑定开放平台,无需使用UnionId。

qq_20751269的博客 1556

python学习之路day2-循环

while 循环猜三次年龄,猜错了三次程序退出# -*- coding:utf-8 -*-age = 56 count = 0 while count < 3 : guess_age = int(input("请输入年龄:")) if guess_age == age: print("你猜对了") break elif guess_age >

第一天 215

[PCIE5.0] 4.2.3.2 Encoding of Presets

• 发射器预设:发射器预设值用4位二进制编码,表示不同的预设设置(P0 到 P10),这些设置定义了信号的传输特性。• 接收器预设提示:接收器预设提示是通过3位二进制编码告诉接收器建议的增益值,用于调整接收器的灵敏度(适用于8.0 GT/s数据速率)。

系统固件工程师 574

双Orin PCIe RC&EP模式互通

orin pcie 互通

乐于分享 3876

Python_yield

跟普通的 return 不同的是,yield 会返回一个值,并且保存当前函数的状态,以便下次迭代时从此状态继续执行。利用 yield,我们可以在不占用大量内存的情况下获取数列中的任意多个元素。这个生成器函数会依次返回 1、2 和 3,并且在每次 yield 之后都会暂停,直到被再次调用。yield是Python中的关键字,用于在函数中返回生成器。当函数被调用时,yield会返回一个值,并保存当前函数状态。下次迭代时,函数会从保存的状态继续执行,而非从头开始。此函数会依次返回0到n-1的值。

- 566

FanucROBOGUIDE软件二次开发:使用ROBOGUIDEAPI进行编程

菜单栏:位于界面顶部,提供文件、编辑、视图、插入、格式、工具、窗口和帮助等选项。工具栏:包含常用的工具按钮,如新建、打开、保存、运行、停止、机器人控制等。工作站视图:显示工作站的3D模型,用户可以在这里放置机器人、工件、工具和其他设备。机器人控制面板:用于控制机器人运动,包括手动移动、程序编辑和运行。程序编辑器:在这里可以编写和编辑机器人程序,支持Fanuc的R-30iB Plus和R-30iB控制柜的程序格式。状态栏:显示当前工作站的状态信息,如机器人位置、程序状态等。

kkchenjj的博客 1406

python中continue只结束本次循环_Python continue继续循环用法总结

Python怎么return后让循环继续运行?执行到return语句时,会退出函数,return之后的语句不再执行。 但将return语句放在try语句块中,是个例外,finally语句块中的语句依然会执行 。 举例: 正常函数:执行到该return语句时,函数终止,后边的语句不再执行 def fun(): print 98 retu如若相爱,便携手到老。如若错过,便愿她安好。python con...

weixin_39890708的博客 3007

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

[攻略][Python]简单实现程序的暂停执行与继续执行

在使用python时,经常会暂停(不是停止)运行程序查看结果,网上的方法比较多,但都会用到专用的库,因此比较麻烦且繁琐。考虑到使用python经常会用到opencv库,所以可以使用opencv库中的相关函数进行实现。 使用到的函数或库 1.cv2.imshow() 2.cv2.waitKey() 3.time.sleep() 4.cv2.putText() 5.np.zeros() 程序如下 ...

指甲的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python在plt.show()后关闭窗口,继续运行命令的方法

Python在plt.show()后关闭窗口,继续运行命令的方法

qq_36248632的博客 6万+

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

python实现按回车继续_实现python版本的按任意键继续/退出

某天在群内有同学问到,在python下我用input或者raw_input都得输入完后回车才能获取到输入的值,那如何实现任意键退出暂停等功能呢,我当时也没有多想,因为接触python时间也不算长,主要还是Linux下的。要实现该功能,需要的就是暂停程序、等待并捕捉用户的一个键盘输入,然后继续执行。Python 有内建的库能帮我们实现该功能,不过要区别对待 Windows 和 Linux。当然,Wi...

weixin_39989222的博客 5360

python实现按回车继续_python实现按任意键继续执行程序,python继续执行

python实现按任意键继续执行程序,python继续执行在windows下写bat的时候,通过pause命令,可以暂停程序运行,例如经常见的程序会在终端提示”按任意键继续……”,用户在终端回车后程序可以接着运行,这个功能有多大用途今天暂且不说,但我觉得应该有很多人也想在python下实现这个功能,这样当自己写的python程序运行时, 突然给出这么一个提示,然后自己再来个帅气的回车,我觉得肯定给...

weixin_39743622的博客 1169

python if continue的用法_Python continue继续循环用法总结

Python之 continue继续循环在循环过程中,可以用break退出当前循环,还可以用continue跳过后续循环代码,继续下一次循环。假设我们已经写好了利用for循环计算平均分的代码:L = [75, 98, 59, 81, 66, 43, 69, 85]sum = 0.0n = 0for x in L:sum = sum + xn = n + 1print sum / n现在老师只想统计...

weixin_39733812的博客 6599

python怎么暂停运行_python如何让程序暂停执行和继续执行?

Python让程序继续执行的方法:一、使用到的函数或库1.cv2.imshow()2.cv2.waitKey()3.time.sleep()4.cv2.putText()5.np.zeros()二、程序说明:运行后,无操作则等待一段时间后继续运行程序;若按空格键暂停运行程序,再按空格键继续运行程序。import timeimport cv2import numpy as npdef pause_k...

weixin_39578457的博客 6887

python实现按回车键继续程序_python实现按任意键继续执行程序

在windows下写bat的时候,通过pause命令,可以暂停程序运行,例如经常见的程序会在终端提示”按任意键继续……”,用户在终端回车后程序可以接着运行,这个功能有多大用途今天暂且不说,但我觉得应该有很多人也想在python下实现这个功能,这样当自己写的python程序运行时, 突然给出这么一个提示,然后自己再来个帅气的回车,我觉得肯定给人一种非常专业的感觉,最起码自己肯定被自己迷倒了,所以今天...

weixin_39560604的博客 4426

python3换行继续输入_python换行继续输入应该怎么做

python换行继续输入应该怎么做发布时间:2020-04-23 09:58:02来源:亿速云阅读:193作者:小新今天小编给大家分享的是python换行继续输入应该怎么做,相信很多人都不太了解,为了让大家更加了解python换行继续输入的方法,所以给大家总结了以下内容,一起往下看吧。一定会有所收获的哦。python换行继续输入的方法:1、在一行末尾加上‘\’,例如:data11=data21=d...

weixin_30029951的博客 4870

在Python中继续执行语句

Python继续声明 (Python continue statement) Like other programming languages, in python, in python, continue statement is used to continue the loop executing by skipping rest of the statement written afte...

cumtv80668的专栏 2967

基于Python的模型的保存、恢复、继续训练

如果运行了上面的代码,那么其实两个关键数据(网络模型结构、训练的权重)就已经在内存中了,主要存在model中,因为刚刚就是训练的它,程序还没有关闭,它还是活的。如果某次你训练了2天数据,还没有结束,但是你要提着鸡蛋去走亲戚,因为没有人看护服务器,你需要先暂停。刚刚耗费了200个小时,认识了30万张狗狗的图片,并计算出了他们的特征,能够轻松分辨出哈士奇和狼,结果计算机一断电,它又空白了。这时,你可以新建一个文件单纯只做识别的任务,因为训练好的信息已经存储到json和h5里了,你读取出来使用就可以了。

毕业作品网站 7943
上一篇: Python的异常捕获,包,模块
Python_P叔
博客等级 码龄3年 5444粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值