Python的进阶之道【AIoT阶段一(上)】(十五万字博文 保姆级讲解)—玩转Python语法(一):面向过程—Python国的一国多治(1)(二十二))

简介: 玩转Python语法(一):面向过程

5.Python国的一国多治

什么是函数?函数其实就是执行特定任务和完成特定功能的一段代码,我们在 Python 中可以自己书写函数,如我们可以用 def,lambda 来告诉编译器这是我们自己写的函数,也可以使用系统中已经写好的函数:内置函数,这些函数你可以理解为因为在使用 Python 开发的过程中,一直在频繁的进行使用,故开发者为了方便,把这些代码打包成一个又一个函数,可供大家一直调用。在本章节学习中,*5.1 Python中常用的内置函数 会给大家介绍一部分的内置函数,这些函数我们会经常的使用,必须学会它们的使用规则,本章节标题为 Python 国的一国多制,那是因为我们可以把每一个函数都当成一种政体,它们一起相互作用组成了 Python 这个伟大的国度,并且函数与函数之间相互独立(函数内可以调用其他函数)。接下来,就让我们进入面向过程最后一节的学习。


*5.1 Python中常用的内置函数

注:本小节带 *,不需要进行学习,可以简单进行了解

⛲️ 本小节可以说还是比较重要的,但为什么本小节打 * 了呢?这是因为我们没必要去记忆这些函数(期末考试除外),在我们需要的时候我们只需要来本小节去查找用法即可

函数 功能说明
len(obj) 返回对象 obj 中包含的元素个数
max(…) 返回一个序列元素的最大值
min(…) 返回一个序列元素的最小值
abs(x) 返回数字 x 的绝对值或复数 x 的模
sum(x, start=0) 求一个序列中所有元素的和
reversed(seq) 返回seq中所有元素逆序的结果
sorted(iterable, key=None, reverse=False) 返回排序后的列表,iterable为要排序的对象,key指定排序规则,reverse用来指定升降序
bin(x) 把整数x转为二进制串
oct(x) 把整数x转为八进制串
hex(x) 把整数x转为十六进制串
zip() 将对应位置上的元素压缩在一起
id(obj) 返回 obj 的内存地址
range(start, end, step) 返回一个左闭右开[start, end),步长为 step 的对象
type(obj) 返回 obj 的类型
map(func, *iterables) 返回若干个map对象,函数func参数来自iterables指定的迭代对象
# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/16 12:45
# 欢迎大家关注AIoT相关博客~
# len():返回元素的长度
a = [1, 2, 3, 4, 5]
print('a的长度是:', len(a))
# max():返回元素的最大值
print('a中的最大值是:', max(a))
# min():返回元素的最小值
print('a中的最小值是:', min(a))
# abs():返回绝对值
print('-3的绝对值是:', abs(-3))
# sum():返回序列中全部元素的和
print('[1, 2, 3, 4, 5]的和为:', sum(a))
# reversed():返回一个序列的逆序
b = reversed(a)
print('a逆序的结果为:', end = '')
for item in b:
    print(item, end = ' ')
print()
# sorted():返回排序后的列表
c = [3, 2, 5, 1, 4]
c = sorted(c)
print('c排序的结果为:', end = '')
for item in c:
    print(item, end = ' ')
# bin():把整数转为二进制
print('8的二进制为:', bin(8))
# oct():把整数转为八进制
print('10的八进制为:', oct(10))
# hex():把整数转为十六进制
print('30的十六进制为:', hex(30))
# zip():将对应位置的元素压缩在一起
a = [1, 2, 3, 4, 5]
b = ['h', 'e', 'l', 'l', 'o']
print(list(zip(a, b)))
# id():返回内存地址
d = 666
print('666的内存地址是:', id(666))
# range():产生一个[start, end),步长为step的对象
a = range(10)
print(a)
# type():返回对象的类型
print('数字7的类型为:',type(7))
# map():把原序列的元素经过func操作
print(list(map(str, range(5)))) # 把[0 ~ 5)转为字符串存入列表
# 在同一行输入两个数并赋值
a,b = map(int,input('输入两个数(数字之间用空格隔开):').split())
print(a, b)

image.png


5.2 函数的创建与调用

🚩为什么需要函数?

1️⃣ 复用代码:有一些代码我们可能会频繁的进行使用,故我们可以把这些代码打包成函数,我们在需要的时候调用函数即可.

2️⃣ 隐藏实现细节:拿榨汁机举例子,我们在使用榨汁机的时候,只需要掌握基本的开关即可,完全没必要去了解其内部是如何组装,电路板之间怎么链接的问题,函数也是一样的,我们可以把具体代码封装起来,只需要会调用即可

3️⃣提高可维护性,可读性,便于调试:我们以后写工程代码可能会特别长,一个成千上万行的代码我们去找 bug 是十分困难的,读懂这种代码也是十分的困难的,如果我们把代码转为一个又一个函数,只需要找到具体的函数进行更改即可,并且看起来会更加的直观。


函数的创建语法格式:

def 函数名(参数1, 参数2, ...):
  函数体
  return xxx

我们还是用榨汁机去理解这个语法格式,def 函数名 为定义这是一个机器,并给他命名;这里函数的命名满足标识符的命名原则,详见:*1.2.1 标识符和保留字,具体它什么机器我们还得去看它的执行功能是什么(即函数体),比如我们的榨汁机实现榨汁功能,那么它的函数体就是实现榨汁这个操作,我们榨汁当然还要有原料,比如榨胡萝卜汁,榨西瓜汁等,胡萝卜,西瓜就是我们传入给函数的参数;最后我们榨汁肯定是要给人喝的,return xxx 的含义就是把操作完的值返回给调用函数的地方,函数的调用的语法格式为:

函数名(参数1, 参数2, ...)

下面我们举例子来让大家理解,比如我们实现一个 cal 函数,其函数的目的是接收两个参数,并把它们的值相加并返回相加后的值:

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/17 23:02
# 欢迎大家关注AIoT相关博客~
def cal(a, b):
    c = a + b
    return c
a, b = map(int, input().split())
res = cal(a, b)# 调用函数 cal,并把函数的返回值赋值给c
print(res)

image.png

5.3 函数的参数传递

🚩形式参数与实际参数:我们把定义函数中的参数称为形式参数,把调用函数的位置的参数称为实际参数,如下述代码:

def cal(a, b):   # 这里的 a, b 
    c = a + b
    return c
res = cal(1, 2)  # 这里的 1, 2 称为实际参数
print(res)

函数的参数传递有两种方法:

1️⃣ 位置传参:按照位置进行传参,比如在这个代码中:

def cal(a, b):
    c = a + b
    return c
res = cal(1, 2)
print(res)

在这个代码中,1 会传给 a,2 会传给b,位置传参其实就是把实际参数中的位置和形式参数中的位置一一进行对应赋值

2️⃣ 关键字传参:按照关键字的命名进行传参,如下述代码:

def cal(a, b):
    c = a + b
    return c
res = cal(b = 1, a = 2)
print(res)

在这个代码中,我们在调用函数的时候已经规定了 b = 1, a = 2;故对于这样的调用,在给形式参数赋值时就不会执行位置传参,而会执行关键字传参,在形式参数中 b = 1, a = 2

5.4 函数的返回值

🚩我们知道,函数的返回值即 return 后面所跟的值,返回的位置为调用函数的位置,就比如简单的实现两数相加:

def cal(a, b):
    c = a + b
    return c
a, b = map(int, input().split())
res = cal(a, b)  # 调用函数 cal,并把函数的返回值赋值给c
print(res)

调用函数的位置为 cal(a, b),在 cal 函数中不难看出有 return 语句,意思为把 c 的值返回给调用函数的地方,你可以粗暴的理解为 cal(a, b) = c,即删掉 cal(a, b) 语句,换上一个 c,即 res = cal(a, b) 变成了 res = c.


如果你学过 C/C++,你知道,函数至多返回一个值,不可能返回两个值或者更多的值,我们的 Python 则不然,Python 可以同时返回多个函数值:

# 博主:辰chen
# 博客地址:https://chen-ac.blog.csdn.net/
# 开发时间:2021/12/19 8:38
# 欢迎大家关注AIoT相关博客~
def find(num):
    odd = []  # 用来存奇数
    even = [] # 用来存偶数
    for i in num:
        if i % 2 == 0:
            even.append(i)
        else:
            odd.append(i)
    return odd, even
print(find([2, 83, 71, 42, 26, 99]))

image.png

我们可以看出,Python 支持返回多个值,且当函数有多个返回值的时候,返回结果为元组





目录
相关文章
|
1月前
|
存储 开发者 Python
python基本语法
Python的基本语法简洁而强大,支持多种编程范式,包括面向对象编程和函数式编程。通过掌握变量和数据类型、操作符、控制结构、函数、类和模块等基本概念,可以有效地编写高效、可读的Python代码。无论是初学者还是经验丰富的开发者,Python都提供了丰富的工具和库来满足各种编程需求。
70 13
|
3月前
|
存储 索引 Python
Python 的基本语法
这些是 Python 的基本语法要素,掌握它们是学习和使用 Python 的基础。通过不断地实践和应用,你将能够更深入地理解和熟练运用这些语法知识,从而编写出高效、简洁的 Python 代码
170 61
|
3月前
|
IDE 数据挖掘 开发工具
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
Python作为一种广受欢迎的高级编程语言,以其简洁的语法和强大的功能吸引了众多初学者和专业开发者
58 7
|
3月前
|
存储 Python
Python编程入门:理解基础语法与编写简单程序
本文旨在为初学者提供一个关于如何开始使用Python编程语言的指南。我们将从安装Python环境开始,逐步介绍变量、数据类型、控制结构、函数和模块等基本概念。通过实例演示和练习,读者将学会如何编写简单的Python程序,并了解如何解决常见的编程问题。文章最后将提供一些资源,以供进一步学习和实践。
80 1
|
3月前
|
机器学习/深度学习 数据挖掘 开发者
Python编程入门:理解基础语法与编写第一个程序
【10月更文挑战第37天】本文旨在为初学者提供Python编程的初步了解,通过简明的语言和直观的例子,引导读者掌握Python的基础语法,并完成一个简单的程序。我们将从变量、数据类型到控制结构,逐步展开讲解,确保即使是编程新手也能轻松跟上。文章末尾附有完整代码示例,供读者参考和实践。
|
3月前
|
存储 Python Perl
python正则语法
本文介绍了正则表达式的基础知识及其在 Python 中的应用。首先解释了为什么要使用正则表达式,通过一个判断手机号的示例展示了正则表达式的简洁性。接着详细介绍了 `re` 模块的常用方法,如 `match()`、`search()`、`findall()`、`finditer()` 等,并讲解了正则表达式的基本语法,包括匹配单个字符、数字、锚字符和限定符等。最后,文章还探讨了正则表达式的高级特性,如分组、编译和贪婪与非贪婪模式。
39 2
|
4月前
|
存储 程序员 开发者
Python编程入门:从零开始掌握基础语法
【10月更文挑战第21天】本文将带你走进Python的世界,通过浅显易懂的语言和实例,让你快速了解并掌握Python的基础语法。无论你是编程新手还是想学习一门新的编程语言,这篇文章都将是你的不二之选。我们将一起探索变量、数据类型、运算符、控制结构、函数等基本概念,并通过实际代码示例加深理解。准备好了吗?让我们开始吧!
|
23天前
|
存储 缓存 Java
Python高性能编程:五种核心优化技术的原理与Python代码
Python在高性能应用场景中常因执行速度不及C、C++等编译型语言而受质疑,但通过合理利用标准库的优化特性,如`__slots__`机制、列表推导式、`@lru_cache`装饰器和生成器等,可以显著提升代码效率。本文详细介绍了这些实用的性能优化技术,帮助开发者在不牺牲代码质量的前提下提高程序性能。实验数据表明,这些优化方法能在内存使用和计算效率方面带来显著改进,适用于大规模数据处理、递归计算等场景。
58 5
Python高性能编程:五种核心优化技术的原理与Python代码
|
2月前
|
Python
[oeasy]python055_python编程_容易出现的问题_函数名的重新赋值_print_int
本文介绍了Python编程中容易出现的问题,特别是函数名、类名和模块名的重新赋值。通过具体示例展示了将内建函数(如`print`、`int`、`max`)或模块名(如`os`)重新赋值为其他类型后,会导致原有功能失效。例如,将`print`赋值为整数后,无法再用其输出内容;将`int`赋值为整数后,无法再进行类型转换。重新赋值后,这些名称失去了原有的功能,可能导致程序错误。总结指出,已有的函数名、类名和模块名不适合覆盖赋新值,否则会失去原有功能。如果需要使用类似的变量名,建议采用其他命名方式以避免冲突。
52 14
|
2月前
|
分布式计算 大数据 数据处理
技术评测:MaxCompute MaxFrame——阿里云自研分布式计算框架的Python编程接口
随着大数据和人工智能技术的发展,数据处理的需求日益增长。阿里云推出的MaxCompute MaxFrame(简称“MaxFrame”)是一个专为Python开发者设计的分布式计算框架,它不仅支持Python编程接口,还能直接利用MaxCompute的云原生大数据计算资源和服务。本文将通过一系列最佳实践测评,探讨MaxFrame在分布式Pandas处理以及大语言模型数据处理场景中的表现,并分析其在实际工作中的应用潜力。
116 2

热门文章

最新文章

推荐镜像

更多