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

Python函数基础:简介,函数的定义,函数的调用和传入参数,函数的返回值

目录

函数简介

函数定义,调用,传入参数,返回值

函数的定义

函数的调用和传入参数

函数的返回值


函数简介

函数简介:函数是组织好,可重复使用,用来实现特定功能(特定需求)的代码段,在需要使用该功能的时候,进行调用。

使用函数的好处:对代码进行封装,减少重复性代码,提高程序复用性和开发效率。

比如:input(),print(),str(),len(),int()等..都是Python的内置函数。

注意:

  1. 函数定义不会执行函数中的代码,调用了该函数,才会执行函数中的代码
  2. 调用函数后,会进入函数内部执行代码,函数中代码是从上至下执行的
  3. 函数中的代码执行结束后,会回到调用的地方,继续向下执行
  4. 函数的参数和返回值,都不是必须的(依情况而定)

示例如下:

"""函数

"""# 需求:使用自定义的函数来统计字符串的长度(即不使用len()内置函数)def my_len(data):count = 0for i in data:count += 1print(f"字符串{data}的长度是{count}")my_len("Hello World")my_len("content")

运行

函数定义,调用,传入参数,返回值

函数的定义

函数的定义语法:

 
 
def 函数名(传入参数):函数体return 返回值
 
 

注意:

  1. 参数如不需要,可以省略;
  2. 返回值如不需要,可以省略;
  3. 函数必须先定义后使用;
  4. 函数体中,return后的语句不会执行。

函数的调用和传入参数

函数的调用:

函数名(参数)

函数的传入参数的使用:即接受外部调用时提供的数据。

注意:

  1. 在函数声明时,定义的参数被称为形参;
  2. 在函数调用时,传入的参数被称为实参;
  3. 函数的传入参数是不受限的(可不使用参数,也可使用N个参数)。

示例如下:

import random"""定义一个函数,用于计算薪资,薪资由等级(1~5)(随机)和工龄(1~30)(随机)而定基础薪资4000,总薪资=基础薪资+等级*0.2*500+工龄*100计算10名员工的总薪资

"""# 计算总薪资def salary(level, work_age):salary_num = 4000 + level * 0.2 * 500 + work_age * 100return salary_numfor i in range(1, 11):x = random.randint(1, 5)y = random.randint(1, 30)print(f"{i}名员工的总薪资为:{salary(x, y)}")

运行

函数的返回值

函数返回值:函数完成任务后,最后返回给调用者的结果。

注意:如果没有使用return返回数据,函数仍有返回值(返回了None字面量,其类型是:<class ‘NoneType’>,None即空,表示函数没有返回有意义的内容)

return关键字(只能用在函数中),作用有:

  1. 函数的返回值(将数据返回到调用的地方)
  2. 结束函数的执行(函数代码遇到return,会结束函数执行,回到调用位置,继续向下执行)

None的用法:

  1. 用在函数的返回值上
  2. 用在if判断上(在if判断中,None等同于假,即False;一般用于在函数中主动返回None,配合if判断做相关处理)
  3. 用在声明无内容的变量上(定义变量,但暂时不需要变量有具体值,可用None代替)

示例1如下:

# 用在函数的返回值上def add(x, y):result = x + yprint("用在函数的返回值上 ", add(1, 1), type(add(1, 2)))

运行

示例2如下:

# 用在if判断上def check_age(age):if age > 18:return "成年了!!"result = check_age(14)if not result:print("未成年!!")

运行

示例3如下:

# 用于变量定义,用于声明无初始内容的变量name = None

相关文章:

  • C语言学习之调试
  • 测试基础笔记第十三天
  • 第八部分:缓解 RAG 中的幻觉
  • 6.2 内容生成与营销:个性化内容创作与营销策略优化
  • 常见cmd命令
  • 3.1/Q1,Charls最新文章解读
  • Buffer Pool是什么,有什么作用
  • priority_queue的学习
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第四模块·Java特性专精 —— 第十四章 集合框架:告别手写链表的苦役
  • Eigen迭代求解器类
  • 对卡尔曼滤波的理解和简单示例实现
  • 服务器虚拟化:技术解析与实践指南
  • 2025蓝桥省赛c++B组第二场题解
  • python 与Redis操作整理
  • Android HAL HIDL
  • matplotlib画图工具使用(1) 画折线统计图python代码
  • 推论阶梯——AI与思维模型【81】
  • 【SpringBoot】WebConfig 跨域配置详细说明
  • 「蛮荒桌面下载」蛮荒桌面美化版 官方免费下载安卓电视版安装
  • java每日精进 4.26【多租户之过滤器及请求处理流程】
  • 韩国京畿道骊州市市长率团访问菏泽:想和菏泽一起办牡丹节
  • 国家市监总局:民生无小事,严打民生领域侵权假冒违法行为
  • 《2025职场人阅读报告》:超半数会因AI改变阅读方向
  • 大家聊中国式现代化|郑崇选:提升文化软实力,打造文化自信自强的上海样本
  • 印度加大应对力度,吊销所有巴基斯坦公民签证
  • 中国海警登临铁线礁开展维权行动并展示五星红旗