python分支结构的花样玩法(二)

除了上述的基本用法,还可以使用更复杂的条件表达式,包括使用 not 和 or 来组合条件,以及使用 in 和 not in 来检查元素是否在(或不在)某个集合中。

例如:

pythonif not condition1 or not condition2:
# do something if condition1 is False or condition2 is False

或者:

pythonif x in {1, 2, 3}:
# do something if x is 1, 2, or 3
pythonif x not in {1, 2, 3}:
# do something if x is not 1, 2, or 3

此外,Python 还提供了 switch-case 结构,可以用于替代传统的 if-elif-else 结构。尽管 Python 没有直接的 switch-case 语句,但你可以使用字典(dict)和函数(function)来模拟这个结构。

例如:

pythondef func_for_value(value):
return {
'a': lambda: print('a was called'),
'b': lambda: print('b was called'),
'c': lambda: print('c was called'),
}[value]()func_for_value('a') # prints: 'a was called'

在上述代码中,我们创建了一个字典,其键是字符串 'a'、'b' 和 'c',值是对应的函数。然后我们使用字典的 get 方法来获取对应的函数,并执行它。这可以模拟 switch-case 结构的效果。

此外,Python 还提供了一种特殊的方式来处理不确定数量的参数,这就是使用 *args 和 **kwargs。

*args 用于传递不确定数量的位置参数,而 **kwargs 用于传递不确定数量的关键字参数。

例如:

pythondef my_func(*args, **kwargs):
for arg in args:
print(arg)
for key, value in kwargs.items():
print(key, value)my_func('a', 'b', 'c', x=1, y=2)

输出:

cssa
b
c
x 1
y 2

在上述代码中,*args 会把所有传递给函数的参数收集到一个元组中,而 **kwargs 会把所有传递给函数的参数收集到一个字典中。这样,我们就可以处理不确定数量的参数了。

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

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

相关文章

Nginx 学习(五)Tomcat 服务器

1 案例1:安装部署Tomcat服务器 1.1 问题 本案例要求部署Tomcat服务器,具体要求如下: 安装部署JDK基础环境安装部署Tomcat服务器创建JSP测试页面 然后客户机访问此Web服务器验证效果: 使用火狐浏览器访问Tomcat服务器的8080端…

Web存储

目录 什么是 HTML5 Web 存储? 方法 cookie webStorage 会话存储 sessionStorage 本地存储localStorage 什么是 HTML5 Web 存储? 使用HTML5可以在本地存储用户的浏览数据。 早些时候,本地存储使用的是 cookie。但是Web 存储需要更加的安全与快速. 这些数据不会被保存在服…

下单时如何保证数据一致性?

原创 哪吒 哪吒编程 2023-09-07 08:03 发表于辽宁 收录于合集#Redis11个 (给哪吒编程加星标,提高Java技能) 大家好,我是哪吒。 在前几篇文章中,提到了Redis实现排行榜、Redis数据缓存策略,让我们对Redis…

Golang 获取本地 IP 地址方法

在 Golang 中,使用 net 包可以很方便地获取到本机IP地址。 借助 net.InterfaceAddrs 方法 简单示例代码如下: package mainimport ("fmt""net" )func main() {addrList, err : net.InterfaceAddrs()if err ! nil {panic(err)}for…

VSCode学习笔记一:添加代码模板

一目了然 1 简述2 设置模板3 Global Snippets file示例 1 简述 问:为什么要设置代码模板? 答:编程语言是有个性的,不同语言的演讲风格是不一样的。 旁白:我不懂?! 问:为什么要设置…

OpenPose

OpenPose Doc - Installation - Prerequisites

qt作业day4

//clock_exercise.cpp#include "clock_timer.h" #include "ui_clock_timer.h"//时间事件处理函数 void Clock_Timer::timerEvent(QTimerEvent *event) {if(event->timerId() time_id){sys_tm QDateTime :: currentDateTime(); // int year sy…

【c++】如何有效地利用命名空间?

​ 🌱博客主页:青竹雾色间 😘博客制作不易欢迎各位👍点赞⭐收藏➕关注 ​✨人生如寄,多忧何为 ✨ 目录 前言什么是命名空间?命名空间的语法命名空间的使用避免命名冲突命名空间的嵌套总结 前言 当谈到C编…

直播APP源码搭建:核心的服务器系统

在现代科技的推动下,网络衍生出了各种各样的技术,每个技术都被应用到需要的APP上,直播APP源码搭建出来的APP就是其中的一个,然而,这些技术能够成功的在直播APP源码搭建的APP中稳定的为用户们提供功能与服务&#xff0c…

芯科蓝牙BG27开发笔记-新建示例工程

此笔记的必要性 芯科的官方资料很丰富,并且ssv5中能方便索引到所需文档,不过大而全的问题就是找不到合适的切入点,更不会有本地化比较好的中文的系统的教程了。往往看到一个starting guide,会延伸其他starting guide,…

【Linux】Epoll Reactor【反应堆】模式的工作流程

Reactor模式的工作流程 主线程往epoll内核事件表中注册socket上的就绪事件。主线程调用epoll_wait等待socket上有数据可读。当socket上有数据可读时,epoll_wait通知主线程。主线程将socket可读事件放入请求队列。睡眠在请求队列上的某个工作线程被唤醒,…

ubuntu设置sudo免密

前提:有root权限 本质是修改/etc/sudoers 文件,但直接编辑这个文件容易改错造成系统异常,因此一般使用sudo visudo命令修改,这个命令保存时会检查文件格式,该命令会使用默认文本编辑器把/etc/sudoers 读到一个临时文件…

2023数学建模国赛C题思路--蔬菜类商品的自动定价与补货决策

C 题 蔬菜类商品的自动定价与补货决策 在生鲜商超中,一般蔬菜类商品的保鲜期都比较短,且品相随销售时间的增加而变差, 大部分品种如当日未售出,隔日就无法再售。因此,商超通常会根据各商品的历史销售和需 求情况每天进…

Android MediaRecorder录音

1. 简介 在android中录制音频有两种方式,MediaRecorder和AudioRecord。两者的区别如下: MediaRecorder 简单方便,不需要理会中间录制过程,结束录制后可以直接得到音频文件进行播放;录制的音频文件是经过压缩的&#…

如何使用TensorFlow完成线性回归

线性回归是一种简单的预测模型,它试图通过线性关系来预测目标变量。在TensorFlow中,我们可以使用tf.GradientTape来跟踪我们的模型参数的梯度,然后用这个信息来优化我们的模型参数。 以下是一个简单的线性回归的例子: pythonimpo…

vulkan学习路径

1.学习路径 了解图形渲染基础知识: 学习计算机图形学基础概念,包括坐标系统、三角形渲染、光照模型等。可以参考经典的图形学教材,如《Real-Time Rendering》和《Computer Graphics: Principles and Practice》。了解图形API的发展历史&#…

用户多设备多账户同时在线场景、匿名用户行为同步到注册用户

随着移动设备的普及和社交媒体的发展,用户在多个设备上同时访问同一个应用成为了一种常见的现象。这些设备可能属于同一个用户,也可能属于不同的用户,而且有些用户可能没有注册账户,只是以匿名的方式访问应用。在这种多设备、多账户、匿名用户同时在线的场景下,如何保证数…

Docker从认识到实践再到底层原理(四-2)|Docker镜像仓库实战案例

前言 那么这里博主先安利一些干货满满的专栏了! 首先是博主的高质量博客的汇总,这个专栏里面的博客,都是博主最最用心写的一部分,干货满满,希望对大家有帮助。 高质量博客汇总 然后就是博主最近最花时间的一个专栏…

污水处理厂3D数字孪生三维可视系统降低设备风险隐患

当相对传统与保守的水务行业,与激进与开放的互联网发生碰撞之后,产生了最好的一个名词是:“智慧水务”,谈及智慧水务,自然免不了当下最具热度的技术“元宇宙”,水资源再生是我国追求高质量发展的新策略&…

软件测试/测试开发丨Selenium Web自动化多浏览器处理

点此获取更多相关资料 本文为霍格沃兹测试开发学社学员学习笔记分享 原文链接:https://ceshiren.com/t/topic/27185 一、多浏览器测试介绍 1.1、多浏览器测试背景 用户使用的浏览器(firefox,chrome,IE 等)web 应用应该能在任何浏览器上正常的工作,这样…