【Python学习笔记】函数

1. 函数组成

Python中,我们是这样定义函数的:

def function(para1, para2):print("func start")print(para1)print(para2)print("func end")print("让技术总监面试 求职者")return "func return"

def 是关键字 表示定义一个函数

后面是函数的名字,紧接着后面需要一个括号 ,这个括号中间,根据需要可以有 参数。函数要返回结果,就必须要使用 return 关键字,后面加上返回的结果对象。

最后是一个冒号,下面的缩进的代码表示这个函数名字代表的具体动作是什么,称之为函数体

函数体的代码是需要缩进的。建议缩进四个空格

这样定义好了以后,后面的代码要指代这个面试的流程,只需要写名字 function 就行了。 比如:

print(function)

运行一下,发现会输出内容如下

<function function at 0x05292468>

表示这个 function 是 一个函数类型的对象。

特别要注意的是,解释器执行到 定义函数 的语句时,并不会执行函数体里面的代码。

要执行函数体里面的代码,必须 调用函数

2. 函数调用

在函数名后面加上括号,比如,要执行 function 这个名字代表的动作,就在后面加上括号 function()

如下:

function("para1","para2")
# 运行结果
$ python main.py
func start
para1
para2
func end
func return

function() 就叫 调用函数 function ,有时也叫做 执行函数 function。

当解释器 执行到这行调用函数的代码时,就会跑到 函数 function 里面,去执行函数里面的语句。

函数必须先定义,后面才能调用。

如果一个函数定义,里面并没有写return语句,像这样

def func1():print('你好')
print(func1())    
# 运行结果
$ python main.py
你好
None

那么该函数调用后会返回一个None对象。 None对象是Python内置的,表示没有数据内容的对象。

3. 缺省值参数

可以在定义函数的时候,给它加上缺省值,像下面这样:

def  func(para1, para2=60):...

这样,在调用这个函数的时候,如果para2参数还是传入60 就可以不用写了,像这样

func(80)

解释器发现该函数参数para2有缺省值,就会自动帮我们传入缺省值60 给参数para2。

当然如果我们调用的时候传入了参数,比如像下面这样,解释器就会将 70 传给参数score。

func(50, 70)

函数的参数定义,一旦有缺省值后,后面所有的参数必须都有缺省值

下面这样的定义是错误的

def  func(arg1, arg2, arg3=3, arg4):...

arg4 前面的参数 arg3 已经有缺省值,所以必须也要有缺省值,比如

def  func(arg1, arg2, arg3=3, arg4='hello'):...

4. 指定参数名调用函数

这样的一个函数

def  func(arg1, arg2, arg3=3, arg4='hello'):print(arg1)print(arg2)print(arg3)print(arg4)

我们调用的时候,可以这样

func(1,2,3,'hello')

也可以这样 指定参数名 去调用

func(arg1=1,arg2=2,arg3=3,arg4='hello')

指定参数名调用的时候,可以颠倒参数的次序

func(arg2=1,arg3=2,arg1=3,arg4='hello')

也可以这样混合使用

func( 1, 2, arg3=3,arg4='hello')

但是一旦某个参数指定了参数名,后面所有的参数必须指定参数名!!!

5. 变量的有效范围

局部变量

定义在某个函数内部的变量,称之为 局部变量

函数的参数变量也是局部变量。

局部变量有效范围只能是该函数内部。

全局变量

定义在所有函数外部的变量,称之为 全局变量

全局变量的有效范围是整个模块文件。

函数内部代码可以访问全局变量的。

范围覆盖

大家再来看这样一个例子

upChars = '零壹贰叁肆伍陆柒捌玖'
def getZh(num):upChars = '0123456789'print('对应的字符是:' + upChars[num])
getZh(5) 
# 运行结果
$ python main.py
对应的字符是:5

在函数内部,如果局部变量和全局变量同名,使用的是局部变量。

6. 常见内置函数

我们通常会把常用的代码放到函数里面,这样要使用这些代码 ,只需要调用那些函数就可以了。

Python的设计者 为我们总结了一些常用的函数,放到了Python解释器中,这些函数我们直接就可以使用。

前面我们学过的print 就是其中之一。

内置函数可以在Python的官方文档查看到,点击这里查看官方文档。

abs()	dict()	help()	min()	setattr()
all()	dir()	hex()	next()	slice()
any()	divmod()	id()	object()	sorted()
ascii()	enumerate()	input()	oct()	staticmethod()
bin()	eval()	int()	open()	str()
bool()	exec()	isinstance()	ord()	sum()
bytearray()	filter()	issubclass()	pow()	super()
bytes()	float()	iter()	print()	tuple()
callable()	format()	len()	property()	type()
chr()	frozenset()	list()	range()	vars()
classmethod()	getattr()	locals()	repr()	zip()
compile()	globals()	map()	reversed()	__import__()
complex()	hasattr()	max()	round()	 
delattr()	hash()	memoryview()	set()	 

常用的几个

int('1000')   # 返回整数1000
int(3456.23)  # 返回整数3456
float('1000')    # 返回 浮点数 1000.0
float('6.345')   # 返回 浮点数 6.345
str(1000)   # 返回字符串 '1000'
str(1000.23)   # 返回字符串 '1000.23'
len('你好!') # 计算字符串的长度,返回值 3
type(3)        # 返回  <class 'int'>
type('hello')  # 返回  <class 'str'>

**关于终端输入 input **

input函数返回值是用户输入的字符串,不包括最后的回车符。字符串是不能直接进行数学运算的

要解决这个问题,可以使用两个内置函数, int 和 str

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

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

相关文章

AI Web3 盛会「EDGE」在港闭幕,融云国际影响力持续提升

&#x1f446;点击报名「爱嗨游」线上发布会 9 月 25 日至 27 日&#xff0c;全球规模最大的 AI & Web3 投资盛会——EDGE 峰会在中国香港举办&#xff0c;融云作为战略合作伙伴与来自世界各地的企业家、投资人、学者和热门项目方一同完成了这一盛会。关注【融云全球互联网…

vmware ubuntu 虚拟机 网卡图片消失处理办法

如图&#xff0c;这个图标消失处理办法&#xff1a; 输入如下指令&#xff1a;sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start

【06】基础知识:typescript中的泛型

一、泛型的定义 在软件开发中&#xff0c;我们不仅要创建一致的定义良好的API&#xff0c;同时也要考虑可重用性。 组件不仅能支持当前数据类型&#xff0c;同时也能支持未来的数据类型&#xff0c;这在创建大型系统时提供了十分灵活的功能。 在像 C# 和 Java 这样的语言中&…

AM@隐函数@隐函数求导@幂指函数求导@参数式函数求导

文章目录 abstract显函数隐函数隐函数显化 隐函数求导对数求导法幂指函数求导乘法链函数及其分式函数求导例子例例例例 参数方程确定的函数及其导数引言参数方程确定的函数例 参数方程确定的函数的导数参方函数的二阶导数例子例例 极坐标曲线某点的导数 abstract 显函数和隐函…

在进行自动化测试,遇到验证码的问题,怎么办?

1.找开发去掉验证码或者使用万能验证码 2.使用OCR自动识别 使用OCR自动化识别&#xff0c;一般识别率不是太高&#xff0c;处理一般简单验证码还是没问题 这里使用的是Tesseract-OCR,下载地址&#xff1a;https://github.com/A9T9/Free-Ocr-Windows-Desktop/releases 怎么使…

论自动化测试中的xpath | 多语言测试最新案例

XPath&#xff08;XML Path Language&#xff09;是一门在XML文档中查找信息的语言。XPath是XML处理中非常重要的组成部分&#xff0c;能大大简化文档的解析和处理。它与XSLT、XPointer等标准一起被广泛应用于XML的解析处理。 一般情况下&#xff0c;xpath主要应用在以下几个方…

VR、AR、MR、XR到底都是什么?有什么区别

目录 VRARMRXRAR、VR、MR、XR的区别 VR 英&#xff1a;Virtual Reality 中文翻译&#xff1a;虚拟现实 又称计算机模拟现实。是指由计算机生成3D内容&#xff0c;为用户提供视觉、听觉等感官来模拟现实&#xff0c;具有很强的“临场感”和“沉浸感”。我们可以使用耳机、控制器…

10月13日,每日信息差

今天是2023年10月13日&#xff0c;以下是为您准备的13条信息差 第一、欧盟投资4.5亿欧元在法国建设电池超级工厂。欧洲投资银行是欧盟的贷款机构&#xff0c;也是世界上最大的跨国银行之一 ​第二、北京银行推出数字人民币智能合约平台 数字人民币预付资金管理产品在商超场景…

MyBatis 缓存

MyBatis 缓存 MyBatis 是现在国内比较流行的 ORM 框架&#xff0c;在学习 MyBatis 的时候&#xff0c;不得不了解 MyBatis 的两级缓存&#xff0c;要了解 MyBatis 的缓存&#xff0c;先要了解 MyBatis 几个重要的对象 SqlSession - 对应的一次数据库会话&#xff0c;由 SqlSe…

“零代码”能源管理平台:智能管理能源数据

随着能源的快速增长&#xff0c;有效管理和监控能源数据变得越来越重要。为了帮助企业更好的管理能源以及降低能源成本&#xff0c;越来越多的能源管理平台出现在市面上。 “零代码”形式的能源管理平台&#xff0c;采用IT与OT深度融合为理念&#xff0c;可进行可视化、拖拽、…

spring boot 使用SSE向前端推送数据

SSE&#xff08;Server-Sent Events&#xff09;是一种基于HTTP的实时通信协议&#xff0c;它允许服务器向客户端发送持久性的数据流。与WebSocket不同的是&#xff0c;SSE是单向通信&#xff0c;只能由服务器向客户端发送数据。Spring Boot通过Spring WebFlux模块提供了对SSE的…

[题] 子矩阵的和 #二维前缀和

题目 子矩阵的和 题解 s[i][j] ( s[i - 1][j] s[i][j - 1] - s[i - 1][j - 1] ) ; 将输入后的数组进行初始化 表示以&#xff08;1, 1&#xff09;为左上角以&#xff08;i, j&#xff09;为右下角的矩阵内所有元素之和。 s[x2][y2] - s[x1 - 1][y2] - s[x2][y1 - 1] s[x1 …

从零到一完成Midway.js登录、注册、鉴权功能

您好&#xff0c;如果喜欢我的文章&#xff0c;可以关注我的公众号「量子前端」&#xff0c;将不定期关注推送前端好文~ 前言 本文将从项目搭建到实现从零到一开发一个登录、注册、鉴权的简易版注册登录系统&#xff0c;主要功能和技术选型如下&#xff1a; 服务端框架———…

【学习之路】Multi Agent Reinforcement Learning框架与代码

【学习之路】Multi Agent Reiforcement Learning框架与代码 Introduction 国庆期间&#xff0c;有个客户找我写个代码&#xff0c;是强化学习相关的&#xff0c;但我没学过&#xff0c;心里那是一个慌&#xff0c;不过好在经过详细的调研以及自身的实力&#xff0c;最后还是解…

安装程序2502/2503错误的解决方法

Windows Installer是在Windows 2000时提出&#xff0c;作为微软操作系统中的安装程序开发标准的操作系统服务。它可以支持安装程序所需要的许多功能&#xff0c;并且可以支持交易式安装&#xff08;Committable Installation&#xff09;&#xff0c;当安装程序发现错误或问题时…

Kubernetes 原生微服务开发 | 阿Q送书第七期

微服务开发并不容易。其中涉及大量的概念与复杂的技术&#xff0c;令很多开发者忘而却步。Quarkus 是一个全能的基础框架&#xff0c;除了基础的 Web 应用开发能力外&#xff0c;还包括服务发现与调用、熔断限流和观测等微服务治理体系。Quarkus 在提供强大特性的同时&#xff…

【Docker】Docker网络及容器间通信详解

目录 背景 默认网络 1、bridge 网络模式 2、host 网络模式 3、none 网络模式 4、container 网络模式 自定义网络 容器间网络通信 IP通信 Docker DNS server Joined容器 前言 本实验通过docker DNS server和joined 容器两种方法实现Docker容器间的通信。Docker容器间…

ASP.net数据从Controller传递到视图

最常见的方式是使用模型或 ViewBag。 使用模型传递数据&#xff1a; 在控制器中&#xff0c;创建一个模型对象&#xff0c;并将数据赋值给模型的属性。然后将模型传递给 View 方法。 public class HomeController : Controller {public IActionResult Index(){// 创建模型对…

SQL利用Case When Then多条件判断

CASE WHEN 条件1 THEN 结果1 WHEN 条件2 THEN 结果2 WHEN 条件3 THEN 结果3 WHEN 条件4 THEN 结果4 ......... WHEN 条件N THEN 结果N ELSE 结果X END Case具有两种格式。简单Case函数和Case搜索函数。 --简单Case函数 CASE sex WHEN 1 THEN…

wordpress遇到的问题

一&#xff09; 403 Forbidden 我是lnmpwordpress&#xff0c;所以在 /etc/nginx/conf.d/default.conf中 修改location 加上 index.php刷新即可&#xff1b; 二&#xff09;wordpress插件更新&#xff0c;需要输入服务器的FTP登录凭证的问题 在 wp-config.php的文件中进行修改…