话不多说,今天我们要介绍的是函数。本系列文章追求短而精,今天我们将重点讨论函数以及与Java方法的区别。与Java方法不同,函数不需要像Java方法一样讲究修饰符等其他特性,它只需要使用"def"关键字进行声明。另外,函数的参数也与Java方法有所不同,Java方法中不存在默认参数的概念,而在Python中,函数参数是可以有默认值的,并且可以通过传递关键字参数的方式来指定参数顺序。

此外,Python函数还具有可变参数的特性,不同于Java中的实现方式,Python使用星号符号(*)来实现可变参数。请注意这种写法的使用方式。更为强大的是,Python还提供了双星号符号(**)的写法,下面我们将详细讨论这一特性。

最后,我们来谈谈返回值。与Java不同的是,Python函数可以返回多个值,而Java中需要将这些值封装成对象。Python的这种设计让我们能够更加方便地处理返回值。另外,Python还提供了一些内置函数,但如果你想使用Java的内置方法,很抱歉,你需要直接使用对象来调用这些方法。好了,接下来让我们简单了解一下函数的一些其他特性吧。

函数声明

在Python中,可以使用关键字def来声明函数。函数声明的基本语法如下:

def 函数名(参数1, 参数2, ...):
# 函数体
# 执行的代码块
return 返回值
  • def关键字用于定义函数。
  • 函数名是你给函数起的名字,应该具有描述性。
  • 参数是可选的,你可以在括号内指定函数需要接收的输入参数。如果没有参数,括号仍然是必须的,但可以留空。
  • 函数体是函数的具体实现,包含一系列的语句和逻辑。
  • return语句用于指定函数的返回值。可以选择省略return语句,这样函数将不会返回任何值。

以下是一个简单的示例:

def greet(name):
print("Hello, " + name + "!") greet("xiaoyu") # 调用函数,输出 "Hello, xiaoyu!"

参数

默认参数

默认参数(Default arguments):函数定义时可以为参数指定默认值,这样在函数调用时如果没有传递对应参数的值,将使用默认值。

def power(x, n=2):
return x ** n result1 = power(2) # 调用函数,n使用默认值2
result2 = power(2, 3) # 调用函数,指定n为3
print(result1) # 输出 4
print(result2) # 输出 8

可变参数

可变参数(Variable arguments):。与Java的...使用类似,有时候我们无法确定调用函数时会传递多少个参数,这时可以使用可变参数来接收不定数量的参数。在函数定义时,在参数前面加上一个星号*,这样传递的参数将被打包成一个元组

def add(*numbers):
result = 0
for num in numbers:
result += num
return result sum1 = add(1, 2, 3) # 调用函数,传递3个参数
sum2 = add(1, 2, 3, 4, 5) # 调用函数,传递5个参数
print(sum1) # 输出 6
print(sum2) # 输出 15

关键字参数

关键字参数(Keyword arguments):当函数调用时,可以使用关键字参数来指定参数的名称和对应的值,这样参数的顺序可以任意。在函数定义时,在参数前面加上两个星号**,这样传递的参数将被打包成一个字典。

def person_info(**info):
for key, value in info.items():
print(key + ": " + value) person_info(name="Alice", age="25", city="New York") # 调用函数,传递关键字参数

以上我们之讲解了在Java中不常见的,常规用法就不讲解了,浪费时间。

返回值

有时候,Python中我们还可以在函数中返回多个值。实际上,Python中的多个返回值是以元组的形式返回的。我们可以通过解包操作将返回的元组拆分为多个变量。而Java中需要将这些值封装成对象

下面是一个示例,演示了函数如何返回多个值:

def calculate(a, b):
sum = a + b
difference = a - b
return sum, difference result1, result2 = calculate(8, 3)
print(result1) # 输出 11
print(result2) # 输出 5

除了这一个我还没看到有啥别的大区别,Java同学注意一下!

内置函数

我举一些不好理解的例子吧,像min、max、sum这种数值操作我就不列举了,我们看下range、zip、all、any吧。这些你遇见了直接百度就可以明白的,无所谓记住什么的,写多了就记住了。

range函数

range(start, stop, step):range函数用于生成一个整数序列,可以用来遍历数字范围。它接受三个参数:起始值(可选,默认为0),结束值(必选),步长(可选,默认为1)。返回的对象是一个可迭代的序列。

for i in range(1, 10, 2):
print(i)
# 输出:1 3 5 7 9

zip函数

zip(*iterables):zip函数用于将多个可迭代对象进行配对。它接受任意个可迭代对象作为参数,并返回一个元组的迭代器,其中每个元组由输入迭代器中对应位置的元素组成。当输入的可迭代对象长度不一致时,zip函数会以最短的长度为准,超出部分将被忽略。

names = ["Alice", "Bob", "xiaoyu"]
ages = [25, 30, 35]
for name, age in zip(names, ages):
print(name, age)
# 输出:
# Alice 25
# Bob 30
# xiaoyu 35

all函数

all(iterable):all函数用于检查可迭代对象中的所有元素是否为真。如果可迭代对象中所有元素都为真,返回True;否则返回False。如果可迭代对象为空,则返回True。

numbers = [1, 2, 3, 4, 5]
print(all(numbers)) # 输出:True numbers = [0, 1, 2, 3, 4, 5]
print(all(numbers)) # 输出:False numbers = []
print(all(numbers)) # 输出:True

any函数

any(iterable):any函数用于检查可迭代对象中的任何一个元素是否为真。如果可迭代对象中任何一个元素为真,返回True;否则返回False。如果可迭代对象为空,则返回False。

numbers = [0, 0, 0, 1]
print(any(numbers)) # 输出:True numbers = [0, 0, 0]
print(any(numbers)) # 输出:False numbers = []
print(any(numbers)) # 输出:False

总结

本文介绍了函数的基本概念和与Java方法的区别。在Python中,函数使用"def"关键字进行声明,不需要像Java方法一样讲究修饰符等其他特性。函数的参数可以有默认值,并且可以通过传递关键字参数的方式来指定参数顺序。Python函数还具有可变参数和关键字参数的特性,可以接收不定数量的参数,并且参数的顺序可以任意。与Java不同的是,Python函数可以返回多个值,而Java需要将多个值封装成对象。此外,Python还提供了一些内置函数,如range、zip、all、any等。

🔥🔥Java开发者的Python快速进修指南:函数基础的更多相关文章

  1. JAVA开发者的Golang快速指南

    Golang作为Docker.Kubernetes和OpenShift等一些酷辣新技术的首选编程语言,越来越受欢迎.尤其它们都是开源的,很多情况下,开源是非常有价值的.深入学习阅Golang等源代码库 ...

  2. 针对Quant的Python快速入门指南

    作者:用Python的交易员 (原创文章,转载请注明出处) 最近有越来越多的朋友在知乎或者QQ上问我如何学习入门Python,就目前需求来看,我需要写这么一篇指南. 针对整个vn.py框架的学习,整体 ...

  3. MessagePack Java 0.6.X 快速开始指南 - 安装

    0.6.x 版本的 MessagePack 已经过期被淘汰了.如果你现在开始使用 MessagePack 话,请不要使用这个版本. 我们再这里保留 0.6.x 版本的内容主要用于参考用途. 最新的 M ...

  4. guxh的python笔记二:函数基础

    1,函数的参数 1.1,查看函数的参数类型 def run(a, *args, b, **kwargs): return a + b 可以通过如下方式查看参数类型: import inspect k ...

  5. python之旅:函数基础

    一.引子 1.函数是什么 用函数与不用函数 #1.代码的组织结构不清晰,可读性差 #2.遇到重复的功能只能重复编写实现代码,代码冗余 #3.功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一 ...

  6. Python快速入门

    Python快速入门 一.基础概要 命名:h.py Linux命令行运行:python h.py 注释.数字.字符串: 基本类型只有数字与字符串 #python注释是这样写的 ''' 当然也可以这样 ...

  7. 阿里巴巴泰山版《Java 开发者手册》,也是一份防坑指南

    我是风筝,公众号「古时的风筝」,一个不只有技术的技术公众号,一个在程序圈混迹多年,主业 Java,另外 Python.React 也玩儿的 6 的斜杠开发者. Spring Cloud 系列文章已经完 ...

  8. Java程序员的现代RPC指南(Windows版预编译好的Protoc支持C++,Java,Python三种最常用的语言,Thrift则支持几乎主流的各种语言)

    Java程序员的现代RPC指南 1.前言 1.1 RPC框架简介 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦.于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大 ...

  9. 0基础学Java快速扫盲指南,月入2W的基础

    学Java,掌握一些基本的概念是第一步,本文简单为大家介绍一些扫盲级别的内容,希望帮助小白快速入门. 一.基本概念 JVM:java虚拟机,负责将编译产生的字节码转换为特定机器代码,实现一次编译多处执 ...

  10. Java快速扫盲指南

    文章转自:https://segmentfault.com/a/1190000004817465#articleHeader22 JDK,JRE和 JVM 的区别 JVM:java 虚拟机,负责将编译 ...

随机推荐

  1. 关于 yield 关键字(C#)

    〇.前言 yield 关键字的用途是把指令推迟到程序实际需要的时候再执行,这个特性允许我们更细致地控制集合每个元素产生的时机. 对于一些大型集合,加载起来比较耗时,此时最好是先返回一个来让系统持续展示 ...

  2. Linux 函数: my_func

    # A man and his 'fuctions' ;) # quick use ipmitool cmd to do something ipmi-ip-cmd () { local ip=$1 ...

  3. Django资源网站

    Django的官网:https://www.djangoproject.com/ Django Book2.0版本的中文文档:http://djangobook.py3k.cn/2.0/chapter ...

  4. Lora简介

    断断续续接触lora已经有几年时间了,一直用lora来做点对点的传输,近来有朋友想通过Lora来做广播群发和群收管理,想通过低成本方式实现,sx1302几百的银子,成本有点高,尝试通过sx1278/L ...

  5. asset module type 替代 loader 处理图片字体等文件资源

    前面文章中 体验了webpack的打包 .解析css资源 ,接下来看看项目中常用到的图片.字体.文件该怎么处理吧~ 项目路径如下,在上一篇 解析css资源 项目基础上增加了一些文件 demo ├─ s ...

  6. 终于搞懂了python2和python3的encode(编码)与decode(解码)

    终于搞懂了python2的编码 在python2下碰到非常多次的中文乱码,这次来梳理一下编码问题. 在python 2中默认编码是 ASCII,而在python 3中默认编码是 unicode. un ...

  7. datetime获取当前日期前十二个月份

    from dateutil.parser import parse from dateutil.relativedelta import relativedelta # 当前日期前十二个月 time_ ...

  8. Codeforces 1257D - Yet Another Monster Killing Problem

    题意: 有\(n\)个怪物,每个怪物有攻击力\(a_i\)点:有\(m\)个英雄,每个英雄有攻击力\(p_i\)点,耐力\(s_{i}\)点. 怪物需要被依次杀死(按输入顺序). 每一天可以挑选一个英 ...

  9. Spring Boot 中使用 Poi-tl 渲染数据并生成 Word 文档

    本文 Demo 已收录到 demo-for-all-in-java 项目中,欢迎大家 star 支持!后续将持续更新! 前言 产品经理急冲冲地走了过来.「现在需要将按这些数据生成一个 Word 报告文 ...

  10. 设备维修保养通知:如何使用API接口发送通知给相关人员

    在设备维修保养管理中,及时通知相关人员是确保设备得到及时维护的关键.API接口提供了一个方便的方式来自动发送维修保养通知,以确保工作流程的顺利进行.本文将详细介绍如何使用成熟的API接口来发送设备维修 ...