苏格网站建设/网站怎么做推广和宣传

苏格网站建设,网站怎么做推广和宣传,网站建设要会英语吗,学校网站维护怎么做文章目录 前言一、函数知识体系二、函数基础函数的定义和调用函数参数 三、函数对象、函数嵌套、名称空间与作用域、装饰器函数对象函数嵌套名称空间与作用域装饰器 四、迭代器、生成器、面向过程编程迭代器生成器面向过程编程 五、三元表达式、列表推导式、生成器表达式、递归…

文章目录

    • 前言
    • 一、函数知识体系
    • 二、函数基础
      • 函数的定义和调用
      • 函数参数
    • 三、函数对象、函数嵌套、名称空间与作用域、装饰器
      • 函数对象
      • 函数嵌套
      • 名称空间与作用域
      • 装饰器
    • 四、迭代器、生成器、面向过程编程
      • 迭代器
      • 生成器
      • 面向过程编程
    • 五、三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数
      • 三元表达式
      • 列表推导式
      • 生成器表达式
      • 递归
      • 匿名函数
      • 内置函数
    • 六、函数草稿
    • 结语

前言

Python是一种强大且易于学习的编程语言。通过这个21天的计划,我们将逐步深入函数简单介绍。无论你是初学者还是有一定基础的开发者,这个计划都将帮助你巩固和扩展你的Python知识。

在学习本篇之前,我们先复习一下前面的内容:
21天Python计划:Python下载和开发工具介绍
21天Python计划:数据类型、字符编码、文件处理
21天Python计划:基础语法与课外练习

一、函数知识体系

在Python编程中,函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。函数的使用可以提高代码的复用性和可维护性,使代码结构更加清晰。Python中的函数知识体系主要包括函数的定义、调用、参数传递、返回值等基础内容,以及函数对象、嵌套函数、名称空间与作用域、装饰器等高级特性,还有迭代器、生成器、面向过程编程等相关概念,以及一些特殊的表达式和编程技巧,如三元表达式、列表推导式、生成器表达式、递归、匿名函数和内置函数等。

二、函数基础

函数的定义和调用

在Python中,使用def关键字来定义函数,函数定义的基本语法如下:

# 定义一个简单的函数,用于打印问候语
def greet():"""这是一个简单的函数,用于打印问候语"""print("Hello, World!")# 调用函数
greet()

在这里插入图片描述

函数参数

函数可以接受参数,参数分为位置参数、默认参数、可变参数和关键字参数。

# 定义一个带有位置参数的函数
def add(a, b):"""计算两个数的和:param a: 第一个数:param b: 第二个数:return: 两数之和"""return a + b# 调用函数并传入参数
result = add(3, 5)
print(result)# 定义一个带有默认参数的函数
def power(x, n=2):"""计算x的n次方:param x: 底数:param n: 指数,默认值为2:return: x的n次方"""return x ** n# 调用函数时可以不传入默认参数
print(power(3))
# 也可以传入新的参数值
print(power(3, 3))# 定义一个带有可变参数的函数
def sum_numbers(*numbers):"""计算多个数的和:param numbers: 可变参数,接收多个数值:return: 所有数的和"""total = 0for num in numbers:total += numreturn total# 调用函数时可以传入任意数量的参数
print(sum_numbers(1, 2, 3, 4))# 定义一个带有关键字参数的函数
def person_info(name, age, **kwargs):"""打印个人信息:param name: 姓名:param age: 年龄:param kwargs: 关键字参数,接收其他信息"""print(f"Name: {name}, Age: {age}")for key, value in kwargs.items():print(f"{key}: {value}")# 调用函数时可以传入关键字参数
person_info("Alice", 25, city="New York", job="Engineer")

在这里插入图片描述

三、函数对象、函数嵌套、名称空间与作用域、装饰器

函数对象

在Python中,函数也是对象,可以赋值给变量,也可以作为参数传递给其他函数,还可以作为返回值返回。

# 定义一个函数
def say_hello():print("Hello!")# 将函数赋值给变量
greet_func = say_hello
# 调用变量指向的函数
greet_func()# 定义一个高阶函数,接收一个函数作为参数
def call_function(func):func()# 调用高阶函数,传入函数对象
call_function(say_hello)

在这里插入图片描述

函数嵌套

函数内部可以定义另一个函数,这就是函数嵌套。

def outer_function():print("This is the outer function.")def inner_function():print("This is the inner function.")# 调用内部函数inner_function()# 调用外部函数
outer_function()

在这里插入图片描述

名称空间与作用域

名称空间是Python中存储变量名和对象之间映射关系的地方,作用域则决定了变量的可见性和生命周期。Python中有全局作用域和局部作用域。

# 全局变量
global_variable = 10def test_scope():# 局部变量local_variable = 20print(f"Global variable: {global_variable}")print(f"Local variable: {local_variable}")# 调用函数
test_scope()
# 尝试访问局部变量会报错
# print(local_variable)

在这里插入图片描述

装饰器

装饰器是一种特殊的函数,用于修改其他函数的行为。

# 定义一个装饰器函数
def my_decorator(func):def wrapper():print("Before function call")func()print("After function call")return wrapper# 定义一个被装饰的函数
@my_decorator
def say_hi():print("Hi!")# 调用被装饰的函数
say_hi()

在这里插入图片描述

四、迭代器、生成器、面向过程编程

迭代器

迭代器是一个可以记住遍历位置的对象,使用iter()和next()函数可以实现迭代器。

# 定义一个列表
my_list = [1, 2, 3, 4, 5]
# 创建迭代器对象
my_iterator = iter(my_list)
# 使用next()函数获取迭代器的下一个元素
print(next(my_iterator))
print(next(my_iterator))

在这里插入图片描述

生成器

生成器是一种特殊的迭代器,使用yield关键字来定义。

# 定义一个生成器函数
def my_generator():yield 1yield 2yield 3# 创建生成器对象
gen = my_generator()
# 遍历生成器
for num in gen:print(num)

在这里插入图片描述

面向过程编程

面向过程编程是一种以过程为中心的编程思想,将问题分解为一个个步骤,通过函数来实现这些步骤。

# 定义一个函数用于计算圆的面积
def calculate_circle_area(radius):import mathreturn math.pi * radius ** 2# 调用函数计算圆的面积
radius = 5
area = calculate_circle_area(radius)
print(f"The area of the circle with radius {radius} is {area}")

在这里插入图片描述

五、三元表达式、列表推导式、生成器表达式、递归、匿名函数、内置函数

三元表达式

三元表达式是一种简洁的条件判断语句。

# 传统的条件判断
x = 10
if x > 5:result = "x is greater than 5"
else:result = "x is less than or equal to 5"# 使用三元表达式
result = "x is greater than 5" if x > 5 else "x is less than or equal to 5"
print(result)

在这里插入图片描述

列表推导式

列表推导式是一种简洁的创建列表的方法。

# 传统的创建列表的方法
squares = []
for i in range(1, 6):squares.append(i ** 2)# 使用列表推导式
squares = [i ** 2 for i in range(1, 6)]
print(squares)

在这里插入图片描述

生成器表达式

生成器表达式与列表推导式类似,但使用圆括号,返回一个生成器对象。

# 使用生成器表达式
gen_expr = (i ** 2 for i in range(1, 6))
# 遍历生成器
for num in gen_expr:print(num)

在这里插入图片描述

递归

递归是指函数调用自身的编程技巧。

# 定义一个递归函数,用于计算阶乘
def factorial(n):if n == 0 or n == 1:return 1else:return n * factorial(n - 1)# 调用递归函数
print(factorial(5))

在这里插入图片描述

匿名函数

匿名函数是一种没有名称的函数,使用lambda关键字定义。

# 定义一个匿名函数
add = lambda a, b: a + b
# 调用匿名函数
print(add(3, 5))

在这里插入图片描述

内置函数

Python提供了许多内置函数,如len()、sum()、max()等。

my_list = [1, 2, 3, 4, 5]
# 使用内置函数计算列表的长度
length = len(my_list)
# 使用内置函数计算列表的和
total = sum(my_list)
# 使用内置函数找出列表中的最大值
maximum = max(my_list)
print(f"Length: {length}, Sum: {total}, Max: {maximum}")

在这里插入图片描述

六、函数草稿

在实际编程中,我们可能会先编写一些函数草稿,用于测试和验证想法。以下是一个简单的函数草稿示例:

# 这是一个函数草稿,用于计算两个数的乘积
def multiply(a, b):return a * b# 测试函数
result = multiply(4, 6)
print(result)

在这里插入图片描述

结语

通过这个21天的Python计划,我们涵盖了函数简单介绍。希望这些内容能帮助你更好地理解和使用Python。继续学习和实践,你将成为一名优秀的Python开发者!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/73871.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

污水处理厂人员定位方案-UWB免布线高精度定位

1. 方案概述 本方案采用免布线UWB基站与北斗卫星定位融合技术,结合UWBGNSS双模定位工卡,实现污水处理厂室内外人员高精度定位(亚米级)。系统通过低功耗4G传输数据,支持实时位置监控、电子围栏、聚集预警、轨迹回放等功…

无人机DSP处理器工作要点!

一、DSP处理器在无人机中的工作要点 1. 高效运算架构 哈佛结构:DSP采用程序与数据存储分离的哈佛结构,允许同时访问指令和数据,提升数据吞吐效率。 流水线技术:将指令分解为取指、译码、执行等多个阶段并行处理&#xff0c…

MySQL查询成本计算

对于如上SQL,只是因为查询字段不同,最终执行时选择的索引就不同,那么MySQL是如何决定选择使用哪个索引呢? 答案是MySQL会进行成本计算,对于各个场景查询进行成本预估,最终选择最优。 我们可以使用trace工具…

《K230 从熟悉到...》矩形检测

《K230 从熟悉到...》矩形检测 《庐山派 K230 从熟悉到...》矩形检测 矩形检测技术是一种广泛应用于电子图像处理的核心技术。它通过识别和分析图像中的矩形结构,为各种应用提供基础支持。从传统图像处理算法到现代深度学习技术,矩形检测的实现途径多种多…

python基础学习三(元组及字符串的使用)

文章目录 元组什么是元组元组的创建方式为什么要将元组设计成不可变序列元组的遍历集合集合的相关操作集合操作集合的数学操作集合生成式列表,字典,元组,集合总结 字符串字符串的驻留机制判断字符串的操作方法字符串的比较操作字符串的切片操…

爬虫工程师分享自动批量化获取商品评论数据的方法有哪些?

在电商领域,商品评论数据对于商家了解产品口碑、洞悉用户需求,以及开展竞品分析等工作具有极其重要的价值。作为爬虫工程师,掌握自动批量化获取商品评论数据的方法,能极大提升数据收集效率。下面,我将分享一些实用的操…

Vue3组件事件用户信息卡练习

用户信息卡 题目要求 实现一个用户信息卡系统&#xff0c;包含以下功能&#xff1a; 1.父组件收集用户信息&#xff08;姓名、年龄、班级&#xff09; 2.子组件接收并展示用户信息卡片 3.添加基本的数据验证 <!DOCTYPE html> <html lang"en"> <h…

SpringBean模块(二)bean初始化(2)和容器初始化顺序的比较--引入ApplicationContextInitializer

前面介绍了获取容器可以让spring bean实现ApplicationContextAware&#xff0c;实际也是初始化执行了setApplicationContext接口&#xff0c; 初始化接口还可以借助一些注解或者spring bean的初始化方法&#xff0c;那么他们的执行顺序是什么样的呢&#xff1f; 一、验证&…

中小型企业网络的搭建

1.1 网络逻辑拓扑、布线方案的设计 1.1.1 网络设计依据 网络设计应遵循以下基本原则&#xff1a; 高效性&#xff1a;确保网络架构能够支持企业日常业务的高效运行。 可靠性&#xff1a;采用冗余设计&#xff0c;确保网络的高可用性&#xff0c;避免单点故障。 可扩展性…

angr基础学习

参考&#xff1a;angr AngrCTF_FITM/笔记/03/Angr_CTF从入门到精通&#xff08;三&#xff09;.md at master ZERO-A-ONE/AngrCTF_FITM angr_explore 00_angr_find IDA分析结果&#xff1a; 逻辑简单&#xff0c;输入&#xff0c;complex_function进行加密&#xff0c;加密…

软考-高级-系统架构设计师【考试备考资料下载】

计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试是原中国计算机软件专业技术资格和水平考试的完善与发展。计算机技术与软件专业技术资格&#xff08;水平&#xff09;考试是由国家人力资源和社会保障部、工业和信息化部领导下的国家级考试。 计算机技术与软件专…

3. 第三放平台部署deepseek

有时候我们会发现使用deepseek服务器&#xff0c;异常卡顿&#xff0c;这是由于多方面原因造成的&#xff0c;比如说访问人数过多等。想要解决这个问题&#xff0c;我们可以选择第三方平台进行部署 第三方平台 我们可以选择的第三方平台很多&#xff0c;比如硅基流动、秘塔搜索…

1.4-蜜罐\堡垒机\API接口

1.4-蜜罐\堡垒机\API接口 蜜罐&#xff1a;用来钓鱼或诱惑测试人员的防护系统 bash <(curl -sS -L https://hfish.net/webinstall.sh) # 安装HFISH蜜罐堡垒机&#xff1a; 运维用的&#xff0c;统一管理运维平台;拿下堡垒机就很有可能等于拿下了多个平台 jumpServer一键安…

知识图引导的检索增强生成

摘要 检索增强生成&#xff08;RAG&#xff09;已经成为一种很有前途的技术&#xff0c;用于解决大型语言模型&#xff08;LLM&#xff09;生成的响应中的幻觉问题。现有的RAG研究主要集中在应用基于语义的方法来提取孤立的相关组块&#xff0c;忽略了它们之间的内在关系。在本…

【机器学习】imagenet2012 数据预处理数据预处理

【机器学习】数据预处理 1. 下载/解压数据2. 数据预处理3. 加载以及训练代码3.1 使用PIL等加载代码3.2 使用OpenCV的方式来一张张加载代码3.3 h5的方式来加载大文件 最后总结 这个数据大约 140个G,128w的训练集 1. 下载/解压数据 首先需要下载数据&#xff1a; 数据最后处理…

质量工程:数字化转型时代的质量体系重构

前言&#xff1a;质量理念的范式转移阅读原文 如果把软件开发比作建造摩天大楼&#xff1a; 传统测试 竣工后检查裂缝&#xff08;高成本返工&#xff09; 质量工程 从地基开始的全流程监理体系&#xff08;设计图纸→施工工艺→建材选择→竣工验收&#xff09; IEEE研究…

【全栈开发】—— Paddle OCR 文字识别 + deepseek接入(基于python 最新!!!)

所有源码都在文章中&#xff0c;大家不要私信来要源码&#xff0c;当然&#xff0c;评论区欢迎交流技术 目录 Paddle OCR 配置环境 示例 deepseek接入 环境配置 api 调用代码 sliconflow Paddle OCR 配置环境 清华源下载 paddlepaddle&#xff1a; pip install paddlepaddle …

《C++Linux编程进阶:从0实现muduo 》-第6讲.C++死锁问题如何分析调试-原子操作,互斥量,条件变量的封装

重点内容 视频讲解&#xff1a;《CLinux编程进阶&#xff1a;从0实现muduo C网络框架系列》-第6讲.C死锁问题如何分析调试-原子操作,互斥量,条件变量的封装 代码改动 lesson6代码 实现&#xff1a;base/Atomic.h 实现&#xff1a;base/Mutex.h 实现&#xff1a;base/Condit…

matplotlib标题比x,y轴字体大,明明标题字体更大?

原始代码&#xff1a; plt.xlabel(训练轮次&#xff08;Epochs&#xff09;, fontsize14, fontweightbold, fontpropertieschinese_font) # 设置中文字体、加大、加粗 plt.ylabel(R值, fontsize14, fontweightbold, fontpropertieschinese_font) # 设置中文字体、加大、加粗…

Baklib内容中台的核心优势是什么?

智能化知识管理引擎 Baklib的智能化知识管理引擎通过多源数据整合与智能分类技术&#xff0c;实现企业知识资产的自动化归集与动态更新。系统内置的语义分析算法可自动识别文档主题&#xff0c;结合自然语言处理技术生成结构化标签体系&#xff0c;大幅降低人工标注成本。针对…