python函数

Python之函数 将一段实现功能的完整代码,使用函数名称进行封装,通过函数名称进行调用使用关键字def确定函数名称、参数名称、参数个数、编写函数体(用于实现函数功能的代码)在函数定义处的参数和函数内部定义的变量在函数外定义的变量或函数内部使用global关键字修饰的变量指没有名字的函数。这种函数只能使用一次在一个函数的函数体内调用该函数本身。 阅读详情

1.函数的声明

# 一些准备好的代码,在需要的时候可以调用
# 在python中,使用def关键字来声明函数
# 语法:
# def 函数名(参数):
#     具体内容

2.函数的调用

# 函数的调用
def aa():
    print("这是一个函数哦")
    print("里面有很多数据呢")

n = int(input("请输入年龄"))

if 0 <= n <= 5:
    for w in range(3):
        aa()
elif 5 < n <= 10:
    for e in range(2):
        aa()
else:
    aa()

# 函数的参数

def bb(name, age):
    print("学生叫:", name)
    print("年龄:", age)

# 默认
bb("zhao", 12)

# 规定接收字段
bb(age=23, name="liu")

3.带参数和返回值的函数

# 带参带返回值的函数
def cc(num1, num2):
    c = num1 + num2
    return c

print(cc(1, 3))

4.函数说明

# 函数的说明
def add(a, b):
    """
    这是一个函数说明:计算二个数字之和的函数
    :param a: 第一个数值
    :param b: 第二个数值
    :return: 返回结果
    """
    return a+b

5.全局变量和局部变量

# 全局变量和局部变量
# 全局变量可以在整个py文件中访问
a = 100
word = "he"

def test():
    # 在函数内部定义的变量,它是局部变量,只能在函数中使用
    x = "hello"
    print('x = {}'.format(x)) # hello
    # 如果局部变量和全局变量同名,会在函数内部定义一个新的局部变量
    # 而不是修改全局变量
    a = 10
    print('函数a = {}'.format(a)) # 10
    # 函数内部如果想要修改全局变量 需要使用global对变量进行声明
    # 可以通过函数修改全局变量的值
    global word
    word = "aaa"
test()

print("函数外部a = {}".format(a)) # 100
print("函数外部word = {}".format(word)) # aaa

# 内置函数 golbals() locals() 可以查看全局变量和局部变量

6.一个函数返回多个返回值

# 函数多个返回值
def jie(c, b):
    x = c // b
    y = c % b

    # 一般情况下,一个函数最多只会执行一个return语句
    # 特殊情况(finally语句)下,一个函数可能会执行多个return语句
    # return x  # return语句表示一个函数的结束
    return x, y
    # 返回的还可以是一下几种形式
    # return {'x': x, 'y': y}
    # return [x, y]
    # return (x, y)
s = jie(13, 5)
print("商是:{},余数:{}".format(s[0], s[1]))

7.函数总结

# 函数的声明:使用关键字def来声明一个函数
# 函数的格式:def 函数名(形参1, 形参2...)
# 函数的调用:函数名(实参1, 实参2...)
# 函数的返回值:使用return语句返回函数的执行结果
# 函数返回多个结果,就是将多个数据打包成一个整体返回
# 可以使用字典和列表,通常情况下选择使用元组

# 函数名也是一个标识符
# 由数字、字母、下划线组成,但不能以数字开头
# 严格区分大小学
# 不能使用关键字
# 遵守命名规范,使用下划线连接

8.函数的缺省参数

# 缺省参数
# 有些函数的参数是,如果你传递了参数,就使用传递的参数
# 如果没有传递参数,就使用默认的值

# 缺省参数要放到最后面
def say_hello(name, age, city="襄阳"):  # 形参city设置了一个默认值
    print("大家好,我是{},我今年{}岁了,我来自{}".format(name, age, city))

# 如果没有传递参数,会使用默认值
say_hello("张三", 19)
# 可以直接传递单个参数,也可以使用变量赋值的形式传递参数
say_hello(name="王二", age=23, city="北京")
say_hello("李四", 20, "河南")
# 如果既有位置参数又有关键字参数,关键字参数一定要放在位置参数的后面
say_hello("aa", age=12)

9.函数的注意事项

# 函数的注意事项
# 函数的三个要素:函数名、参数和返回值
# 在python里不允许函数重名
# 如果函数重名了,后一个函数会覆盖前一个函数

def test(a, b):
    print("hello, a={},b={}".format(a, b))

def test(x):
    print("good,x={}".format(x))

test(2)

10.递归函数

# 递归简单来说,就是函数内部调用自己
# 递归最重要的就是找到出口(即停止条件)

11.匿名函数

# 除了使用def声明一个函数外,还可以使用lambda表达式定义一个函数
# 匿名函数,用来表达一个简单的函数,调用的次数很少,基本上只使用一次

# 调用匿名函数的二种方式
# 1.给匿名函数起个名字(用的很少)
# 2。把这个函数当成参数传递给另一个函数使用(用到的较多)
lambda a, b: a + b


# 回调函数
def add(a, b):
    return a+b

def de(ae, bs):
    return ae-bs

def sx(a, b,fn):
    c = fn(a, b)
    return c

d = sx(4, 6, add)
print(d)
d2 = sx(8, 5, de)
print(d2)

# 匿名函数
d3 = sx(3, 4, lambda a, b: a+b)
d4 = sx(6, 4, lambda a, b: a-b)
d5 = sx(3, 4, lambda a, b: a*b)
d6 = sx(12, 4, lambda a, b: a/b)

print(d3, d4, d5, d6)

12.字典sort()方法的使用

# 列表的sort方法会直接对列表进行排序
# sorted内置函数,不会改变原有的数据,而是生成一个新的有序列表
ints = (3, 6, 2, 0, 8, 4)

students = [
    {"name": "zhao1", "age": 12, "sc": 123},
    {"name": "zhao2", "age": 17, "sc": 124},
    {"name": "zhao3", "age": 14, "sc": 126},
    {"name": "zhao4", "age": 15, "sc": 125},
]

# 字典和字典之间不能使用比较运算符
def foo(e):
    # 通过返回值告诉short方法通过哪个返回值进行排序
    return e["age"]

students.sort(key=foo)
print(students)

13.filter内置类

# filter 对可迭代对象进行过滤,得到的是一个filter对象
# python2的时候是一个内置函数,python3修改成了一个内置类

age = [1, 9, 3, 7, 4, 6]
# filter 可以给二个参数,一个是函数,另一个是可迭代对象
# filter 结果是一个filter对象,filter对象也是一个可迭代对象
x = filter(lambda ele: ele > 4, age)
for a in x:
    print(a)

14.高阶函数

# 高阶函数
# 1.一个函数作为另一个函数的参数
# 2.一个函数作为另一个函数的返回值
# 3.函数内部在定义一个函数

15.计算一段代码的执行时间

# time模块可以获取当前的时间
import time
# 代码运行之前,获取一下时间
# 时间戳是从1970-01-01 00:00:00 UTC 到现在的秒数
start = time.time()
print("start = ", start)

x = 0
for i in range(1,10000000):
    x += i

print(x)
# 代码运行完以后,在获取一下时间
end = time.time()

print("代码运行耗时{}秒".format(end - start))

16.装饰器

# 装饰器
import time

def cal_time(fn):
    def inner():
        start = time.time()
        fn()
        end = time.time()
        print("代码耗时", end - start)
    return inner

@cal_time
def demo():
    x = 0
    for i in range(1, 10000000):
        x += i
    print(x)

demo()
【Web攻防】SQLMap实战进阶:从数据猜解到高权限渗透的全流程指南 本文介绍了SQLMap工具在Web安全渗透测试中的实战应用,重点讲解了数据猜解、高权限操作、复杂请求提交、Tamper脚本开发和指纹绕过等核心场景。文章提供了可直接复用的命令示例,包括数据库信息获取、文件读写、命令执行等操作,并详细说明了POST/JSON/Cookie注入的实现方法。同时,介绍了Tamper脚本的开发模板和指纹伪装技巧,帮助降低检测风险。最后强调SQLMap在自动化渗透全链路中的价值,从漏洞发现到权限提升的完整流程,并提供了优化测试效率的实用建议。所有技术内容仅限合法授权场景使用。 阅读详情

相关推荐

星辰超级智能体TeleClaw桌面版深度体验:央企出品的本地AI生产力助手

中国电信星辰超级智能体TeleClaw桌面版是一款本地化AI生产力助手,主打数据安全、自主高效和深度协同。作为程序员,作者实测其核心功能包括本地数据处理、长期记忆、定时任务和代码开发辅助,特别适合敏感数据处理和日常办公自动化。相比在线AI工具,TeleClaw在数据安全、合规性和自动化能力方面优势明显,但技能生态和响应速度仍有提升空间。总体评价为务实高效的本地AI助手,尤其适合对数据安全有要求的企业用户。

研究中.... 1348

python学习--

列表的方法 例如有列表a = [1, 2, 3, 4, 5, 6, 7, 8] 增 append insert extend 把a.extend([22,4,55,66,])元素都加入到a 删 clear pop remove del 改 查 index count reverse逆序 a.reverse() 与切片逆序的区别,reverse直接改变列...

jie_kai的博客 485

硬盘dma读写过程

保护模式中,pci上的硬盘dma读写方法

480

python中的jieba库

jieba库,做汉语词语划分,第三方中文分词函数库,内嵌中文词库。 jieba三种分词模式:精确分词,全模式,搜索引擎模式。

p715306030的博客 564

Cadence Virtuoso实战:NMOS差分放大器设计与SPICE仿真全解析

本文详细解析了使用Cadence Virtuoso设计NMOS差分放大器并进行SPICE仿真的全流程。从基础设计要点、原理图绘制到工作点分析与性能调优,提供了实用的设计技巧和常见问题解决方案,帮助工程师高效完成模拟集成电路设计。重点介绍了差分放大器的关键参数设置、饱和区优化及版图设计注意事项,适用于ADC、DAC等高性能电路开发。

weixin_28340315的博客 610

如何浏览与下载全球免费的地图高分辨率(亚米级)的遥感影像?

前言 如果你想使用商业卫星的高分辨遥感影像,一般价格昂贵。我们可以使用地图平台上免费的高分辨率数据。目前数据源很多,比如说google earth、天地图、四维地球、必应地图等等。这些影像统一有一个共同点就是:RGB三波段;Web地图瓦片服务。这意味着我们可以通过瓦片服务下载影像,但下载的影像只有三个波段,分别是 一.引言 二、可使用高分辨率的地图数据源 1.Google Earth影像 2.Esri World Image 3.天地图 4.必...

锐多宝的地理空间 2万+

python中的jieba的作用_Python jieba结巴分词原理及用法解析

1、简要说明结巴分词支持三种分词模式,支持繁体字,支持自定义词典2、三种分词模式全模式:把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义精简模式:把句子最精确的分开,不会添加多余单词,看起来就像是把句子分割一下搜索引擎模式:在精简模式下,对长词再度切分# -*- encoding=utf-8 -*-import jiebaif __name__ == '__main__':s...

weixin_36305686的博客 3103

为YOLOv11引入自适应特征融合模块(ASFF)

本文探讨了在YOLOv11中引入ASFF(自适应空间特征融合)模块以解决多尺度目标检测性能不均衡的问题。作者分析了传统FPN固定融合策略的缺陷,详细介绍了ASFF模块的实现原理,包括动态权重生成网络设计和特征融合机制。通过将ASFF集成到YOLOv11颈部网络,实现了特征在双向流动时的自适应融合,在复杂场景下mAP提升1.2%而推理时间仅增加3-5ms。文章还分享了训练调参技巧和部署注意事项,指出ASFF特别适合交通监控等目标尺度变化大的场景,但强调需根据实际需求平衡模型复杂度与性能。最后提供了工程实践建议

as1225120794的博客 320

python五 函数

函数 在数学中函数就是完成了数字的某项变换,输入参数,它就可以输出一个结果。 在编程中,函数同样也有类似的作用。它的作用也是为了完成某个功能,当有大量重复代码时,就可以使用函数来解决, 当需要精简代码逻辑时也可以使用函数。 定义函数 # 函数的一般格式 # 可变参数一定要在位置参数的后面 # 如果可变参数有列表类型的可变参数*args, 还有字典类型的可变参数**args1 那么*a...

开开心心 4434

18年陕西省TI杯电赛无人机赛题视觉部分

更新: 相同任务另外两种不同的视觉方法: https://blog.youkuaiyun.com/qq_41895747/article/details/97613077 https://blog.youkuaiyun.com/qq_41895747/article/details/97614971 任务:识别前方的方框,无人机从方框中飞出去 视觉任务:识别特定方框,返回方框中心坐标 # -*- codin...

沉迷单车的追风少年 1506

阿里云 Docker 镜像加速收费后:这些免费替代方案值得收藏

阿里云Docker镜像加速服务收费后,国内开发者急需免费替代方案。本文推荐2025年仍可用的7个免费镜像源,包括轩辕镜像、DaoCloud、网易云等,并提供多源配置方案以提高稳定性。建议开发者在CI/CD环境中配置多个镜像源,避免构建失败。文章还提供了详细的配置步骤和使用建议,适合个人和团队开发者参考。

sg_knight的专栏 1928

11.递归函数,斐波纳契数列.

汉诺塔: def hano(n,x,y,z): if n == 1: print(’%s---->%s’ %(x,z)) else: hano(n-1,x,z,y) #把第n-1个盘子从x移到y print(’%s---->%s’ %(x,z)) #把n个盘子从x移到z hano(n-1,y,x,z) #把n-1个盘子从y移到z t = int(input(‘输入汉诺塔层数:’)) print(hano(t,‘x’,‘y’,‘z’)) lambda filter,map的运用 la

zcb334196091的博客 387

事件驱动的 SAP 工作流:从 BOR 事件到 Event Linkage 的落地与排障全景图

摘要: SAP工作流中的Event是业务对象状态变化的系统广播机制,如发票录入、采购订单释放等事件。通过事件驱动,业务程序与流程引擎解耦,业务只需发布事件,流程引擎负责后续处理。文章详细解析了SAP工作流事件的完整链路,包括事件定义、触发机制、事件容器传递、SWE2配置的关键作用,以及事件不触发时的排查方法。重点介绍了事件在启动流程、终止任务、等待步骤和主动创建中的应用,并结合采购订单审批案例说明事件的实际使用场景和配置要点。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 187

python中各种函数的用法,python中常见的函数

30. ords()和chr(ASCII)函数:将字符串转化为ASCII或将ASCIIIS\转化为字符串。20. urllib.urlopen(url).read():打开网络内容并存储。6. int()函数、float()函数、str()函数等:类型的转化函数。32. strip()、lstrip()、rstrip()函数:去除空格。49. list.remove(“s”)函数:将数据中第一次出现的s删掉。44. s.insert(3,-1)函数:在3的位置之前插入数据-1。

zjl102562的博客 1037

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

WINCC7.3破解文件

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

python中各种函数的用法,python常用函数大全

大家好,小编来为大家解答以下问题,python中各种函数的用法,python常用函数大全,现在让我们一起来看看吧!

a17348的博客 1026

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Python函数总结

本章总结了python中函数的基础知识点

2403_86719076的博客 1701

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

python content函数_python函数内容

在刚接触python的时候就有个疑问,什么是函数? python语言的函数和数学语言的函数有区别吗?什么是函数数学函数:给定一个数集A,假设其中的元素为x。现对A中的元素x施加对应法则f,记作f(x),得到另一数集B。假设B中的元素为y。则y与x之间的等量关系可以用y=f(x)表示python函数:函数就是一段事先组织好的,它具有可重复性,封装好,用来实现某个相关联功能的代码段,函数能提高应用的模...

weixin_39732316的博客 4173

Python函数

函数体#进行一些操作def用于声明一个函数,告诉python这是一个函数的定义。:函数名,一个有效的标识符,命名规则和变量名一致。parameters:形参,可以是0 ~ n 个,参数之间用逗号分隔。函数体:定义函数执行的具体操作。return:指定函数的返回值,没有则返回None。return后面的代码不会执行。lambda函数通常用在需要一个短小函数的地方。

bright_colo的博客 967

python 函数嵌套函数_Python中的嵌套函数

python 函数嵌套函数A nested function is simply a function within another function, and is sometimes called an "inner function". There are many reasons why you would want to use nested functions, and we'll g...

2873

【python函数】

函数在很多编程语言中都是一种基本的构建块,它们使得程序更加灵活、可维护和可扩展。

weixin_49451038的博客 1823

python函数怎么打_python ln函数怎么打

在python语言中,ln函数不是直接调用ln,而是调用math包中的log,或cmath包中的log。工具/原料pythonpycharm截图工具台式机ppt2019方法/步骤1打开pycharm工具,在指定包中新建python文件2在新建的python文件中,导入math和cmath包,然后使用dir查看对应包的方法3保存代码并直接使用应用运行,控制台查看打印结果4调用math包中的log函数...

weixin_39984442的博客 1万+

python中各种函数的用法,python基本函数有哪些

大家好,小编为大家解答python中各种函数的用法的问题。很多人还不知道python基本函数有哪些,现在让我们一起来看看吧!

2401_82891133的博客 940

python download函数_python 函数

函数对象在面向对象编程中 一切皆对象具体的体现1.函数可以被引用2.函数可以作为函数的参数3.函数可以作为函数的返回值4.可以被存储到容器类型中defpay():print('支付')defsave():print('存钱')defcheak():print('查看')dic={'1':pay,'2':save,'3':cheak}whileTrue:l=['支付','存钱','查看']for i...

weixin_39522423的博客 2417
上一篇: java提取字符串中需要的数据
下一篇: Eureka注册与发现
与黑夜为伍
博客等级 码龄7年 19粉丝 80原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值