python基础--函数,作用域介绍(八)

python函数之作用域 python函数之作用域: >>> def times(x,y): return x*y >>> times(2,4) 8 >>& 阅读详情
# 函数,函数也是一个对象
# 	对象是内存中用来存储数据的区域。
# 	函数可以用来保存一些可执行代码,并且在需要的时候对这些代码多次调用。
# 创建函数:
# 	def 函数名():
# 		代码块
def fn():
	print('this is my first function')
# 函数中的代码块不会直接执行,需要调用该函数fn()后才会执行。
print(fn,type(fn))
fn()

# 定义函数求两个数之和,定义函数时指定形参
def sum(num1,num2):
	return int(num1) + int(num2)
# 调用函数时传递实参
print(sum(12,44))

# 求任意三个数的乘积
def mul(a,b,c):
	print(a*b*c)
mul(1,2,3)

# 定义形参时,可以为形参指定默认值
# 指定默认值后,如果传递了参数则默认值无效。如果没有传递参数,就会使用默认值。
# 实参的传递方式,位置参数:就是将对应位置的实参复制给对应位置的形参。
# 第一个实参赋值给第一个形参...

# 关键字参数:可以不按照形参定义的顺序去传递参数,
# 而是根据参数名去传递参数

# 位置参数和关键字参数可以混合使用,但是位置参数必须写在关键字参数前面。

# 函数在调用时,解析器不会检查实参的类型,实参可以传递任意类型的对象。
b = 123
b = True
b = None
b = '123'
print(sum(12,b))

# 在函数中形参进行重新赋值不会影响其他变量
# 如果形参是一个对象,通过形参去修改对象时会影响到所有指向该对象的变量。
def fn4(a):
	a[1] = 11
	print(a)
c = 10
c = [1,2,3]
fn4(c)
print(c)

# 不定长参数,
# 定义函数时,可以在形参前边加上*,这样将会获取所有的实参
# 实参会保存到一个元组中,
def fn2(*a):
	print(a)
fn2(1,2,3)

# 带*号的形参只能有一个,并且可以和其他参数配合使用
def fn3(a,b,*c):
	print(a,b,c)
fn3(1,2,3,4,5,6)

# 可变参数不是必须写在最后,但是带*的参数后的所有参数必须以关键字参数形式传递。 
# c必须使用关键字参数
def fn5(a,*b,c):
	print(a,b,c)
fn5(1,2,3,4,5,c=8)

# 如果第一个参数就是*号开头,后面的参数必须都使用关键字参数
def fn6(*a,b,c):
	print(a,b,c)
fn6(1,2,3,b=4,c=0)

# 形参只接收位置参数,不接受关键字参数
def fn7(*a):
	print(a)
fn7(12)

# **形参可以接收其他的关键字参数,会将这些参数保存在字典中。
# 字典的key就是参数名,value就是参数的值。
# **形参只能有一个,并且必须写在所有参数的最后
def fn8(a,b,**c):
	print(a,b,c)
fn8(a=1,b=2,c=4,d=9,f=8)

# 参数的解包
t = (10,20,30)
def fn(a,b,c):
	print(a,b,c)
# 传递实参时,也可以在序列类型的参数前添加*号,
# 这样会自动将序列中的元素依次作为参数传递,
# 但是要求序列中元素的个数必须个形参的个数一致。
fn(*t)

# 通过**来对字典进行解包操作
d = {'a':100,'b':200,'c':300}
fn(**d)

# 返回值:就是函数执行以后返回的结果
# 可以通过return来指定函数的返回值
# return后面跟什么类型值,就会返回什么类型值,
# 可以返回任意对象,也可以返回一个函数
# return后面的代码都不会被执行
# 如果不写return 或者只写一个return,默认返回None。
def sums(*nums):
	result = 0
	for num in nums:
		result += num
	if result > 10 :
		return result
	else :
		return fn9()
def fn9():
	print('hello')
	return
sums(1,2)

# fn9和fn9()区别
print(fn9) # 只是打印函数对象,没有调用
print(fn9()) # 调用函数

# help() 是python中的内置函数,通过help()函数可以查询函数的用法
# 语法 help(函数对象)
help(print)

# 文档字符串
# 在定义函数时,可以在函数内部编写文档字符串,
# 文档字符串就是函数的说明
# 编写文档字符串时,可以通过help()函数查看函数说明
def fn(a:int,b:bool,c:str):
	'''
		这就是文档字符串,也是就文档注释
	'''
	return 12
 

# 作用域(scope):指变量生效的区域。
# 作用域一共有两种:
# 	全局作用域
# 		全局作用域在程序执行时创建,结束后销毁
# 		所有函数以外的区域都是全局作用域
# 		全局作用域中定义的变量都属于全局变量,全局变量可以在任意位置访问。
# 	函数作用域
# 		函数作用域在函数调用时创建,调用结束销毁
# 		函数每调用一次救护产生一个新的函数作用域
# 		在函数中定义的变量都是局部变量,只能在函数中访问
# 	变量查找
# 		使用变量时,会优先在当前作用域中查找变量,有则直接使用,
# 		如果没有继续在上一级作用域中查找,依次类推,如果全局作用域中也没有找到变量则会报错。
a = 11	 		
def fn():
	# global a # 在函数内部声明全局变量,就可以将其作为全局变量修改。
	a = 1
	print(a)
	def fn2():
		a = 2
		print(a)
	fn2()
fn()


# 命名空间:变量存储的位置,每一个变量都需要存储到指定的命名空间汇总
# 每一个作用域都有一个对应的命名空间
# 全局命名空间用来保存全局变量,函数命令空间用来保存函数中的变量
# 命名空间实际就是一个存储变量的字典。
# 使用locals()获取当前作用域的命名空间
scope = locals()
print(scope)

# 函数内部命名空间
def fn():
	a = 10
	gl = globals() # 在任意位置获取全局作用域的命名空间
	scope = locals()
	print(scope)
fn()

 

避坑指南:Vue调用摄像头常见6大报错解决方案(navigator.mediaDevices全兼容方案) 本文深入剖析了在Vue应用中调用摄像头时常见的六大报错,如权限拒绝、设备未找到等,并提供了基于navigator.mediaDevices的全兼容解决方案。内容涵盖从HTTPS环境配置、浏览器兼容性处理到摄像头资源管理与高级错误处理,旨在帮助开发者构建稳定可靠的企业级摄像头应用。 阅读详情

相关推荐

智能解决装箱问题:使用优化算法实现高效包装

装箱问题(Bin Packing Problem)是组合优化领域中的一个经典问题,主要涉及如何将一系列对象高效地装入有限数量的容器(或“箱”)中,同时满足特定的约束条件。这个问题的目标是最小化所需使用的箱子数量或者最大化箱子的装载效率,以减少空间或资源的浪费。

MindOpt_003的博客 5545

python函数(一)——def语句,作用域和参数

aa

vinkuan的博客 13万+

Claude Code × SolidWorks:批量填属性、格式转换、BOM 汇总自动化实战

摘要:本文介绍利用 Claude Code 生成 VBA 宏实现 SolidWorks 批量处理任务的自动化方案。包含5个实战案例:批量填写自定义属性(60分钟任务→10秒)、批量格式转换(80分钟→30秒)、多配置工程图自动生成(120分钟→2分钟)、滚珠丝杠选型计算(15分钟→10秒)和装配体递归BOM导出(40分钟→1分钟)。所有代码基于SolidWorks 2020+ API,提供完整VBA实现和操作指南,可显著提升设计效率。

m0_64424835的博客 611

5天学Python(2)——函数

Python学习笔记 Python学习笔记(1)——语言基础 Python学习笔记(2)——函数 目录Python学习笔记一、函数简介二、参数2.1 简单参数2.2 不定长参数2.3 参数的解包(拆包)三、返回值 一、函数简介 # 定义函数时指定形参 def fn2(a , b) : print(a,"+",b,"=",a + b) # 调用函数时,来传递实参 fn2(10,20) # 10 + 20 = 30 fn2(123,456) # 123 + 456 = 579 二、参数 2.1 简

一名研究牲的自我救赎 508

STM32 FOC电机控制:手把手教你用CubeMX配置TIM1中心对齐PWM(含代码避坑)

本文详细解析了STM32 FOC电机控制中TIM1中心对齐PWM的配置方法,涵盖CubeMX图形化设置、HAL库代码调用及常见问题排查。特别针对L6230Q驱动芯片的使能逻辑和死区时间配置提供实用指南,帮助开发者高效实现无刷电机的高性能控制。

weixin_27027459的博客 442

2023-11-20 MySQL ARM64 银河麒麟

背景 MySQL是常用数据库,Windows安装比较容易,笔者也有记录。现在国产化系统银河麒麟中安装,不同的是软件安装包不容易下载。一是安装的方式,再一个是MySQL本身的版本,网上很多文档说明其实都是对的,但是为什么那么多都不一样呢?就是MySQL本身的版本差异比较大,这些差异笔者也不是很清楚,但是不要用8和5.7的差异非常大,8即使安装的很顺利,在使用过程也会很多坑,导致我宁愿卸载8,也要重新...

jxmh1991@163.com 808

好一个万能的def():附带符号用法大全

刚开始学Python,对函数定义不太熟悉,想深入理解def的各种用法。看这里!def除了基本定义、语法结构、示例,还有很多高级用法比如默认参数、可变参数、匿名函数、递归、作用域、装饰器、生成器函数、类方法、静态方法、高阶函数、函数注解、闭包、lambda表达式、嵌套函数、协程、函数属性、异常处理、文档字符串、函数作为参数或返回值、以及最佳实践等。在 Python 中,def是定义函数的核心关键字,其用法远不止基础语法。以下是def。

weixin_44904675的博客 4309

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor

b站up“麦辣翅翅”《YOLOv8修改损失函数》问题解决RuntimeError: The size of tensor a (4) must match the size of tensor ;TypeError: bbox_iou() got an unexpected keyword argument 'xywh‘

weixin_68331871的博客 3020

Python的作用域

Python这种语言就是写起来爽得很,调起来乱七八糟。 注意点: a) if/else, for, while的内部定义的变量,外部也可以引用 if 1 == 1: name = "lzl" print(name) # lzl for i in range(10): age = i print(age) # 9 b) 函数内部定义的变量是相互独立的 def func...

jason_cuijiahui的博客 1276

Jetson Nano之CSI摄像头操作方法

jetson端csi摄像头的应用方法

ZONGXP的博客 1万+

红米K70至尊版修复“nv损坏”主板电阻图示 mtk芯片工程固件刷写与步骤说明

💝💝💝红米K70至尊版 机型代码:rothko,搭载天玑9300+旗舰芯片.后置5000万像素索尼IMX906高动态OIS主摄,800万像素超广角镜头,200万像素微距镜头,前置2000万像素摄像头,也适用于以下型号的小米机型:2407FPN8EG,2407FPN8ER,XIG06,A402XM,2407FRK8EC。 💝💝💝通过博文了解 1💝💝💝-----此机型工程固件的资源刷写注意事项 2💝💝💝-----此机型刷写工程固件预览界面 3💝💝💝------红米K

小马哥的专栏 1458

【Python】python系列之函数作用域

本文介绍了Python中的LEGB作用域规则,详细解析了变量查找的四个层级:Local局部作用域、Enclosing闭包作用域、Global全局作用域和Built-in内置作用域。通过具体代码示例,展示了各层级的变量访问规则和特性,包括函数内部变量的局部性、闭包函数的变量引用、global关键字的使用以及Python内置函数的调用。文章还通过嵌套函数中的变量查找案例,直观地演示了Python按照LEGB顺序查找变量的过程,帮助读者理解变量在不同作用域中的优先级和访问权限。

康师傅没有眼泪 1804

103:vue+cesium 设置球体水部分颜色为黄色

本示例在 Vue + cesium 项目中设置球体水部分颜色为黄色。这里的操作是将球体内部设置为空的,在地球内部添加一个黄色的圆球,这样水的部分就被突出出来了。直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果.

大剑师兰特的GIS世界 623

Python基础:变量作用域与嵌套函数

本文详细介绍了Python中的变量作用域与嵌套函数的相关概念。

an_yu_xin的博客 1455

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

python 函数—变量作用域

变量作用域指南

weixin_65289420的博客 1862

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

python函数基础与变量作用域

函数是面向过程编程的最小单位,也是一种数据- 目的就是封装方便以后复用- 函数分自定义函数,内置函数(python官方),第三方函数(第三方库)1. def:用于声明一个函数,告诉 Python 这是一个函数的定义。2. function_name:函数名,一个有效的标识符,规则和变量名一致。3. parameters:形参,可以是0 ~ n 个,参数之间用逗号分隔。4. 函数体:定义函数执行的具体操作。5. return:指定函数的返回值,没有则默认返回None。

Clocky7 641

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python语法基础中作用域、匿名函数、匿名函数的参数

在Python中,作用域指的是变量的可访问性和可见性范围。Python中的作用域分为全局作用域和局部作用域。

2402_88219100的博客 1065

【Python基础教程】第四章:函数与作用域

摘要:本文深入讲解Python函数与作用域知识,先阐述函数定义、文档字符串书写规范,再剖析位置、关键字、默认及可变参数的传递机制,并引入lambda匿名函数用于排序。以递归计算斐波那契数列为例展现函数应用,同时详细介绍局部、全局作用域,global关键字及闭包概念。通过基础与进阶练习题巩固知识,借助清晰可视化流程图展示递归函数与闭包函数调用逻辑,助力读者掌握Python函数核心要点。

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 1259

Python 变量作用域与函数

Python 变量作用域一个程序的所有的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的,变量的作用域决定了在哪一部分程序你可以访问哪个特定的变量名称,两种最基本的变量作用域,第一种是局部变量,第二种是全局变量.定义在函数内部的变量拥有一个局部作用域,定义在函数外的拥有全局作用域,而局部变量只能在其被声明的函数内部访问,全局变量则可以在整个程序范围内访问.变量的作用域...

微软技术分享 8684

python函数基础(定义,调用,形参,实参,作用域)

定义def 函数名(形参):函数体调用函数名(实参)形参:函数定义时写的参数名字,占坑位的;实参:调用函数时传入的值函数的返回值函数体中使用return语句;执行到return语句,立刻返回其结果;函数则不会执行return后的其他语句;若没有return语句,函数最后执行完返回None。

目前正在学习python,后面陆续更新自己整理的知识点~ 1334

Python各种作用域中的函数

本文观点中系个人理解,如有错误请不吝指正。 Python中的作用域(或者说上下文)            python这种混杂类型语言(动态类型\解析执行),采用了分离作用域的方式来避免重名问题,让我们能够更好的组织程序代码的结构,直观上来讲Python分为以下几种作用域:            1.包(Package):                      包含一些模块,需

践行者John的专栏 1359

【python基础】python中变量作用域介绍

Python的作用域遵循LEGB规则(Local -> Enclosing -> Global -> Built-in)。使用global和nonlocal关键字可以影响变量的作用域。变量的作用域决定了它的生命周期和访问方式,理解作用域对于避免错误和调试非常重要。如果你有具体的作用域问题或更深的探讨,随时可以提出来!

cheng_ji的专栏 905

python函数作用域_八、python函数调用/作用域

一、函数的相互调用defeat(name,food):print('{}喜欢吃的食物:{}'.format(name,food))defcongratulate(offer_name,money):'''庆祝拿到offer'''print('{}拿到了{}元的offer'.format(offer_name,money))eat(offer_name,'小龙虾')congratulate('zjx...

weixin_39639040的博客 105

Python基础(作用域、内置函数)

-----------小编学习python第八天的总结----------- 作用域 概念:作用域指的是变量在程序中的应用范围 作用域按照变量的定义位置可以分为4类:L E G B local(函数内部)局部作用域 enclosing(嵌套函数的外层函数内部)嵌套作用域 global(模块全局)全局作用域 built-in(内建)内建作用域 访问顺序:L->E->G->B 内层作用域中可以访问外层作用域中的数据 外层作用域中不能访问内层作用域中的数据 在python中,模块、类、函数会产

新手未出村的博客 1768

python函数中变量的作用域_Python基础手册24——函数中变量的作用域

五、变量的作用域当你在一个程序中使用变量名时,Python创建、改变或查找变量名都是在命名空间(一个保存变量名的地方,这个地方的范围也叫作变量的作用域)中进行的。在创建变量时,Python将变量名被创建的地点关联给(绑定给)一个特定的命名空间。也就是说在代码中变量创建的位置决定了这个变量将存在于哪个命名空间,也就是它可以被访问的范围。函数的作用域有助于防止程序之中变量名的冲突,并且有助于函数成为更...

weixin_39564036的博客 677

python基础八:函数

1、函数简介 1.1语法 # 语法 # def 函数名([形参1,形参2,形参3....]): # 代码块 #函数名()调用函数 1.2介绍 函数是个对象(function) 函数用来保存一些可执行的代码,在你需要的时候可以对这些语句进行多次调用,函数中保存的代码不会立即执行,需要调用函数的时候代码才执行 fn是函数对象 fn()调用函数 print是函数对象 print()调用函数 2、函数的参数 2.1形式参数 在定义函数的时候,可以在函数后面的括号里面定义数量不等的形参 多个形参要以 ,隔开

weixin_49088841的博客 309
上一篇: Linux基本操作命令(七)
下一篇: Linux基本操作命令--流程控制语句-while和case(八)
geek-wmy
博客等级 码龄9年 322粉丝 126原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值