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

【Python】函数入门(上)

本篇文章将讲解以下知识:

(1)初识函数

(2)函数的参数

(3)函数的返回值

1、初识函数

什么是函数?
函数可以看成是一大堆功能代码的集合。

定义函数格式:

def      函数名():

         函数内编写代码

         .......

例如:

如何执行函数:函数名()。

代码示例:

函数名命名规则遵循变量命名规则。

什么时候回用到函数?

(1)有重复代码

(2)代码太长

2、函数的参数

(1)参数

在定义函数时,如果在函数括号中添加变量,我们称这些变量为函数的形式参数。

例如:

形式参数简称形参

执行参数时,传的值称为实际参数,简称实参。

按位置传参:

例如:

按关键字传参:

按关键字传参先后顺序还可以修改。

上面代码还可以写成:

按位置传参与按关键字传参可以混合使用:

代码示例:

注意事项:

当位置传参与关键字传参混合使用时,一定要确保位置传参在前面,关键字传参在后面。即:所有按位置传参的参数必须在所有按关键字传参的前面。一旦关键字传参在函数参数的第一个位置,那么后面的参数必须全是关键字传参。

(2)默认传参

例如:

def  func(a1,a2,a3=10):print(a1*a2*a3)

这个代码中a3就是默认参数。

1))位置传参

func(8,19,545)#a1=8,a2=19,a3=545
func(8,19,545)#a1=8,a2=19,a3=545

2))关键字传参

func(a1=8,a2=19)#a1=8,a2=19,a3=10
func(a1=8,a2=19,a3=12)#a1=8,a2=19,a3=12

3))关键字传参与位置传参混用

注意事项:

当位置传参与关键字传参混合使用时,一定要确保位置传参在前面,关键字传参在后面。即:所有按位置传参的参数必须在所有按关键字传参的前面。一旦关键字传参在函数参数的第一个位置,那么后面的参数必须全是关键字传参。

func(12,a2=19,a3=12)#a1=12,a2=19,a3=12

(3)动态参数

定义的函数不知道会需要几个参数,则要用到动态参数。

1))*

代码示例;

def    func(*args):print(args)

注意:

当只有一个*时,在执行函数并传参数时,只能按照位置传参。当只有一个*时,args是一个元组类型的数据。

代码示例:

2))**

代码示例:

def    func(**kwargs):print(kwargs)

注意:

在**中,只能按关键字传参。kwargs是一个字典类型的数据。

代码示例:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Mac安装完maven,报zsh: command not found: mvn解决
  • ArcGIS简单介绍
  • 【屏驱MCU】系列文章合集
  • xssnote
  • 【微信小程序】网络数据请求
  • Spring由哪些模块组成?
  • 【已解决】tokenizer.chat_template is not set and no template argument was passed
  • dockers 阿里云镜像失效后如何配置,可视化操作
  • Linux如何查看服务启动状态是否开机自动启动
  • STM32(二):GPIO
  • 数据结构:线性结构之顺序表、链表篇
  • 零成本 API 服务搭建,用 GitHub Actions 自动爬取文章?
  • mac如何恢复被同名替换掉的文件夹 mac文件被替换如何恢复
  • 【Hadoop】建立圈内组件的宏观认识
  • PostgreSQL的 log_min_messages 和 log_min_error_statement 参数
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • 【5+】跨webview多页面 触发事件(二)
  • 【划重点】MySQL技术内幕:InnoDB存储引擎
  • Apache Zeppelin在Apache Trafodion上的可视化
  • emacs初体验
  • GraphQL学习过程应该是这样的
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • js数组之filter
  • Redis字符串类型内部编码剖析
  • uva 10370 Above Average
  • windows下使用nginx调试简介
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 给新手的新浪微博 SDK 集成教程【一】
  • 聊聊sentinel的DegradeSlot
  • 码农张的Bug人生 - 初来乍到
  • 前端_面试
  • 少走弯路,给Java 1~5 年程序员的建议
  • NLPIR智能语义技术让大数据挖掘更简单
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​浅谈 Linux 中的 core dump 分析方法
  • (2)空速传感器
  • (33)STM32——485实验笔记
  • (Python) SOAP Web Service (HTTP POST)
  • (Redis使用系列) Springboot 使用redis实现接口幂等性拦截 十一
  • (ros//EnvironmentVariables)ros环境变量
  • (附源码)计算机毕业设计SSM基于java的云顶博客系统
  • (三)模仿学习-Action数据的模仿
  • (十六)视图变换 正交投影 透视投影
  • (十三)MipMap
  • (使用vite搭建vue3项目(vite + vue3 + vue router + pinia + element plus))
  • (转)Scala的“=”符号简介
  • (转)关于pipe()的详细解析
  • ./configure,make,make install的作用
  • .form文件_SSM框架文件上传篇
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .stream().map与.stream().flatMap的使用
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ vulhub漏洞复现篇 ] Django SQL注入漏洞复现 CVE-2021-35042
  • [AHK V2]鼠标悬停展开窗口,鼠标离开折叠窗口
  • [Algorithm][综合训练][体育课测验(二)][合唱队形][宵暗的妖怪]详细讲解