[python] 函数基础

二 函数参数

2.1 必备参数(位置参数)

  • 含义: 传递和定义参数的顺序及个数必须一致
    格式: def func(a,b)
def func_1(id,passwd):print("id = ",id)print("passwd = ",passwd)
func_1(10086,123456)

2.2 默认参数

  • 函数: 为函数的参数提供一个默认值,如果调用时不传递就以默认的为主
    格式: 如果有位置参数,那么必须在默认参数之前
def func_2(id = 100001,passwd = '<PASSWORD>'):func_1(id,passwd)
func_2()

2.3 可变参数

  • 含义: 传入的值的数量是可以改变的,0-n个
    格式: def func(*args)
    接收: 是以元组的形式在函数内接受传递的参数的
def func_3(*args):print(args[0])
func_3('可变参数')

2.4 关键参数

  •  格式: def func(**kwargs)
    接受: 以字典的形式接受的形式
    传值: 需要采用  键 = 值
def func_4(**kwargs):print(kwargs)
func_4(id= "10001", passwd= "123456")

2.5 函数嵌套

  • 含义: 在一个函数里面调用另一个函数
func_2()

2.6 嵌套定义

  • 含义: 在一个函数里面定义另外一个函数
    注意: 不要在内层函数中调用外层循环,否则会陷入死循环
def out_func():print("调用外部函数")def in_func():print("调用内部函数")#in_func() # 如果这里不调用内部函数,外部调用out_func时,内部函数是不会被调用的
out_func()

三 作用域

  • 变量的有效范围分为: 全局变量和局部变量
    

3.1 全局变量

  • 函数外部定义的变量,在整个文件中都是有效的。

3.2 局部变量

  • 含义: 函数内部定义的变量,只能在函数内部使用
    注意: 如果全部变量和局部变量命名一样,在函数内会使用函数内的局部变量。而全局变量不会被使用
num = 10
def func_1():num = {1,2,3}print(num)
func_1()
print(num)

3.3 global关键字

  • 用法1 :在函数内部修改全局变量的值,可以使用global关键字否则在函数内部修改的全局变量不会生效
  • 用法2: 在函数内部使用global声明全局变量,外部可以使用.
id = 10001
def func_2():global idid = 10003
func_2()
print(id)

3.4 nonloacl:关键字

  • 含义: 声明外层的局部变量,只能在嵌套函数中使用,在外部函数中先进行声明内部函数进行nonloacl声明
    注意: 只能在嵌套函数中对上一层函数进行修改
a = 10
def out_func():a = 5def in_func():nonlocal aa = 20print("内函数的值a = %d"%a)in_func()print("外函数的值a = %d" % a)
out_func()
匿名函数:
格式: 函数名 = lambda 形参 : 返回值(表达式)
调用: 结果 = 函数名(实参)
"""
add = lambda a,b: a+b # a,b就是形参
print(add(2,5))"""
lambda:
无参数:
"""
noargs_func = lambda :"无参lambda"
#必备参数
must_func = lambda a,b:a+b
#默认参数
default_func = lambda id,passwd = "123456":(id,passwd)
print(default_func(5))# 关键子参数
kwargs_func = lambda **kwargs:kwargs
print(kwargs_func(id = 1,passwd = 123))

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

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

相关文章

超大规模SoC后仿真流程与优化

在超大规模SoC设计中,是否需要进行全芯片后仿真(Full-Chip Post-layout Simulation)取决于多个因素,包括设计复杂度、项目风险、资源限制以及验证目标。以下是针对这一问题的系统性分析: 1. 全芯片后仿真的必要性 需要全芯片后仿真的场景 系统级交互验证: 跨模块信号交互…

深入理解 Docker 网络原理:构建高效、灵活的容器网络

在现代软件开发中&#xff0c;Docker 已经成为了容器化技术的代名词&#xff0c;广泛应用于开发、测试和生产环境。Docker 使得开发者能够将应用及其依赖打包成一个轻量级的容器&#xff0c;并通过 Docker 容器化技术来实现高效的部署与管理。 然而&#xff0c;在日常使用 Dock…

leetcode 242. Valid Anagram

题目描述 因为s和t仅仅包含小写字母&#xff0c;所以可以开一个26个元素的数组用来做哈希表。不过如果是unicode字符&#xff0c;那就用编程语言自带的哈希表。 class Solution { public:bool isAnagram(string s, string t) {int n s.size();if(s.size() ! t.size())return …

4、反应釜压力监控系统 - /自动化与控制组件/reaction-vessel-monitor

76个工业组件库示例汇总 反应釜压力监控组件 这是一个用于反应釜压力监控的自定义组件&#xff0c;专为化工厂反应釜压力监控设计。采用苹果工业风格界面&#xff0c;简洁优雅&#xff0c;功能实用&#xff0c;易于使用。 功能特点 实时压力可视化&#xff1a;直观展示反应…

系统思考助力富维东阳

刚刚完成了长春一家汽车零配件公司关于系统思考的项目&#xff01; 在开班仪式上&#xff0c;公司总经理深刻阐述了项目的背后意义&#xff0c;强调了系统思考与公司战略的紧密联系。这不仅是一次培训&#xff0c;更是一次关于“如何全方位看待问题”的深度对话。 在这个过程中…

Linux下的c/c++开发之操作Sqlite3数据库

libsqlite3-dev 介绍&#xff08;Linux 下的 SQLite3 C/C 开发包&#xff09; libsqlite3-dev 是一个开发包&#xff0c;在 Linux 环境下为使用 SQLite3 C API 进行开发的 C/C 程序员提供头文件&#xff08;如 sqlite3.h&#xff09;和静态库/动态库的链接信息&#xff08;如 …

【Prompt工程—文生图】案例大全

目录 一、人物绘图 二、卡通头像 三、风景图 四、logo设计图 五、动物形象图 六、室内设计图 七、动漫风格 八、二次元图 九、日常场景图 十、古风神化图 十一、游戏场景图 十二、电影大片质感 本文主要介绍了12种不同类型的文生图技巧&#xff0c;通过加入不同的图像…

GMRES算法处理多个右端项的Block与PseudoBlock变体

GMRES算法处理多个右端项的Block与PseudoBlock变体 Block与PseudoBlock GMRES简介 在处理多个右端项的线性方程组时&#xff0c;Block GMRES和PseudoBlock GMRES是两种常用的变体算法&#xff1a; Block GMRES&#xff1a;同时处理所有右端项&#xff0c;构建一个大的Krylov…

Ubuntu环境下如何管理系统中的用户:创建用户、删除用户、修改密码、切换用户、用户组管理

管理用户的操作需要root权限&#xff0c;在执行命令时需要加sudo&#xff0c;关于sudo命令可以看这篇&#xff1a;Linux_sudo命令的使用与机制 1、添加用户 使用命令&#xff1a; adduser 用户名&#xff0c;主要是按提示输入密码和用户信息&#xff08;可直接回车使用默认配置…

开源BI选型及DataEase搭建

工具名称 国家/社区技术栈核心功能国内适用性国外适用性推荐场景Apache Superset美国&#xff08;Apache&#xff09;Python/React可视化、SQL Lab、多数据源、插件扩展需自行汉化&#xff0c;社区支持较少生态完善&#xff0c;云原生支持好&#xff08;AWS/GCP&#xff09;中大…

云计算-容器云-部署jumpserver 版本1

部署jumpserver [root@jumpserver ~]# tar -zxvf jumpserver.tar.gz -C /opt/ [root@jumpserver ~]# ls /opt/ compose config docker docker.service images jumpserver-repo static.env将默认Yum源移至其他目录,创建本地Yum源文件,命令及文件内容如下: [root@jumpserver…

利用Elixir中的原子特性 + 错误消息泄露 -- Atom Bomb

题目信息: This new atom bomb early warning system is quite strange… 题目使用 elixir 语言 一开始,我们会访问 /page.html <!DOCTYPE html> <!-- 设定文档语言为英语 --> <html lang"en"> <head><!-- 设定字符编码为UTF-8 --><…

Spring MVC设计与实现

DispatcherServlet的初始化与请求处理流程 初始化阶段 Servlet 生命周期触发&#xff1a;当 Web 容器&#xff08;如 Tomcat&#xff09;启动时&#xff0c;根据注解/配置&#xff0c;DispatcherServlet 的 init() 方法被调用。 初始化 WebApplicationContext 根 WebApplicat…

64.微服务保姆教程 (七) RocketMQ--分布式消息中间件

RocketMQ–分布式消息中间件 一、MQ 1、什么是MQ MQ(Message Queue)消息队列,是基础数据结构中“先进先出”的一种数据结构。指把要传输的数据(消息)放在队列中,用队列机制来实现消息传递——生产者产生消息并把消息放入队列,然后由消费者去处理。消费者可以到指定队…

java算法的核心思想及考察的解题思路

一、Java算法的核心思想 1. 分而治之 (Divide and Conquer) 将大问题分解为小问题&#xff0c;递归解决小问题后合并结果 典型应用&#xff1a;归并排序、快速排序、二分查找 2. 动态规划 (Dynamic Programming) 将问题分解为重叠子问题&#xff0c;存储子问题的解避免重复…

linux查java进程CPU高的原因

问题&#xff1a;linux查java进程CPU高的原因 解决&#xff1a;用jdk带的工具分析 被查的java最好也使用jdk启动 systemctl启动的注意要去掉PrivateTmptrue /opt/jdk1.8.0_441/bin/jps -l top -Hp 8156 printf "%x" 8533 /opt/jdk1.8.0_441/bin/jstack 8156 |…

体育培训的实验室管理痛点 质检LIMS如何重构体育检测价值链

在竞技体育与全民健身并行的时代背景下&#xff0c;体育培训机构正面临双重挑战&#xff1a;既要通过科学训练提升学员竞技水平&#xff0c;又需严格把控运动安全风险。作为实验室数字化管理的核心工具&#xff0c;质检LIMS系统凭借其标准化流程管控与智能化数据分析能力&#…

linux下MySql的安装与配置

一键三联&#xff0c;把mysql的安装与配置也写了&#xff0c;供各位参考。 --------------------------------------MySql的安装与配置-------------------------------------- 1 将下载的 压缩包解压到指定目录 tar -zxvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz 卸载…

数据库原理与应用实验二 题目七

利用sql建立教材数据库,并定义以下基本表: 学生(学号,年龄,性别,系名) 教材(编号,书名,出版社编号,价格) 订购(学号,书号,数量) 出版社(编号,名称,地址) 1定义主码、外码、和价格、数量的取值范围。 2 在三个表中输入若干记录,注意如果输入违反完整…

什么是 HSQLDB?

大家好&#xff0c;这里是架构资源栈&#xff01;点击上方关注&#xff0c;添加“星标”&#xff0c;一起学习大厂前沿架构&#xff01; Java开发人员学习Java数据库连接&#xff08;JDBC&#xff09;的最简单方法是试验HyperSQL数据库&#xff08;又名HSQLDB&#xff09;。 …