【Python基础】- 自定义函数和匿名函数(文末送书3本)

这篇具有很好参考价值的文章主要介绍了【Python基础】- 自定义函数和匿名函数(文末送书3本)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

Python3 函数

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。  

函数能提高应用的模块性,和代码的重复利用率。前面我们用过了很多python内置函数,比如print(),input()等。但你也可以自己创建函数,这被叫做用户自定义函数。  

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

Python函数的分类

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

Python函数分为如下几类:

1. 内置函数

我们前面使用的 str() 、 list() 、 len() 等这些都是内置函数,可以拿来直接使用

2. 标准库函数

我们可以通过 import 语句导入库,然后使用其中定义的函数

3. 第三方库函数

Python社区也提供了很多高质量的库,下载安装这些库后,也是通过 import 语句导入,然后可以使用这些第三方库的函数

4. 用户自定义函数

用户自己定义的函数,显然也是开发中适应用户自身需求定义的函数。

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:  

  • - 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
  • - 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • - 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • - 函数内容以冒号 : 起始,并且缩进。
  • - return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

"""
Python 定义函数使用 def 关键字,一般格式如下:
def  函数名 ([参数列表]) :
    '''文档字符串'''
    函数体/若干语句
"""
def say_hello():
    print('Hello world!')
    
say_hello()

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

# 带参数的函数
def add(a,b,c):
    '''完成三个数的加法,并返回他们的和'''
    sum = a+b+c
    print(f"{a}、{b}、{c}三个数的和是:{sum}")
    return sum
result = add(10,20,30)
print(result)

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

参数

以下是调用函数时可使用的正式参数类型:  

  • - 位置参数
  • - 关键字参数
  • - 默认参数
'''
位置参数
位置参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
'''
def self_introduction(name,age):  # name和age叫做形参
    print(f'我叫{name},今年{age}岁了!')

self_introduction('艾派森',10)  # '艾派森'和'10'叫做实参

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

'''
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
'''
def self_introduction(name,age):
    print(f'我叫{name},今年{age}岁了!')

self_introduction(name='艾派森',age=18)
self_introduction(age=20,name='艾派森')

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

'''
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
'''
def self_introduction(name,age,school='家里蹲大学'):
    print(f'我叫{name},今年{age}岁了,在{school}上学!')

self_introduction(name='艾派森',age=18)
self_introduction(name='艾派森',age=18,school='哈佛大学')

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

# 默认参数必须放在最后面,否则会报错
def self_introduction(school='家里蹲大学',name,age,):
    print(f'我叫{name},今年{age}岁了,在{school}上学!')

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

匿名函数  

Python 使用 lambda 来创建匿名函数。  

所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。  

  • - lambda 只是一个表达式,函数体比 def 简单很多。
  • - lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
  • - lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
'''
lambda 函数的语法只包含一个语句,语法如下:
lambda [arg1 [,arg2,.....argn]]:expression
'''
f = lambda x:x*x
print(f(5))

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

# 匿名函数传入多个参数,也可以使用关键词传参
f = lambda x1,x2:x1+x2
print(f(10,20)) 
print(f(x1=10,x2=20))

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

eval()函数

功能:将字符串 str 当成有效的表达式来求值并返回计算结果。  

注:eval函数 会将字符串当做语句来执行,因此会被注入安全隐患。  

比如:字符串中含有删除文件的语句,那就麻烦大了。因此,使用时候,要慎重!!!

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

变量的作用域(全局变量和局部变量) 

变量起作用的范围称为变量的作用域,不同作用域内同名变量之间互不影响。

变量分为:全局变量、局部变量。  

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

全局变量:

1. 在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始直到模块结束。

2. 全局变量降低了函数的通用性和可读性。应尽量避免全局变量的使用。

3. 要在函数内改变全局变量的值,使用 global 声明一下

局部变量:

1. 在函数体中(包含形式参数)声明的变量。

2. 局部变量的引用比全局变量快,优先考虑使用

3. 如果局部变量和全局变量同名,则在函数内隐藏全局变量,只使用同名的局部变量

# 【操作】全局变量的作用域测试
n = 50         # 全局变量
def f():
    global n    # 如果要在函数内改变全局变量的值,增加global关键字声明
    print(n)    # 打印全局变量n的值    
    n = 100      
    
f()
print(n)  # n已经由50经过函数f转变为100

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

# 【操作】全局变量和局部变量同名测试
a = 50
def f():
    a = 10      # 同名的局部变量
    print(a)
    
f()    
print(a)    # a仍然是50,没有变化

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

递归函数

1.递归(recursion)是一种常见的算法思路,在很多算法中都会用到  

2.递归的基本思想就是“自己调用自己”  

递归函数指的是:自己调用自己的函数,在函数体内部直接或间接的自己调用自己。  

每个递归函数必须包含两个部分:  

  • - 终止条件:表示递归什么时候结束。一般用于返回值,不再调用自己。
  • - 递归步骤:把第n步的值和第n-1步相关联。

注:递归函数由于会创建大量的函数对象、过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

# 计算阶乘:根据用户输入的整数n,计算并输出n的阶乘值。
def fact(n): #计算阶乘
    if n == 0:
        return 1
    else:
        return n * fact(n-1)
 
num = eval(input("请输入一个正整数: "))
print(fact(num))

 【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

'''
斐波那契数列(1、1、2、3、5、8、13、21、34、……)
兔子繁殖问题:
在700多年前,意大利著名数学家斐波那契在《算盘全集》中提到这样一个问题:一对兔子,从出生后第3个月起每个月都生一对兔子。小兔子长到第3个月后每个月又生一对兔子。假如兔子都不死,请问第1个月出生的一对兔子,第n个月有多少对兔子?
F(1)=1
F(2)=1
F(3)=F(1)+F(2)=1+1=2
F(4)=F(2)+F(3)
…………
F(N)=F(N-2)+F(N-1)
'''
def fab(n):
    if n <= 2:
        return 1
    else:
        return fab(n-1)+fab(n-2)
 
n = eval(input("请输入一个正整数: "))
print(fab(n))

文末推荐

《TensorFlow全栈开发工程实践》

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

内容简介:

        本书共分为 8 章,主要内容包括与人工智能相关的数学知识,Python 语言所特有的语法和技巧,Docker 模型透明无缝地发布的实现,业界优秀的 Git 代码版本管理工具,模型开发环境的配置,高级人工智能开发工程师常用的 IDE 开发工具,经典神经网络模型的剖析和分解,RPC 远程调用的实现,训练样本的序化组织结构TFRecord,模型的训练、保存和封装发布,模型训练的 GPU 配置和机制策略的部署,模型从训练到发布的完整示例等。 

编辑推荐:

        本书适合有计算机专业和数学专业背景的初、中级开发者阅读,以便快速掌握和驾驭人工智能全栈技术,也适合作为在职人工智能模型开发人员查询时使用的手册级工具用书,还适合作为中职学校、高等院校及培训机构计算机人工智能和大数据等相关专业的教学用书。

文末福利

《TensorFlow全栈开发工程实践》免费包邮送出3本!

  • 抽奖方式:评论区随机抽取3位小伙伴免费送出!
  • 参与方式:关注博主、点赞、收藏、评论区评论“人生苦短,拒绝内卷!”(切记要点赞+收藏,否则抽奖无效,每个人最多评论三次!
  • 活动截止时间:2023-07-31 20:00:00
  •  当当购买链接:《TensorFlow全栈开发工程实践——做一个全智全能算法工程师》(王艳铭)【简介_书评_在线阅读】 - 当当图书

 名单公布时间:2023-07-31 21:00:00  

【Python基础】- 自定义函数和匿名函数(文末送书3本),零基础学习Pyhton数据分析,python,开发语言

本文章隶属于专栏【零基础学习Python数据分析】,本专栏会持续更新,永久免费,喜欢的小伙伴速速订阅!

欢迎点赞👍🏻+ 评论 💬+收藏 📂,同时也欢迎你加入我的粉丝交流群一起学习探讨!

 文章来源地址https://www.toymoban.com/news/detail-615671.html

到了这里,关于【Python基础】- 自定义函数和匿名函数(文末送书3本)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【机器学习】人工智能概述(文末送书)

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 1.人工智能概述 1.1 机器学习、人工智能与深度学习 1.2 机器学习、深度学习能做些什么

    2024年02月10日
    浏览(45)
  • 【python】一文了解Python爬虫 | 文末送书

    目录 引言 1. 爬虫基础知识 1.1 什么是爬虫 1.2 HTTP协议 1.2.1 HTTP请求方法 1.GET请求 1.2.2 请求头常见字段 1.2.3 响应状态码 1.3 HTML解析 1.3.1 Beautiful Soup        解析库 1.3.2 XPath         xpath解析原理:           xpath 表达式 2. 爬虫进阶技巧 2.1 防止被反爬虫 2.1.1 User-Agent伪

    2024年02月13日
    浏览(49)
  • 【文末送书】Python OpenCV从入门到精通

    OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,提供了丰富的图像处理和计算机视觉算法。它由一组用C++编写的函数和工具组成,同时也支持多种编程语言,如Python、Java等。 OpenCV的主要特点包括: 跨平台性:OpenCV可以在多个操作系统上运行,包括Windows、

    2024年02月05日
    浏览(44)
  • Python是什么?有什么用?怎么入门?(文末送书)

      🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+         Python是当今世界最流行的程序语言之一。由荷兰人,吉多·范罗苏姆(Guido v

    2023年04月15日
    浏览(43)
  • MySQL基础篇——MySQL数据库的介绍、下载、安装【文末送书】

    作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。   座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.数据库相关概念 1.什么是数据库  2.什么是数据库管理系统  3.SQL是什么 4. 数据库市场占有率 二.mysql安装 1. 安装

    2024年02月05日
    浏览(59)
  • 基于Pytorch深度学习的脑肿瘤分类识别(文末送书)

    🤵‍♂️ 个人主页:@艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞👍🏻 收藏 📂加关注+ 目录 实验背景 实验目的 实验环境 实验过程 1.加载数据 2.训练模型 3.模型评估 源代码 文末

    2024年02月12日
    浏览(60)
  • 浅谈 Python 网络爬虫的那些事(文末送书7.0)

    在大数据、人工智能应用越来越普遍的今天,Python 可以说是当下世界上热门、应用广泛的编程语言之一,在人工智能、爬虫、数据分析、游戏、自动化运维等各个方面,无处不见其身影。随着大数据时代的来临,数据的收集与统计占据了重要地位,而数据的收集工作在很大程

    2024年02月08日
    浏览(51)
  • 搭建Flutter开发环境、从零基础到精通(文末送书【北大出版社】)

    目录 搭建开发环境 1. 下载Flutter SDK 2. 设置镜像地址及环境变量 3. 安装与设置Android Studio 4. 安装Visual Studio Code与Flutter开发插件 5. IDE的使用和配置 6. 安装Xcode 7. 检查Flutter开发环境 好书推荐 内容简介 作者简介 Flutter可以跨平台运行在Windows、macOS、Linux等系统上。接下来介绍如

    2024年02月08日
    浏览(70)
  • 【文末送书】2023年以就业为目的学习Java还有必要吗?

    「作者主页」 :雪碧有白泡泡 「个人网站」 :雪碧的个人网站 「推荐专栏」 : ★ java一站式服务 ★ ★ React从入门到精通 ★ ★ 前端炫酷代码分享 ★ ★ 从0到英雄,vue成神之路★ ★ uniapp-从构建到提升 ★ ★ 从0到英雄,vue成神之路 ★ ★ 解决算法,一个专栏就够了 ★ ★

    2024年02月09日
    浏览(54)
  • 2023年以就业为目的学习Java还有必要吗?(文末送书)

    大家好,我是哪吒。 文末送5本《Java编程动手学》 今天来探讨一个问题,现在学 Java 找工作还有优势吗? 在某乎上可以看到大家对此问题的热议:“2023年以就业为目的学习Java还有必要吗?” 。有人说市场饱和,最好是学点当前最流行的技术;也有人说 Java 应用广泛,以找

    2024年02月08日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包