第二十六天打卡
全局变量 global_var
全局变量是定义在函数、类或者代码块外部的变量,它在整个程序文件内都能被访问。在代码里, global_var 就是一个全局变量,下面是相关代码片段:
print("\n--- 变量作用域示例 ---")
global_var = "我是一个全局变量"
- 定义位置 : global_var 定义在函数 scope_test 外部,所以它是全局变量。
- 访问权限 :全局变量可以在函数内部被访问,如在 scope_test 函数里,通过 print(f"在函数内部,也可以看到全局变量: '{global_var}'") 就能访问到 global_var 。
- 修改规则 :若要在函数内部修改全局变量,需要使用 global 关键字进行声明。在代码里,被注释掉的 global_var = "尝试在函数内修改全局变量" 这行代码,如果没有 global 声明,Python 会创建一个新的局部变量 global_var ,而非修改全局变量。
局部变量 scope_var
局部变量是定义在函数、类或者代码块内部的变量,它只能在定义它的函数、类或者代码块内部被访问。在代码里, local_var 就是一个局部变量,相关代码如下:
def scope_test():local_var = "我是一个局部变量"print(f"在函数内部,可以看到局部变量: '{local_var}'")
- 定义位置 : local_var 定义在 scope_test 函数内部,所以它是局部变量。
- 访问权限 :局部变量只能在定义它的函数内部被访问,在 scope_test 函数外部无法访问 local_var 。如果尝试在函数外部访问 local_var ,Python 会抛出 NameError 异常。
- 生命周期 :局部变量的生命周期从函数开始执行时创建,到函数执行结束时销毁。
总结
全局变量 :定义在函数外部,整个程序都能访问,修改时需在函数内用 global 关键字声明。
局部变量 :定义在函数内部,只能在函数内部访问,函数执行结束后就会被销毁。
参数
.title()
作用是把字符串中每个单词的首字母转换成大写,其余字母转换成小写,最终返回一个新的字符串。
def describe_pet(animal_type, pet_name):"""显示宠物的信息。"""print(f"\n我有一只 {animal_type}.")print(f"我的 {animal_type} 的名字叫 {pet_name.title()}.")describe_pet("猫", "咪咪") # 使用关键字参数,顺序不重要
*toppings
当函数参数前加上 * 时,这个参数就变成了可变参数。它能接收任意数量的位置参数,并将这些参数收集到一个元组中。在 make_pizza 函数里, *toppings 会把除了 size 之外的所有位置参数收集到一个元组里,这样函数就能处理不同数量的配料了。
print(f"\n制作一个 {size} 寸的比萨,配料如下:")if toppings: # 只要toppings不为空元组,就会执行for topping in toppings:print(f"- {topping}")else:print("- 原味 (无额外配料)")
- print(f"\n制作一个 {size} 寸的比萨,配料如下:") :使用 f-string 格式化输出,提示开始制作指定尺寸的披萨。
- if toppings: :检查 toppings 元组是否为空。如果不为空,说明有额外配料。
- for topping in toppings: :遍历 toppings 元组中的每个配料。
- print(f"- {topping}") :输出每个配料的名称。
- else: :如果 toppings 元组为空,说明没有额外配料,输出“原味 (无额外配料)”。
位置参数和关键词参数区分
从函数定义角度判断
位置参数 :在函数定义时,没有默认值且位于 *args 之前的参数通常是位置参数。在 process_data 函数里, id_num 和 name 就是位置参数,因为它们没有默认值,并且在 *tags 之前。
def process_data(id_num, name, *tags, status="pending", **details):# ...
关键字参数 :有两种情况。一种是像 status 这种有默认值的参数,它必须通过关键字形式传值,被称为仅关键字参数;另一种是 **details 这种可变关键字参数,它能接收任意数量的关键字参数。
从函数调用角度判断
- 位置参数 :在函数调用时,按照函数定义中参数的顺序依次传入,不指定参数名的参数就是位置参数。例如:
process_data(103, "Charlie", "admin")
这里的 103 对应 id_num , "Charlie" 对应 name , "admin" 被 *tags 收集,它们都是按照位置传递的,所以是位置参数。
关键字参数 :在函数调用时,通过 参数名=值 的形式传入的参数就是关键字参数。例如:
process_data(name="David", id_num=104, profession="Engineer")
这里的 name="David" 、 id_num=104 和 profession="Engineer" 都是通过指定参数名来传递的,所以是关键字参数。
总结
定义时:无默认值且在 *args 前的是位置参数;有默认值或在 * 之后的是关键字参数。
调用时:不指定参数名按顺序传的是位置参数;用 参数名=值 形式传的是关键字参数。
作业
import mathdef calculate_circle_area(radius):try:if radius < 0:return 0else:return math.pi * radius ** 2except Exception:return 0# 计算半径为5、0、-1时候的面积
print(calculate_circle_area(5))
print(calculate_circle_area(0))
print(calculate_circle_area(-1))
def calculate_rectangle_area(length, width):if length < 0 or width < 0:return 0else:return length * width
def calculate_average(*args):if not args:return 0total = sum(args)return total / len(args)
def print_user_info(user_id, **kwargs):print(f"用户id: {user_id}")for key, value in kwargs.items():print(f"{key}: {value}")
def describe_shape(shape_name, color="black", **kwargs):dimensions_str = ""if kwargs:dim_parts = []for key, value in kwargs.items():dim_parts.append(f"{key}={value}")dimensions_str = ', '.join(dim_parts)else:dimensions_str = "no specific dimensions"return f"A {color} {shape_name} with dimensions: {dimensions_str}"desc1 = describe_shape("circle", radius=5, color="red")
print(desc1)
# 输出: A red circle with dimensions: radius=5desc2 = describe_shape("rectangle", length=10, width=4)
print(desc2)
# 输出: A black rectangle with dimensions: length=10, width=4desc3 = describe_shape("triangle", base=6, height=8, color="blue")
print(desc3)
# 输出: A blue triangle with dimensions: base=6, height=8desc4 = describe_shape("point", color="green")
print(desc4)
# 输出: A green point with no specific dimensions.
@浙大疏锦行
相关文章:

第二十六天打卡
全局变量 global_var 全局变量是定义在函数、类或者代码块外部的变量,它在整个程序文件内都能被访问。在代码里, global_var 就是一个全局变量,下面是相关代码片段: print("\n--- 变量作用域示例 ---") global_var …...

阿里云ECS部署Dify
一:在ECS上面安装Docker 关防火墙 sudo systemctl stop firewalld 检查防火墙状态 systemctl status firewalld sudo yum install -y yum-utils device-mapper-persistent-data lvm2 设置阿里镜像源,安装并启动docker [base] nameCentOS-$releas…...
【线段树】P4588 [TJOI2018] 数学计算|普及+
本文涉及知识点 C线段树 [TJOI2018] 数学计算 题目描述 小豆现在有一个数 x x x,初始值为 1 1 1。小豆有 Q Q Q 次操作,操作有两种类型: 1 m:将 x x x 变为 x m x \times m xm,并输出 x m o d M x \bmod M…...

日志与策略模式
什么是设计模式 IT⾏业 ,为了让 菜鸡们不太拖⼤佬的后腿, 于是⼤佬们针对⼀些经典的常⻅的场景, 给定了⼀些对应的解决⽅案, 这个就是 设计模式 日志认识 计算机中的⽇志是记录系统和软件运⾏中发⽣事件的⽂件,主要作⽤是监控运⾏状态、记录异常信 息ÿ…...

Jenkins 最佳实践
1. 在Jenkins中避免调度过载 过载Jenkins以同时运行多个作业可能导致资源竞争、构建速度变慢和系统性能问题。分配作业启动时间可以防止瓶颈,并确保更顺畅的执行。如何实现? 在Cron表达式中使用H:引入抖动(jitter)&a…...

天能股份SAP系统整合实战:如何用8个月实现零业务中断的集团化管理升级
目录 天能股份SAP系统整合案例:技术驱动集团化管理的破局之路 一、企业背景:新能源巨头的数字化挑战 二、项目难点:制造业的特殊攻坚战 1. 生产连续性刚性需求 2. 数据整合三重障碍 3. 资源限制下的技术突围 三、解决方案:S…...
搜索引擎的高级语法
文章目录 精确搜索:双引号站内搜索:site通配符搜索:*减号缩小范围:-文档搜索:filetypeURL搜索: inurl标题搜索:intitle正文搜索:intext参考链接 精确搜索:双引号 “ ” …...

uniapp-商城-59-后台 新增商品(属性的选中,进行过滤展示,filter,some,every和map)
前面讲了属性的添加,添加完成后,数据库中已经存在数据了,这时再继续商品的添加时,就可以进行属性的选择了。 在商品添加过程中,属性选择是一个关键步骤。首先,界面需要展示嵌套的属性数据,用户通…...
linux用户切换
在 Linux 系统中,/etc/shadow 文件存储了用户的加密密码和其他安全相关信息,因此默认只有 root 用户 才有权限读取。当你尝试用普通用户身份查看时,会收到 Permission denied 错误。 如何查看 /etc/shadow 文件? 方法 1ÿ…...

B2C 商城转型指南:传统企业如何用 ZKmall模板商城实现电商化
在数字化浪潮席卷全球的当下,传统企业向电商转型已不再是选择题,而是关乎生存与发展的必答题。然而,缺乏技术积累、开发成本高、运营经验不足等问题,成为传统企业转型路上的 “拦路虎”。ZKmall模板商城以其低门槛、高灵活、强适配…...
鸿蒙OSUniApp 实现的二维码扫描与生成组件#三方框架 #Uniapp
UniApp 实现的二维码扫描与生成组件 前言 最近在做一个电商小程序时,遇到了需要扫描和生成二维码的需求。在移动应用开发中,二维码功能已经成为标配,特别是在电商、社交和支付等场景下。UniApp作为一个跨平台开发框架,为我们提供…...

生成树协议 - STP
目录 BPDU STP选举机制 STP端口状态 STP计时器 STP拓扑变更机制 生成树协议(Spanning Tree Protocol),简写为STP。 STP是二层网络中用于消除环路的协议,通过阻塞冗余链路,使可用链路在拓扑上呈现出无环的树结构&…...

计算机指令分类和具体的表示的方式
1.关于计算机的指令系统 下面的这个就是我们的一个简单的计算机里面涉及到的指令: m就是我们的存储器里面的地址,可以理解为memory这个意思,r可以理解为rom这样的单词的首字母,帮助我们去进行这个相关的指令的记忆,不…...

mvc-service引入
什么是业务层 1)Model1(JSP)和Model2(模糊的mvc): MVC:Model(模型),View(视图),Controller(控制器) 视图层:用于数据展示以及用户交互的界…...

基于微信小程序的城市特色旅游推荐应用的设计与实现
💗博主介绍💗:✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示:文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…...

【暗光图像增强】【基于CNN的方法】2020-AAAI-EEMEFN
EEMEFN:Low-Light Image Enhancement via Edge-Enhanced Multi-Exposure Fusion Network EEMEFN:基于边缘增强多重曝光融合网络的低光照图像增强 AAAI 2020 论文链接 0.论文摘要 本研究专注于极低光照条件下的图像增强技术,旨在提升图像亮度…...

【Linux】ssh命令 – 安全的远程连接服务
原创:厦门微思网络 SSH命令的概念 ssh命令的功能是安全地远程连接服务器主机系统,作为OpenSSH套件中的客户端连接工具,ssh命令可以让我们轻松地基于SSH加密协议进行远程主机访问,从而实现对远程服务器的管理工作。 语法 ssh 参…...

AT9850B—单北斗导航定位芯片
AT9850B是一款高性能低功耗双频单北斗卫星导航接收机SOC单芯片。芯片集成射频前端和数字基带、多模式卫星信号处理引擎、电源管理功能,集成度高,外围应用电路简洁。 支持中国北斗B1I/B1C单频定位或B1I/B1C/B2a双频定位,支持北斗二号和三号&a…...
【开源Agent框架】CAMEL:角色扮演+任务分解
一、项目概览:重新定义智能体协作范式 CAMEL(Communicative Agents for “Mind” Exploration of Large Language Model Society)是由camel-ai社区开发的开源多智能体框架,致力于探索智能体的规模法则(Scaling Laws)。该项目通过构建包含百万级智能体的复杂社会系统,研…...

工业4G路由器IR5000公交站台物联网应用解决方案
随着城市化进程的加速,公共交通是智慧城市的重要枢纽。城市公共交通由无数的公交站台作作为节点组合而成,其智能化升级成为提升城市出行效率与服务质量的关键。传统公交站台信息发布滞后、缺乏实时性,难以满足乘客对公交信息快速获取的需求&a…...

idea中Lombok失效的解决方案
Lombok 是一个 Java 库,旨在通过注解简化 Java 代码的编写,减少样板代码,提高开发效率。它通过自动生成常见的代码(如 getter、setter、构造函数等)来减少开发者的手动编码工作。 一般Lombok失效有四步排查方案&#…...
如何借助iPaaS集成平台做好API 版本管理
在当今数字化快速发展的浪潮中,API 作为企业连接内外部系统、实现数据交互与业务协同的关键桥梁,在企业发展进程中扮演着至关重要的角色。它不仅支撑着企业的日常运营,更是企业拓展业务边界、提升竞争力的核心要素之一。然而,API …...

黑马k8s(九)
1.Pod-生命周期概述 2.Pod生命周期-创建和终止 3.Pod生命周期-初始化容器...

【超分辨率专题】一种考量视频编码比特率优化能力的超分辨率基准
这是一个Benchmark,超分辨率视频编码(2024) 专题介绍一、研究背景二、相关工作2.1 SR的发展2.2 SR benchmark的发展 三、Benchmark细节3.1 数据集制作3.2 模型选择3.3 编解码器和压缩标准选择3.4 Benchmark pipeline3.5 质量评估和主观评价研…...

vs2019及以后版本cmd指定编译环境文件的路径
1、找到文件路径 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build 2、使用方法,启动cmd,依次输入对应指令,即可切换到相应环境...
【kafka】基本命令
创建 Kafka Topic 的命令 以下是创建 Kafka Topic 的几种常用方法: 1. 使用 kafka-topics.sh 基础命令(Kafka 自带工具) bin/kafka-topics.sh --create \--bootstrap-server <broker地址:端口> \--topic <topic名称> \--parti…...
提权脚本Powerup命令备忘单
1. 获取与加载 从 GitHub 下载:(New-Object Net.WebClient).DownloadFile("https://raw.githubusercontent.com/PowerShellMafia/PowerSploit/master/Privesc/PowerUp.ps1", "C:\Temp\PowerUp.ps1")本地加载:Import-Module .\Power…...
人工智能 (AI) 在无线接入网络 (RAN) 中的变革性作用
随着电信行业向更智能、更高效的系统迈进,将 AI 集成到 RAN 中已不再是可有可无,而是至关重要。 随着 6G 时代的到来,人工智能 (AI) 有望降低运营成本,并带来更大的盈利机会。AI-RAN 正处于这一变革的前沿,在 RAN 环境…...

一个完整的项目示例:taro开发微信小程序
前一周完成了一个项目,体测成绩转换的工具,没做记录,。这次计划开发一个地图应用小程序,记录一下。方便给使用的人。 一、申请微信小程序,填写相应的信息,取得开发者ID。这个要给腾讯地图使用的。 二、申…...
什么是SMBus
一、SMBus的定义与背景 基本概念 SMBus(System Management Bus,系统管理总线) 是一种基于IC(Inter-Integrated Circuit)协议的轻量级两线制串行通信总线,由Intel于1995年提出,主要用于低带宽系统…...