python自学成才之路 函数详细用法

2024-06-22 19:18

本文主要是介绍python自学成才之路 函数详细用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • 函数简介
    • 函数参数
      • 实参和形参
    • 参数传递
      • 1.位置配对
      • 2.通过关键字配对
    • 函数默认值
    • 任意数量的实参
    • 任意数量关键实参
    • 函数的导入
      • 1.导入整个模块
      • 2.导入特定函数

函数简介

python函数定义格式如下:

def function_name(params):'''函数体'''

和java定义函数不一样的地方在于,java对于无返回值的函数需要使用void修饰,有返回值的函数需要显示的指定返回值类型。而python则不需要添加这些修饰符,在python函数体中可以随时通过return语句返回值而不需要添加任何修饰符。例如像下面这样:

def function1():print("hello world")def function2():return "hello world"function1()
print(function2())

因此,在python函数中,玩法比较多的地方就在函数参数这一块了。

函数参数

实参和形参

如下列所示,其中在定义function3时的username就称为形参,而在调用function3方法时的传递的参数peter则称为实参。

def function3(username):print(username)function3("peter")

参数传递

在一个函数中可以有多个形参,那在传递实参时,实参时如何和形参对应上的呢,有以下几种方法。

1.位置配对

python默认会按照传递的位置顺序一一配对,所以在传递实参时位置很重要。

def function4(username,age):print("username = " + username + " , age = " + str(age))function4("peter",12)
# 这样传递就会出错
function4(12,"peter")

2.通过关键字配对

还是上面那个function4,可以通过形参的关键字来做配对,使用关键字来做配对的时候,实参的顺序就不重要了。

function4(username='peter',age=12)
function4(age=12,username='peter')

注意:关键字配对和位置配对不能混合使用。

# 下面这种写法是错误的
function4(username='peter',12)

函数默认值

在声明函数的时候,可以给函数形参指定默认值,这样在传递实参的时候,有默认值的形参可以选择性的传递。python语法规定默认值形参必须放在非默认值形参后边。如下定义一个带有默认值的形参addr,addr必须放在username和age后面。

def function4(username,age,addr = 'shanghai'):print("username = " + username + " , age = " + str(age) + ',addr = ' + addr)function4(username='peter',age=12,addr = 'beijing')
function4(age=12,username='peter')

任意数量的实参

有时候不知道会传递多少参数,python通过在形参前加上一个*来表示可以传递任意数量的实参,如下所示:

def function5(*args):for arg in args:print(arg)function5('peter',12,'shanghai')

也可以像下面这样用,将任意个数的形参和其它形参结合在一起使用,但是要注意,像下面function6这样的函数,size参数必须按照位置配对的方式传递,不能按照关键字配对的方式传递。

def function6(size,*args):print(size)for arg in args:print(arg)
function6(3,'peter',12,'shanghai')

如果想要按照关键字的方式传递,需要修改函数为如下形式,下面这种形式的function6只能使用关键字配对的方式使用给size传递实参,不能按照位置方式配对。

def function6(*args,size):print(size)for arg in args:print(arg)
function6('peter',12,'shanghai',size = 3)

任意数量的实参其实可以直接通过列表的形式传递

function6(['peter',12,'shanghai'],size=3)

任意数量关键实参

如果要想在传递参数时,要求必须带上关键字,则可以在定义形参时在形参前面加上**,如下所示:

def function7(** args):for k,v in args.items():print('key : ' + str(k) + ', v = ' + str(v))function7(age = 7,name = 'peter',addr = 'shanghai')

其实质就是将关键字都封装在一个字典当中,虽然说是通过一个字典来实现的任意数量关键字参数,但是在传递参数时不能直接传递一个字典,向下面这种传递方式就是错误的

function7({"age": 7, "name": 'peter', "addr": "shanghai"})

在定义任意数量的关键字参数的函数时也可以加上其它关键字形参

def function7(size,**args):print(size)for k, v in args.items():print('key : ' + str(k) + ', v = ' + str(v))
# 在传递参数时可以按照位置来配对也可以按照关键字来配对
function7(age=7, name='peter', addr='shanghai',size = 3) # 按照关键字来配对,顺序不重要
function7(3,age=7, name='peter', addr='shanghai') # 按照位置来配对,size必须放在正确位置上

函数的导入

有时候我们希望所写的函数能够在其它模块中被复用,这时候就可以在其它模块中使用import来导入我们所写的函数。
比如在functions.py文件中定义了如下函数:

def function1():'''def funtion2():'''def function3():'''

如果要在test.py文件中使用functions.py文件中的函数,可以使用下面几种方法

1.导入整个模块

import functions#使用如下
functions.function1()

可以通过as来给导入的模块自定义别名

import functions as fun#使用如下
fun.function1()

2.导入特定函数

from functions import function1,function2# 使用如下
function1()

也可以通过as给函数自定义别名

from functions import function1 as fun1,function2#使用如下
fun1()

可以通过*来表示从模块中导入所有的函数

from functions import *

这篇关于python自学成才之路 函数详细用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1085179

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

hdu1171(母函数或多重背包)

题意:把物品分成两份,使得价值最接近 可以用背包,或者是母函数来解,母函数(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v)(1 + x^v+x^2v+.....+x^num*v) 其中指数为价值,每一项的数目为(该物品数+1)个 代码如下: #include<iostream>#include<algorithm>

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

C++操作符重载实例(独立函数)

C++操作符重载实例,我们把坐标值CVector的加法进行重载,计算c3=c1+c2时,也就是计算x3=x1+x2,y3=y1+y2,今天我们以独立函数的方式重载操作符+(加号),以下是C++代码: c1802.cpp源代码: D:\YcjWork\CppTour>vim c1802.cpp #include <iostream>using namespace std;/*** 以独立函数

bytes.split的用法和注意事项

当然,我很乐意详细介绍 bytes.Split 的用法和注意事项。这个函数是 Go 标准库中 bytes 包的一个重要组成部分,用于分割字节切片。 基本用法 bytes.Split 的函数签名如下: func Split(s, sep []byte) [][]byte s 是要分割的字节切片sep 是用作分隔符的字节切片返回值是一个二维字节切片,包含分割后的结果 基本使用示例: pa

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',