Python3 match-case 语句
前言
本文主要介绍match-case语句与switch-case的区别,及match-case语句的基本用法。
文章目录
- 前言
- 一、switch-case 和match-case的区别
- 二、match-case的基本用法
- 1、可匹配的数据类型
- 2、多条件匹配
- 3、通配符匹配
一、switch-case 和match-case的区别
C语言里面switch-case所匹配的变量类型只能是整数型或者字符型,而Python里的match-case数据类型(对象类型)丰富多彩,可以是整数、浮点数、字符串、元组、列表、字典。
C语言中一个典型的swicht-case语句像下面这样,在switch里包含要判断的变量x,case语句后则是匹配变量值是多少,如果满足这个匹配条件,就执行“case n:”后面的语句,直到遇到break退出swith语句。
#include <stdio.h>int main() {int x;printf("输入数值: ");scanf("%d", &x);switch(x) {case 1:printf("星期一\n");break;case 2:printf("星期二\n");break;case 3:printf("星期三\n");break;case 4:printf("星期四\n");break;case 5:printf("星期五\n");break;case 6:printf("星期六\n");break;case 7:printf("星期天\n");break;default:printf("输入错误\n");break;}return 0;
}
输出结果:
4 星期一
在Python3.10里面类似的功能可以用match-case语句实现:
x = int(input("输入数值: "))
match x:case 1:print('星期一')case 2:print('星期二')case 3:print('星期三')case 4:print('星期四')case 5:print('星期五')case 6:print('星期六') case 7:print('星期天') case _:print("输入错误")
输出结果:
输入数值: 1 #这里是每次输入只能输出一个结果,为了排版写在了一起
星期一
输入数值: 7
星期天
输入数值: 10
输入错误
match类似C语言的switch关键字,后面跟要匹配的变量;case跟各种不同的条件,其后面是满足某一条件要执行的语句;每个case语句结束时不需要break语句。
最后一个case加下划线表示缺省匹配,如果前面的条件没有匹配上就跑到这个case里面执行,类似于C语言的default,缺省匹配不可以放置在其他case语句前,否则会报SyntaxError错误: wildcard makes remaining patterns unreachable。当然缺省匹配并不是必须的,加一个缺省匹配可以让程序运行的结果更有可读性。
二、match-case的基本用法
1、可匹配的数据类型
1)匹配对象类型为字符串类型
不像C语言里面switch所匹配的变量类型只能是整数型或者字符型,Python里的匹配对象类型可以用字符串类型:
x = input("输入英文简写: ")
match x:case 'mon':print('星期一')case 'tue':print('星期二')case 'wed':print('星期三')case 'thur':print('星期四')case 'fri':print('星期五')case 'sat':print('星期六')case 'sun':print('星期天')case _:print("输入错误")
输出结果:
输入英文简写: sun #这里是每次输入只能输出一个结果,为了排版写在了一起
星期天
输入英文简写: none
输入错误
2)匹配对象类型为浮点型
如果一定要用浮点型来做匹配那也是可以的,下面这个例子中要匹配的变量x为整型,case后的值为整型或浮点型:
x = int(input("输入数值: "))
match x:case 1:print('星期一')case 2:print('星期二')case 3.0:print('星期三')case 4.0:print('星期四')case 5.0:print('星期五')case 6.0:print('星期六')case 7.0:print('星期天')case _:print("输入错误")
输出结果:
输入数值: 1 #这里是每次输入只能输出一个结果,为了排版写在了一起
星期一
输入数值: 3
星期三
输入数值: 9
输入错误
还可以这样,要匹配的变量x为浮点型,case后的值为整数型或浮点型:
x = float(input("输入数值: "))
match x:case 1:print('星期一')case 2:print('星期二')case 3:print('星期三')case 4:print('星期四')case 5.5:print('星期五')case 6:print('星期六')case 7.0:print('星期天')case _:print("输入错误")
输出结果:
输入数值: 1 #这里是每次输入只能输出一个结果,为了排版写在了一起
星期一
输入数值: 1.0
星期一
输入数值: 5 #要匹配的变量为5.5才是星期五,这里的5匹配到了缺省匹配,所以是输入错误
输入错误
输入数值: 5.5
星期五
输入数值: 7.2
输入错误
从上面的例子可以看出些端倪,match后的变量类型和case后的类型并不一定要相同。
3)概括:匹配类型为可以是整数、浮点数、字符串、元组、列表、字典
下面设计的这个实验就是通过输入不同的数值模拟函数返回不同的数据类型,让match后的变量类型都不一样,在case里如果有一种能匹配上就输出相应的打印:
def func():x = int(input("输入数值: "))if x==1:return 1.0elif x==2:return '2'elif x==3:return (3,0,1)elif x==4:return [4,0,0]elif x==5:return {'5':'k','A':1}elif x==6:return 6elif x==7:return set((7,))else:return xx=func()
print(type(x))
match x:case 1.0:print('星期一')case '2':print('星期二')case (3,0,1):print('星期三')case [4,0,0]:print('星期四')case {'5':'k','A':1}:print('星期五')case 6:print('星期六')case set((7,)):print('星期天')
输出结果:
输入数值: 0 #这里是每次输入只能输出一个结果,为了排版写在了一起
<class 'int'>
输入错误
输入数值: 1
<class 'float'>
星期一
输入数值: 2
<class 'str'>
星期二
输入数值: 3
<class 'tuple'>
星期三
输入数值: 4
<class 'list'>
星期四
输入数值: 5
<class 'dict'>
星期五
输入数值: 6
<class 'int'>
星期六
输入数值: 7
<class 'set'>
输入错误
从上面的例子可以看到,Python里的match-case数据类型(对象类型)丰富多彩,可以是整数、浮点数、字符串、元组、列表、字典,但是对于set类型即使看起来值是一样的,却没有匹配成功。
2、多条件匹配
我们知道在C语言里面如果要匹配多条件,可以将case语句并列书写且其后面不带break语句,比如下面这个例子输入15匹配工作日,输入67匹配周末:我们知道在C语言里面如果要匹配多条件,可以将case语句并列书写且其后面不带break语句,比如下面这个例子输入1~ 5匹配工作日,输入6~ 7匹配周末:
switch(x){case 1: case 2: case 3:case 4:case 5: printf("工作日\n"); break;case 6: case 7: printf("周末\n"); break;default:printf("输入错误\n"); break;}
当x为1,2,3,4,5中任何一个时都能匹配上printf(“工作日\n”),从而实现多条件的匹配。
我们来看下Python里是不是也可以这么实现多条件的匹配:
x = int(input("输入数值: "))
match x:
case 1:
case 2:
case 3:
case 4:
case 5:print('工作日')
case 6:
case 7:print('周末')
case _:print("输入错误")
输出结果:
File "D:\pythonCode\main.py", line 5case 2:^
IndentationError: expected an indented block after 'case' statement on line 4Process finished with exit code 1
不好意思,提示IndentationError错误啦,在Python里是不可以这么写的!
Python的match-case语句要用逻辑或符号(|)表示多条件的匹配,case condition1 | condition2 | condition3 |……:
x = int(input("输入数值: "))
match x:case 1 | 2 | 3 | 4 | 5:print('工作日')case 6 | 7:print('周末')case _:print("输入错误")
输出结果:
输入数值: 1 #这里是每次输入只能输出一个结果,为了排版写在了一起
工作日
输入数值: 5
工作日
输入数值: 6
周末
输入数值: 7
周末
输入数值: 8
输入错误
注意不要使用or代替逻辑或符号,否则会提示SyntaxError错误:
File "D:\pythonCode\main.py", line 3case 1 or 2 or 3 or 4 or 5:^^
SyntaxError: invalid syntaxProcess finished with exit code 1
3、通配符匹配
1)匹配对象为单星号通配符
match-case语句还支持通配符匹配,可以使用类似于match x:case [cond1,cond2,.……,*rem]的通配符匹配,只要列表或者元组的前几个元素的值和顺序满足cond1,cond2,.……,,剩余的元素不管有多少个,都能达到匹配条件,并且rem表示剩余的元素组成的列表。这里的条件不一定像cond1,cond2,……这样有多个,也可以只有一个cond1。下面这个例子输入不同的值返回不同长度的列表,匹配条件为[1,*rem]只要被匹配对象第0个元素为1就能匹配上:
def func():x = int(input("输入数值: "))if x==0: return [0,1]elif x==1: return [1]elif x==2: return [1,2]elif x==3: return [1,2,3]else: return None
x=func()
print('x:',x)
match x:case [1,*rem]:print('rem:',rem) case _:print("未匹配")
输出结果:
输入数值: 0 #这里是每次输入只能输出一个结果,为了排版写在了一起
x: [0, 1]
未匹配 ###### x的第0个元素为0,不符合匹配条件中第0个元素为1的要求输入数值: 1
x: [1]
rem: [] ###### x的第0个元素为1,满足匹配条件,因为只有1个元素,所以rem为空
输入数值: 2
x: [1, 2]
rem: [2] ###### x的第0个元素为1,满足匹配条件,rem为剩余的元素组成的列表
输入数值: 3
x: [1, 2, 3]
rem: [2, 3]
输入数值: 5
x: None
未匹配 ###### x值为None,不能匹配
tuple也可以用通配符匹配,我们将上面的例子x改成tuple类型,case匹配对象也是tuple类型,其他的条件不变,可以看到匹配的方式和list类型是一样的,但是需要注意的是如果能匹配上,rem得到的仍然是一个list类型而不是tuple类型:
def func():x = int(input("输入数值: "))if x==0: return (0,1)elif x==1: return (1,)elif x==2: return (1,2)elif x==3: return (1,2,3)else: return None
x=func()
print('x:',x)
match x:case (1,*rem):print(type(rem),'rem:',rem) case _:print("未匹配")
输出结果:
输入数值: 3 #这里是每次输入只能输出一个结果,为了排版写在了一起
x: (1, 2, 3)
<class 'list'> rem: [2, 3] ###虽然匹配对象为tuple,rem得到的仍然是list
输入数值: 1
x: (1,)
<class 'list'> rem: []
2)匹配对象为双星通配符
双星号通配符可以用于字典的部分键-值匹配,比如下面这个例子中,case匹配的对象只要有一对键-值为 {2: “星期二”} 就能匹配上,并且可以得到rem的值为剩余的键-值。
def func():x = int(input("输入数值: "))if x==0: return {1: "星期一"}elif x==1: return {2: "星期二"}elif x==2: return {1: "星期一", 2: "星期二"}elif x==3: return {1: "星期一", 2: "星期二",3:'星期三'}else: return None
x=func()
print('x:',x)
match x:case {2: "星期二", **rem}:print('rem:',rem)case _:print('未匹配')
输出结果:
输入数值: 0 #这里是每次输入只能输出一个结果,为了排版写在了一起
x: {1: '星期一'}
未匹配 ######没有包含{2: "星期二"},所以没有匹配上
输入数值: 1
x: {2: '星期二'}
rem: {} #####能匹配上,且rem为一个空字典{}
输入数值: 2
x: {1: '星期一', 2: '星期二'}
rem: {1: '星期一'} ##### 去除其中的键-值{2: "星期二"}剩余的键-值{1: '星期一'}赋给了rem
输入数值: 3
x: {1: '星期一', 2: '星期二', 3: '星期三'}
rem: {1: '星期一', 3: '星期三'}
输入数值: 10
x: None
未匹配 ##### x值为None,不能匹配
相关文章:
Python3 match-case 语句
前言 本文主要介绍match-case语句与switch-case的区别,及match-case语句的基本用法。 文章目录 前言一、switch-case 和match-case的区别二、match-case的基本用法1、可匹配的数据类型2、多条件匹配3、通配符匹配 一、switch-case 和match-case的区别 C语言里面s…...
图论第三天
似乎要团建了,我再猫会。我必须参与上团建再走。 130.被围绕的区域 先把外围的O变成A,再把飞地的O变成X,再把外围A变回O class Solution { public:int neighbor[4][2] {1,0,0,-1,-1,0,0,1};void solve(vector<vector<char>>&a…...
计算机网络学习2
文章目录 信道复用技术 第三章数据链路层概述数据链路层的三个重要问题封装成帧和透明传输差错检测可靠传输的相关基本概念可靠传输的实现机制停止等待协议回退N帧协议选择重传协议 点对点协议PPP共享式以太网网络适配器和MAC地址CSMA_CD协议的基本原理共享式以太网的争用期共享…...
unittest框架
目录 框架: unittest框架: 使用的原因: 核心要素(组成): TestCase测试用例: 可能出现的错误: TestSuite(测试套件): TestRunner(测试执行): 整体步骤: 查看执行结果: TestLoader测试加载: 方法级别Fixture: 类级别Fixture: 模块级别Fixture: 用例脚本…...
Python中的__str__和__repr__:揭示字符串表示的奥秘
标题:Python中的__str__和__repr__:揭示字符串表示的奥秘 摘要 在Python中,对象的字符串表示对于调试和日志记录至关重要。__str__和__repr__是两个特殊的方法,用于定义对象的字符串表示形式。尽管它们在功能上相似,…...
gazebo插入一个图片
在下面的目录下添加文件夹 my_ground_plane 文件夹内容如下 model.sdf <?xml version"1.0" encoding"UTF-8"?> <sdf version"1.4"><model name"my_ground_plane"><static>true</static><link na…...
(已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
Modals是Bootstrap中用户弹框用的组件,使用时不需要额外引入其他插件,在引入了boostrap.js或者boostrap.min.js前提下就可以使用。 官方的示例: <!-- Button trigger modal --> <button type="button" class="btn btn-primary" data-bs-…...
网络编程介绍(IP)(一)
定义:可以让设备中的程序与网络上其他设备中的程序进行数据交互(实现网络通信的)。 java.net.*包下提供了网络编程的解决方案。 基本的通信架构: CS架构( Client客户端/Server服务端 ): Clie…...
C语言 指针——函数指针
目录 什么是函数指针? 函数指针的定义 定义函数指针时的常见错误 函数指针有什么用? 函数指针的主要应用 什么是函数指针? 函数指针 (Function Pointer) 就是指向函数的指针变量 数据类型 ( * 指针变量名 ) ( 形参列表 ); 例如&#x…...
【C++】———list容器
前言 1.list容器简单来说其实就是之前的链表结构。 2.这里的list用的是双向带头结点的循环链表。 目录 前言 一 构造函数 1.1 list (); 1.2 list (size_type n, const value_type& val value_type() ); 1.3 list (InputIterator first, InputIterator last…...
【网络安全技术】——期末复习(冲刺篇)
📖 前言:快考试了,做篇期末总结,都是重点与必考点。 题型:材料分析题、简答题、看图分析题 课本: 目录 🕒 1. 计算机网络安全概述🕘 1.1 安全目标🕘 1.2 常见的网络安全…...
Python中Web开发-Django框架
大家好,本文将带领大家进入 Django 的世界,探索其强大的功能和灵活的开发模式。我们将从基础概念开始,逐步深入,了解 Django 如何帮助开发人员快速构建现代化的 Web 应用,并探讨一些最佳实践和高级技术。无论是初学者还…...
1882java密室逃脱管理系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java密室逃脱管理系统 是一套完善的web设计系统,对理解JSP java编程开发语言有帮助采用了java设计,系统具有完整的源代码和数据库,系统采用web模式,系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&…...
LeetCode 两两交换链表中的节点
原题链接24. 两两交换链表中的节点 - 力扣(LeetCode) 思路,请看图片的过程模拟,这里添加了一个哨兵节点0,目的是为了方便操作,得到指向1节点的指针。 class Solution {public:ListNode* swapPairs(ListNod…...
STM32作业实现(五)温湿度传感器dht11
目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...
java mybatis处理大数据量,开启和配置二级缓存,及注意事项,已解决
注意事项: 尽量避免使用下面方式写sql否则会降低服务器性能: mybatis二级缓存开启后,避免使用事务注解(加上事务注解后二级缓存数据会导致两次访问不一致问题): 3. 返回的对象实体类,要实现Se…...
在 LLM 架构中应用多专家模型
本文转载自:在 LLM 架构中应用多专家模型 2024年 3月 14日 By Kyle Kranen and Vinh Nguyen https://developer.nvidia.cn/zh-cn/blog/applying-mixture-of-experts-in-llm-architectures/ 文章目录 一、概述二、LLM 架构领域的专家齐聚一堂1、模型容量2、MoE 在降低…...
C语言编程代码软件:深入探索与实战应用
C语言编程代码软件:深入探索与实战应用 在编程的广袤领域中,C语言以其独特的魅力吸引着无数编程爱好者。作为一种基础且强大的编程语言,C语言在软件开发、系统编程、嵌入式系统等领域发挥着不可替代的作用。而要想熟练掌握C语言,…...
【AIGC半月报】AIGC大模型启元:2024.06(上)
AIGC大模型启元:2024.06(上) (1) ChatTTS(语音合成项目) (1) ChatTTS(语音合成项目) 2024.06.01 ChatTTS 文本转语音项目爆火出圈,引来大家极大的关注。短短三天时间,在…...
两款 IntelliJ IDEA 的 AI 编程插件
介绍两款 IntelliJ IDEA 的 AI 编程插件:通义灵码和 CodeGeeX。 通义灵码 这是由阿里推出的一个基于通义大模型的 AI 编码助手。 它提供了代码智能生成、研发智能问答等功能。通义灵码经过海量优秀开源代码数据训练,可以根据当前代码文件及跨文件的上下…...
语义化版本控制:软件工程的实用之道
语义化版本控制:软件工程的实用之道 在软件开发过程中,版本控制是确保项目稳定、有序进行的关键环节。随着项目的发展,功能的增加、错误的修复以及API的修改变得日益频繁。为了有效管理这些变化,并确保团队成员、用户以及依赖该软…...
Java设计模式总结
《武林外传》老白曾经说过这样一句话。高手就是手里无刀,心中也无刀。 类似于设计模式,你不知不觉中已经融进你的代码中了,但你并不知已经运用了。下面我总结几个我觉得比较常用的设计模式。 1:设计模式分类 总体来说设计模式分为…...
小米路由器如何设置去广告功能,如何设置小米路由器的自定义Hosts(小米路由器如何去除小米广告、去除小米电视盒子开屏广告、视频广告)
文章目录 📖 介绍 📖🏡 演示环境 🏡📒 实现方案 📒📝 操作步骤📝 注意事项⚓️ 相关链接 ⚓️📖 介绍 📖 小米设备的广告一直是用户头疼的问题,无论是开屏广告、应用内广告还是系统广告,都影响了用户体验。本文将详细介绍如何通过小米路由器实现去除广告…...
HCIP-Datacom-ARST自选题库__EBGP【18道题】
一、单选题 1.在排除EBGP邻居关系故障时,你发现两台直连设备使用Loopback口建立连接,故执行display current-configurationconfiguration bgp查看peer ebgp-max-hop hop-count的配置,下列哪项说法是正确的? hop-count必须大于2 hop-count…...
TypeScript算法每日一题:两数之和(167)
作者:前端小王hs 阿里云社区博客专家/清华大学出版社签约作者✍/CSDN百万访问博主/B站千粉前端up主 题库:力扣 题目序号:167(简单) 题目: 给你一个下标从1开始的整数数组 numbers ,该数组已按非…...
用docker搭建的Vulfocus镜像管理界面没有镜像可以拉取解决办法
ps:截止到今天2023.4.2,kali和vps的docker拉取的vulfocus镜像会有版本的区别,虽然都是拉取的最新版,vps上镜像为3个月以前,kali上为16个月以前,所以在修改 views.py 文件时,可能会发现文件内容不…...
CSPM.pdf
PDF转图片 归档:...
多个短视频剪辑成一个视频:四川京之华锦信息技术公司
多个短视频剪辑成一个视频:创作中的艺术与技术 在数字时代,短视频以其短小精悍、内容丰富的特点,迅速成为社交媒体上的热门内容形式。然而,有时单一的短视频难以完全表达创作者的意图或满足观众的观赏需求。因此,将多…...
算法第三天力扣第69题:X的平方根
69. x 的平方根 (可点击下面链接或复制网址进行做题) https://leetcode.cn/problems/sqrtx/https://leetcode.cn/problems/sqrtx/ 给你一个非负整数 x ,计算并返回 x 的 算术平方根 。 由于返回类型是整数,结果只保留 整数部分 ,小数部分将被…...
异常处理。
异常 是指程序运行中出现了错误。 捕获异常: 对bug进行提醒,使整个程序继续运行。 捕获所有异常: try:#可能出错的代码 except:如果出现异常执行的代码 可以输出异常的类型: try:a1bhuishprint(ab) except Exception as i:…...
MySQL—函数(介绍)—字符串函数(基础)
一、引言 提到函数,在SQL分类中DQL语句中有一个聚合函数,如COUNT()、SUM()、MAX()等等。这些都是一些常见的聚合函数,而聚合函数只是函数的一种,接下来会详细的学习和介绍一下函数的应用场景和以及 mysql 当中文件的函数有哪些。 …...
CTF本地靶场搭建——静态flag题型的创建
静态flag题型的创建 首先这里要说的是静态flag和动态flag。 在CTF(Capture The Flag)比赛中,静态flag的使用通常与特定的赛制或题目类型关联,而不是直接与题型绑定。静态flag意味着这些flag是预先设定好的,不会随比…...
基于Django的博客系统之用HayStack连接elasticsearch增加搜索功能(五)
上一篇:搭建基于Django的博客系统数据库迁移从Sqlite3到MySQL(四) 下一篇:基于Django的博客系统之增加类别导航栏(六) 功能概述 添加搜索框用于搜索博客。 需求详细描述 1. 添加搜索框用于搜索博客 描…...
开源VS闭源:大模型发展路径之争,你站哪一派?
文章目录 引言一、数据隐私1.1开源大模型的数据隐私1.2 闭源大模型的数据隐私1.3 综合考量 二、商业应用2.1 开源大模型的商业应用2.2 闭源大模型的商业应用2.3 商业应用的综合考量 三、社区参与3.1 开源大模型的社区参与3.2 闭源大模型的社区参与3.3 综合考量 结论 引言 在人…...
Python | Leetcode Python题解之第115题不同的子序列
题目: 题解: class Solution:def numDistinct(self, s: str, t: str) -> int:m, n len(s), len(t)if m < n:return 0dp [[0] * (n 1) for _ in range(m 1)]for i in range(m 1):dp[i][n] 1for i in range(m - 1, -1, -1):for j in range(n …...
STM32高级控制定时器应用之检测输入PWM周期和占空比
目录 概述 1 PWM 输入模式 1.1 原理介绍 1.2 应用实例 1.3 示例时序图 2 使用STM32Cube配置工程 2.1 软件环境 2.2 配置参数 2.3 生成项目文件 3 功能实现 3.1 PWM占空比函数 3.2 输入捕捉回调函数 4 功能测试 4.1 测试软件框架结构 4.2 实验实现 4.2.1 测试实…...
[AI Google] 三种新方法利用 Gemini 提高 Google Workspace 的生产力
Workspace 侧边栏中的 Gemini 现在将使用 Gemini 1.5 Pro,新的 Gemini for Workspace 功能即将登陆 Gmail 移动应用,等等。 Gemini for Google Workspace 帮助个人和企业更好地利用 Google 应用——从在 Gmail 中撰写邮件到在 Sheets 中组织项目计划。过…...
【U-Net验证】逐元素乘积将特征投射到极高维隐式特征空间的能力
写在前面:本博客仅作记录学习之用,部分图片来自网络,如需使用请注明出处,同时如有侵犯您的权益,请联系删除! 文章目录 前言网络结构编码结构解码结构代码 实验实验设置w/o-ReLU的性能比较with-ReLU的性能比…...
快团团大团长帮卖如何导出单个团购的订单?免费教程教你怎么做!
一、小程序端如何导出单个团购的订单? 进入团购页面,在订单管理——订单导出中,点击订单数据表格,可导出到邮箱,或通过在浏览器中查看下载链接 二、电脑端如何导出单个团购的订单? 1、如何自定义选择订单信…...
services层和controller层
services层 我的理解,services层是编写逻辑代码语句最多的一个层,非常重要,在实际的项目中,负责调用Dao层中的mybatis,在我的项目中它调用的是这两个文件 举例代码如下 package com.example.sfdeliverysystem.servic…...
Pycharm编辑器下自定义模块导入报错:no module named问题
相信很多使用pycharm 社区版编写python 程序的初学者都会遇到这样一个看似简单但是一时半刻找不到解决头绪的问题: 在同个目录下导入自己编写的模块到主程序的过程中,直接import的时候会报错:ModuleNotFoundError。 通过各种方法尝试以后还是…...
C#使用GDI对一个矩形进行任意角度旋转
C#对一个矩形进行旋转GDI绘图,可以指定任意角度进行旋转 我们可以认为一张图片Image,本质就是一个矩形Rectangle,旋转矩形也就是旋转图片 在画图密封类 System.Drawing.Graphics中, 矩形旋转的两个关键方法 //设置旋转的中心点 public v…...
打印机的ip不同且连不上
打印机的ip不同且连不上 1.问题分析2.修改网段3.验证网络 1.问题分析 主要是打印机的网段和电脑不在同一个网段 2.修改网段 3.验证网络...
关于linux程序的查看、前台运行、后台运行、杀死的管理操作。
前言 在Linux中, 程序(program)是放在磁盘上的程序,是不会执行的。 进程(process)是程序被触发,从而加载到内存中的,会被CPU随机执行。 Linux中,有非常多的进程在实时运…...
STM32作业设计
目录 STM32作业设计 STM32作业实现(一)串口通信 STM32作业实现(二)串口控制led STM32作业实现(三)串口控制有源蜂鸣器 STM32作业实现(四)光敏传感器 STM32作业实现(五)温湿度传感器dht11 STM32作业实现(六)闪存保存数据 STM32作业实现(七)OLED显示数据 STM32作业实现(八)触摸按…...
PHPSTOM配置Laradock,xdebug,phpunit
原理图: 片面理解: phpstorm启用一个9000端口,这个端口用来接收到信息后,启用xdebug功能。服务器端(docker), 当客户端访问laravel项目域名后, 并读取xdebug.ini的配置, 把调试的请求数据, 向配置里面的端口发送消息, 配置里面的端…...
使用Java进行数据分析和处理:应用在实际业务场景中的技术
在当今数据驱动的时代,数据分析和处理已经成为各行各业中不可或缺的一部分。Java作为一种广泛应用于企业级开发的编程语言,也在数据领域展现出了强大的能力。本文将探讨如何使用Java进行数据分析和处理,以及在实际业务场景中应用的技术。 ##…...
C++中的List
摘要 C 标准库中的 std::list 是一种双向链表容器,它允许在常数时间内进行插入和删除操作,每个元素包含一个指向前一个和后一个元素的指针。这给我们开发提供了高效的插入和删除操作。 引入头文件 要使用 std::list,需要包含头文件 <li…...
go map 如何比较两个 map 相等
go map 如何比较两个 map 相等 都为 nil非空、长度相等,指向同一个 map 实体对象相应的 key 指向的 value 相等 直接将使用 map1 map2 是错误的。这种写法只能比较 map 是否为 nil。因此只能是遍历map 的每个元素,比较元素是否都是深度相等。...
牛客网刷题 | BC108 反斜线形图案
目前主要分为三个专栏,后续还会添加: 专栏如下: C语言刷题解析 C语言系列文章 我的成长经历 感谢阅读! 初来乍到,如有错误请指出,感谢! 描述 KiKi学习了循环&am…...