当前位置: 首页 > news >正文

python笔记(函数参数、面向对象、装饰器、高级函数、捕获异常)

Python 笔记

函数参数

默认参数

在Python中,我们可以为函数的参数设置默认值。如果调用函数时没有传递参数,那么参数将使用默认值。

def greet(name='World'):print(f"Hello, {name}!")greet()        # 输出:Hello, World!
greet('Alice') # 输出:Hello, Alice!

可变参数

可变参数允许我们向函数传递任意数量的参数。

def sum(*numbers):total = 0for number in numbers:total += numberreturn totalprint(sum(1, 2, 3)) # 输出:6
print(sum(4, 5))    # 输出:9
print(sum(6))       # 输出:6

面向对象

Python 是一种面向对象的语言,它支持通过类来创建对象。

类定义

类用于定义对象的属性和方法。

class Person:def __init__(self, name, age):self.name = nameself.age = agedef greet(self):print(f"Hello, my name is {self.name}. I'm {self.age} years old.")person1 = Person('Alice', 25)
person2 = Person('Bob', 30)person1.greet() # 输出:Hello, my name is Alice. I'm 25 years old.
person2.greet() # 输出:Hello, my name is Bob. I'm 30 years old.

装饰器

装饰器是一种语法,可以修改函数的行为。它可以在不修改原始函数代码的情况下,添加额外的功能。

def log(func):def wrapper(*args, **kwargs):print(f"Calling {func.__name__} with arguments: {args}")return func(*args, **kwargs)return wrapper@log
def add(a, b):return a + bprint(add(2, 3)) # 输出:Calling add with arguments: (2, 3)#      5

高级函数

Python 中的高级函数可以接受其他函数作为参数或返回函数。

高阶函数

高阶函数是指接受一个或多个函数作为参数,并/或者返回一个函数的函数。

def apply_operation(a, b, operation):return operation(a, b)def add(a, b):return a + bdef subtract(a, b):return a - bprint(apply_operation(2, 3, add))      # 输出:5
print(apply_operation(2, 3, subtract)) # 输出:-1

匿名函数和Lambda 表达式

匿名函数是没有具名标识符的函数,我们可以将其作为参数传递给其他函数或直接调用。

Lambda 表达式是一种匿名函数的简写形式。

multiply = lambda a, b: a * b
divide = lambda a, b: a / bprint(multiply(2, 3)) # 输出:6
print(divide(6, 2))   # 输出:3

捕获异常

在Python中,我们可以使用 try...except 语句来捕获和处理异常。

try:# 可能会抛出异常的代码raise Exception("Something went wrong!")
except Exception as error:# 捕获并处理异常print(f"Error: {error}")

通过使用 try...except 块,我们可以在程序出现异常时执行特定的操作并提供更友好的错误处理。

相关文章:

python笔记(函数参数、面向对象、装饰器、高级函数、捕获异常)

Python 笔记 函数参数 默认参数 在Python中,我们可以为函数的参数设置默认值。如果调用函数时没有传递参数,那么参数将使用默认值。 def greet(nameWorld):print(f"Hello, {name}!")greet() # 输出:Hello, World! greet…...

JAVA命令总结

jps命令的基本语法如下: jps [options] [hostid]其中,options是可选参数,用于指定额外的选项,hostid是可选参数,用于指定在远程主机上执行jps命令。 以下是一些常用的jps命令选项: -q:仅显示…...

删除的PPT怎么找回来?4个必备恢复方法!

“最近的期末展示需要制作一个PPT,我熬了几个大夜才完成了,但是不知道怎么的我在删除其他文件时不小心把这个PPT一起删掉了,有什么方法可以帮我找回这个误删的PPT吗?” 我们在工作和学习中,经常都需要使用到PPT&#x…...

Binder机制总结笔记

Binder机制总结笔记 什么是Binder? Binder的Android特有的IPC通信机制。Android的四大组件Activity、Service、Broadcast、ContentProvider,不同的App等都运行在不同的进程内,他们之间的通信都需要依靠Binder完成。因此Binder在整个Android系…...

SQL SERVER 表分区

1. 概要说明 SQL SERVER的表分区功能是为了将一个大表(表中含有非常多条数据)的数据根据某条件(仅限该表的主键)拆分成多个文件存放,以提高查询数据时的效率。创建表分区的主要步骤是 1、确定需要以哪一个字段作为分…...

从零开始学习PX4源码0(固件下载及编译)

目录 文章目录目录摘要1.重点学习网址2.固件下载1.下载最新版本固件2.下载之前版本固件 摘要 本节主要记录从零开始学习PX4源码1(固件下载)的过程,欢迎批评指正!!! 下载固件主要分为两个版本,之前稳定版本和最新官网发布版本,为什么要下载两个版本,主要是说明两个版本有…...

centos格式化硬盘/u盘的分区为NTFS格式

centos7好像不支持ntfs? 对报这个,ntfs not configured in kernel。 安装了ntfs-3g就可以访问了。 插上u盘查看u盘设备 #查看硬件设备及挂载目录 df -h #查看硬件设备(包括未挂载的) fdisk -l卸载外部设备 umount /dev/sdbxxx …...

【工具】FreePic2PDF+PdgCntEditor|PDF批量添加书签(Windows)

这俩软件都不大,比较便携。 FreePic2PDF: 我下载的来源:https://www.52pojie.cn/thread-1317140-1-1.html(包含下载链接https://www.lanzoui.com/it4x6j4hbvc)下载的结果:https://pan.baidu.com/s/1r8n5G42…...

中移链浏览器简介

(1)简介 生活中,常用的互联网浏览器,是用来检索、展示以及传递Web信息资源的应用程序。用浏览器进行搜索,可以快速查找到目标信息。而对于区块链而言,也有区块链浏览器。 区块链浏览器,是指为用…...

深入浅出排序算法之计数排序

目录 1. 原理 2. 代码实现 3. 性能分析 1. 原理 首先看一个题目,有n个数,取值范围是 0~n,写出一个排序算法,要求时间复杂度和空间复杂度都是O(n)的。 为了达到这种效果,这一篇将会介绍一种不基于比较的排序方法。这…...

大坝水库安全监测终端MCU,智能化管理的新篇章!

我国目前拥有超过9.8万座水库大坝,其中超过95%为土石坝,这些大坝主要是在上世纪80年代以前建造的。这些水库大坝在保障防洪、发电、供水、灌溉等方面发挥了巨大的作用,但是同时也存在一定的安全风险,比如坝体结构破损、坝基渗漏、…...

LeetCode 面试题 16.09. 运算

文章目录 一、题目二、C# 题解 一、题目 请实现整数数字的乘法、减法和除法运算,运算结果均为整数数字,程序中只允许使用加法运算符和逻辑运算符,允许程序中出现正负常数,不允许使用位运算。 你的实现应该支持如下操作&#xff1a…...

spring-代理模式

代理模式 一、概念1.静态代理2.动态代理 一、概念 ①介绍 二十三种设计模式中的一种,属于结构型模式。它的作用就是通过提供一个代理类,让我们在调用目标 方法的时候,不再是直接对目标方法进行调用,而是通过代理类间接调用。让不…...

我用好说 AI 做二次元人设

你有没有想过自己做一部原创作品? 就像开发《星露谷物语》那样,自己把控作品的 角色、故事、载体、宣传 等方方面面,让 idea 不再只是灵光一闪。 以前是 “万事开头难”,可能第一步都举步维艰。但现在有了 AI 就不同了&#xff…...

付费阅读微信小程序源码/小程序和公众号双版本-多种付费模式前后端+独立源码

源码简介: 付费阅读微信小程序源码,这个是小程序和公众号双版本,它支持多种付费模式前后端独立源码。能够支持免费观看部分文字、视频和音频内容,而其他部分则需要付费才能继续观看。这样更方便变现。 这是付费阅读微信小程序合…...

ref、reactive、toRef、toRefs

ref 作用&#xff1a;定义一个响应式数据 语法&#xff1a;const xxx ref(initValue) 创建一个包含响应式数据的引用对象 js中操作数据&#xff1a;xxx.value 模板中读取数据&#xff1a;不需要.value,直接<div>{{xxx}}</div> 接收的数据&#xff1a;基本类型、对…...

GPT实战系列-如何用自己数据微调ChatGLM2模型训练

GPT实战系列-如何用自己数据微调ChatGLM2模型训练 目录 GPT实战系列-如何用自己数据微调ChatGLM2模型训练1、训练数据广告文案生成模型训练和测试数据组织&#xff1a; 2、训练脚本3、执行训练调整运行 4、问题解决问题一问题二问题三问题四 1、训练数据 广告文案生成模型 输…...

【数电知识点_2023.10.28】

数制与码制 十进制转二进制 8 bits 1 Byte 2|12 //121100自下而上 商为0为止 2|_ 6_…0 2|_ 3_…0 2|1…1 0…1 0.375 //0.3750.011自上而下 小数点为0为止 x 2 ———— 0.75…0 x 2 ———— 1.5…1 x 2 ———— 1…1 BCD码&#xff1a;每4位二进制表示一位十进制 8421…...

spring boot配置ssl(多cer格式)保姆级教程

1. 准备cer格式的证书&#xff1b; 2. 合并cer证书并转化成jks格式的证书 为啥有这一步&#xff0c;因为cer证书配置在spring boot项目中&#xff0c;项目启动不起来。如果有大佬想指导一下可以给我留言&#xff0c;在此先谢过大佬。 1&#xff09;先创建一个jks格式的证…...

第2篇 机器学习基础 —(4)k-means聚类算法

前言&#xff1a;Hello大家好&#xff0c;我是小哥谈。聚类算法是一种无监督学习方法&#xff0c;它将数据集中的对象分成若干个组或者簇&#xff0c;使得同一组内的对象相似度较高&#xff0c;不同组之间的对象相似度较低。聚类算法可以用于数据挖掘、图像分割、文本分类等领域…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

css的定位(position)详解:相对定位 绝对定位 固定定位

在 CSS 中&#xff0c;元素的定位通过 position 属性控制&#xff0c;共有 5 种定位模式&#xff1a;static&#xff08;静态定位&#xff09;、relative&#xff08;相对定位&#xff09;、absolute&#xff08;绝对定位&#xff09;、fixed&#xff08;固定定位&#xff09;和…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别

OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...

uniapp手机号一键登录保姆级教程(包含前端和后端)

目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号&#xff08;第三种&#xff09;后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...

MinIO Docker 部署:仅开放一个端口

MinIO Docker 部署:仅开放一个端口 在实际的服务器部署中,出于安全和管理的考虑,我们可能只能开放一个端口。MinIO 是一个高性能的对象存储服务,支持 Docker 部署,但默认情况下它需要两个端口:一个是 API 端口(用于存储和访问数据),另一个是控制台端口(用于管理界面…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...