当前位置: 首页 > news >正文

初识python:一些基础的知识(函数)

目录
  • 函数
    • 函数的几种定义方法
    • 函数的返回值
    • 函数的调用
    • 函数的实参和形参
      • 实参的分类

函数

函数的几种定义方法

函数拥有以下几种定义方法,第一种:没有参数

def self_max():
a,b = 10,20
if a > b:
print(a)
elif a == b:
print('别搞,两个变量相同。')
else:
print(b)

self_max()
'''
20
'''

第二种,传入参数的函数

def self_max(a,b):
if a > b:
print(a)
elif a == b:
print('别搞,两个变量相同。')
else:
print(b)

self_max(20,25)
self_max(15,10)
self_max(15,15)
'''
25
15
别搞,两个变量相同。
'''

第三种,什么都不做留给之后再说吧

def self_max():
pass

相当于只写了一个return None

函数的返回值

  • 函数拥有返回值需要用到一个关键字:return

return之后可以放任意数据类型的变量。但是需要注意的是,如果放入了多个值,则会返回元组类型的变量(使用括号将多个值包起来一起返回)。

def max_self(a,b):
if a > b:
return 1
elif a == b:
return 'a'
elif a < b:
return 'that's good!',1

print(max_self(2,1))
print(max_self(1,2))
print(max_self(1,1))
'''
1
("that's good!", 1)
a
'''

函数的调用

或许在这一节大家伙要换一个视角来看待函数,把函数的名称看做成另外一种形式的变量名。把函数体中处理过程看做是对变量的加工,最后返回出的返回值仍旧是一个变量,用看待变量的视角来看待函数,或许函数这一个感觉有点抽象的概念会变得稍微亲民一些。

def self_max(a,b):
if a>b:
return a
elif a==b:
return None
else:
return b

print(self_max(10,20)) #根据函数的逻辑这里应该返回一个值为20的整数型变量,那么就可以把这个函数当成一个变量名为self_max(10,20)值为20的变量
sum = self_max(10,20) + 6 #按照之前的逻辑来说,大家就可以把这里看做sum = 20 + 6,这样是不是就清晰很多了
print(sum)
'''
20
26
'''

函数的实参和形参

def self_max(a,b):
if a>b:
return a
elif a==b:
return None
else:
return b

print(self_max(10,20))

注意这里def函数定义语句后面括号中的a和b,这就是函数的形参。函数的形参不具有实际的作用,一般形参的变量名都是起到描述作用,提示程序员该往里面放入什么类型的内容。而后面的print语句中往self_max函数括号中放入的两个参数是函数的实参,这里的10和20就具有实际的作用,参与函数中相关的运算。

实参的分类

函数中的实参分为位置实参和关键字实参

def exp_function(args,**kwargs): #后面的形参名为args,**后面的形参名为kwargs,为约定俗成
print(args)
print(kwargs)
exp_function(1,1,2,2,3,4,5,6,x='a',y='b',z='c') #其中没有特地给变量名的实参为位置实参,指定变量名的实参为关键字实参
'''
(1, 1, 2, 2, 3, 4, 5, 6)
{'x': 'a', 'y': 'b', 'z': 'c'}
'''

可以看到位置实参的变量赋给了*args中并以元组的形式存储,关键字实参的变量赋给了**kwargs并以字典的形式存储。

同时数据也可以通过*传入函数形参之中

def exp_function(a,b,c,d,e):
print(a,b,c,d,e)
a = (1,2,3,4,5)
exp_function(a) #这样就使用了将值传入了形参,但是注意要与函数形参数量对应

http://www.wxhsa.cn/company.asp?id=3679

相关文章:

  • Java并发编程(3)
  • 斐波那契子序列
  • [豪の学习笔记] 软考中级备考 基础复习#10
  • 题解:CF2137D Replace with Occurrences
  • 题解:CF2137C Maximum Even Sum
  • 第02周 java预习
  • 编码规范
  • 深入解析:【译】Visual Studio 八月更新已发布 —— 更智能的人工智能、更出色的调试功能以及更多控制权
  • 命令模式在 TPL Dataflow 反馈回路管道中的应用及问题解决
  • Ubuntu 24.04 服务器调整MySQL 8.0.42 三节点集群(一主两从架构)安装部署配置教程
  • 使用almalinux基础镜像创建nginx镜像
  • docke容器版Nessus登录+破解+激活+特征库更新
  • 我把Cursor当磁盘清理工具用,非常棒! - ukyo-
  • vue项目
  • 第九篇:数据库服务克隆应用
  • Anti-Proxy Attendance 题解
  • 【2024-2025第二学期】助教工作总结
  • 开始每小时记录日程
  • 5【鸿蒙/OpenHarmony/NDK】使用Node-API进行异步任务开发
  • 控制器指令
  • 题解:AT_abc421_c [ABC421C] Alternated
  • MySQL数据库:SQL数据类型
  • Ubuntu 安装
  • 幼等数论
  • 搭建rocketmq的三主三从遇到的坑
  • 深入解析:轻松Linux-9.进程间通信
  • 2025.9.14——1黄1绿
  • Ubuntu 中改图片大小
  • Day01
  • 认识眼图和眼图的参数