首页 > 编程语言 >python高级之函数的定义和调用

python高级之函数的定义和调用

时间:2023-12-07 16:12:52浏览次数:34  
标签:调用 return 定义 python print def 函数

Python函数的定义和调用

image

函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。


定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:

  • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()
  • 任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
  • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
  • 函数内容以冒号 : 起始,并且缩进。
  • return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。

image


语法

Python 定义函数使用 def 关键字,一般格式如下:

def 函数名(参数列表):
    函数体

(0)空函数

def login_app():
    pass
  • 函数体为pass代表什么都不做,称之为空函数。
  • 定义空函数通常是有用的,因为在程序设计的开始,往往是先想好程序都需要完成什么功能,然后把所有功能都列举出来用pass充当函数体“占位符”,这将使得程序的体系结构立见,清晰且可读性强。
  • 例如要编写一个ftp程序
    • 我们可能想到的功能有用户认证,下载,上传,浏览,切换目录等功能
    • 可以先做出如下定义:
def auth_user():
    """user authentication function"""
    pass

def download_file():
    """download file function"""
    pass

def upload_file():
    """upload file function"""
    pass

def ls():
    """list contents function"""
    pass

def cd():
    """change directory"""
    pass

(1)无参无返回值

def common_user_pwd():
    user=input('请输入用户名: ').strip()
    pwd=input('请输入密码: ').strip()

(2)有参无返回值

  • 参数是函数的调用者向函数体传值的媒介
  • 没有return,无返回值
def test(name):
    print(f"Hello, {name}!")

test("Dream")  # Output: Hello, Dream!

(3)有多个参数无返回值

def add(a, b):
    result = a + b
    print(f"The sum of {a} and {b} is {result}")


add_numbers(6, 7)  # Output: The sum of 6 and 7 is 13

(4)多个参数一个返回值

# 定义一个函数,函数有两个参数
def add_numbers(a, b):
    result = a + b
    print(f"The sum of {a} and {b} is {result}")   
    
    return result   # 使用 return 关键字将想要返回的结果返回出去

## 调用上面设置的函数
res = add_numbers(3, 5)  # Output: The sum of 3 and 5 is 8
print(res) # 8

(5)多个参数多个返回值

def rectangle_info(length, width):
    area = length * width
    perimeter = 2 * (length + width)
    return area, perimeter

# 解压赋值
area, perimeter = rectangle_info(4, 5)
print(f"Area: {area}, Perimeter: {perimeter}")
# Area: 20, Perimeter: 18

调用函数与函数返回值

定义一个函数:给了函数一个名称,指定了函数里包含的参数,和代码块结构。

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行。

如下实例调用了 printme() 函数:

# 定义函数
def printme( str ):
   # 打印任何传入的字符串
   print (str)
   return
 
# 调用函数
printme("我要调用用户自定义函数!")
printme("再次调用同一函数")

以上实例输出结果:

我要调用用户自定义函数!
再次调用同一函数

函数的使用分为定义阶段与调用阶段,定义函数时只检测语法,不执行函数体代码,函数名加括号即函数调用,只有调用函数时才会执行函数体代码

#定义阶段
def foo():
    print('in the foo')
    bar()

def bar():
    print('in the bar')

#调用阶段
foo()

执行结果:

in the foo
in the bar

定义阶段函数foo与bar均无语法错误,而在调用阶段调用foo()时,函数foo与bar都早已经存在于内存中了,所以不会有任何问题。

按照在程序出现的形式和位置,可将函数的调用形式分为三种:

#1、语句形式:
foo()

#2、表达式形式:
m=my_min(1,2) #将调用函数的返回值赋值给x
n=10*my_min(1,2) #将调用函数的返回值乘以10的结果赋值给n

#3、函数调用作为参数的形式:
# my_min(2,3)作为函数my_min的第二个参数,实现了取1,2,3中的较小者赋值给m
m=my_min(1,my_min(2,3))

若需要将函数体代码执行的结果返回给调用者,则需要用到return。return后无值或直接省略return,则默认返回None,return的返回值无类型限制,且可以将多个返回值放到一个元组内。

def test(x,y,z):
...  
return x,y,z #等同于return (x,y,z)
... 
res=test(1,2,3)
print(res)
## (1, 2, 3)

return是一个函数结束的标志,函数内可以有多个return,但只执行一次函数就结束了,并把return后定义的值作为本次调用的结果返回。

标签:调用,return,定义,python,print,def,函数
From: https://www.cnblogs.com/xiao01/p/17882228.html

相关文章

  • vue中孙子调用爷爷组件的方法怎么调用?
    使用Vue的provide和inject来实现跨层级的组件通信。provide允许一个祖先组件(爷爷组件)提供数据,而inject允许子孙组件(孙子组件)在任意层级注入这个数据。通过这种方式,你可以在孙子组件中访问到爷爷组件提供的方法。以下是一个简单的例子://在爷爷组件中提供方法exportdefault......
  • 聪明办法学python Talk 2 如何debug
    聪明办法学pythonTalk2如何debug1.为什么要调试程序运行(前提过编译器)使得我们只能看到结果错误,即逻辑错误,逻辑错误并不好找,更何况遇到的代码较长就跟不好找到错误,而debug就是便于找到错误,错误大部分是自己的问题,先自己找找问题,别急着怀疑电脑,放平心态慢慢找2.看懂报错i......
  • Python中for循环中的变量范围
    Python中for循环的局部变量i,在这里相当于是全局变量。不知道是版本问题还是其他问题,总之这里需要注意一下了。foriinrange(1,4):print(i,end=',')print('\n',i)foriin'abc':print(i,end=',')print('\n',i)Python中,int类型的变量的......
  • 可调用对象包装器和绑定器
    文章参考:爱编程的大丙(subingwen.cn)1.可调用对象一组执行任务的语句都可以视作一个函数、一个可调用对象。C++中提供了可调用对象的概念,其应用相当广泛,例如在处理一些回调函数、触发函数时就会用到。可调用对象有如下几种类型:函数指针:intadd(inta,intb){ret......
  • Python爬取网页速度为什么那么快
    Python作为一门高效、易用的编程语言,其在网络爬虫方面也有着突出的表现。Python爬取网页的速度之所以那么快,主要归功于以下几个方面:一、简洁的代码Python语言相对于其他语言而言,代码量相对较少,且语法简单易懂,这让Python编写网络爬虫变得十分容易。通过Python的Requests库和Beautifu......
  • 提高Python开发效率与质量的工具和技术
     在Python开发中,提高效率和保证代码质量是每个开发者都追求的目标。为了实现这一目标,Python开发者可以利用各种工具和技术来简化开发流程、提高代码质量和效率。本文将介绍一些常用的工具和技术,帮助Python开发者更高效地进行开发。 一、集成开发环境(IDE) 使用优秀的集成开发环......
  • 代码随想训练营第58天(Python)| 739. 每日温度、496.下一个更大元素 I
    739.每日温度classSolution:defdailyTemperatures(self,temperatures:List[int])->List[int]:n=len(temperatures)ans=[0]*n#单调增的栈stack=[]foriinrange(n):#如果遍历的temperatures[i]......
  • 聪明办法学python——debug
    聪明办法学python——Debug调试理论简单介绍看懂报错信息利用print方法调试程序利用assert方法调试程序利用ide调试程序杂谈:利用AI来协助Debug调试理论开始之前,记住机器永远是对的,bug可能就在你想不到的地方软件的两层含义:人类需求在信息世界的投影和计算......
  • Python中级之文件操作
    文件操作【一】基本用法在Python中,文件处理是常见的任务之一。以下是一些基本的文件处理操作和对应的Python语法:打开文件:使用open()函数来打开一个文件,可以指定文件名、打开模式和字符编码(可选)。#打开文件(只读模式)file=open('example.txt','r',encoding='utf-8')......
  • java 自定义查询StringBuffer Sql
    一、背景二、实现@AutowiredprivateEntityManagerentityManager;Queryquery=entityManager.createNativeQuery(sql);query.unwrap(SQLQuery.class).setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP);List<Map<String,Object>>reportWaterTota=qu......