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

如何用源码搭建网站在微信怎么开发公众号

如何用源码搭建网站,在微信怎么开发公众号,网站建设html实训心得,网站宣传搭建在C语言中有switch...case语句#xff0c;Pthon3.10之前应该是没有类似语法#xff0c;从Python3.10开始引入match...case与switch分支语句用法类似#xff0c;但有细微差别#xff0c;总结如下#xff1a; 1.语法 肉眼可见的是关键词从switch变成了match#xff0c;同…在C语言中有switch...case语句Pthon3.10之前应该是没有类似语法从Python3.10开始引入match...case与switch分支语句用法类似但有细微差别总结如下 1.语法 肉眼可见的是关键词从switch变成了match同时match...case语句遵循Python语法风格如下 switch(condition) {case 1do_something_1();break;case 2:do_something_2();break;case 3:do_something_3();break;default:do_default(); } 以上是C语言中switch...case的语法需要注意case后面需要有break否则会继续执行下面的语句 match condition:case 1:do_something_1()case 2:do_something_2()case 3:do_something_3()case _:do_default() 以上是Python中match...case的语法没有break也没有default取而代之的是捕捉模式Capture比如本例中的case _: 与default功能类似表示其他值同时_相当于一个局部变量其值等于condition_也可以取其他变量名当然一个match语句中最多只能有一个捕捉模式的case且必须位于最后一个case就像只能有一个default一样 2.数据类型支持 C语言中的case后面只能是整形值Python的case后面可以是大部分数据类型对于不同数据类型的匹配规则列举如下 数值(int,float)  字符串(string) None使用等号规则进行匹配 n -1.2 match n:case 0: # 不匹配print(1)case 1: # 不匹配print(1)case 1.1: # 不匹配print(1.1)case 1.2: # 不匹配print(1.2)case -1.2: # 不匹配print(str -1.2)case -1.2: # 匹配且命中print(-1.2)case default: # 匹配但未命中因为前面case已经命中print(default str(default)) s 3 print(s num(3) ? str(s 3)) match s:case 1: # 不匹配print(1)case 3: # 不匹配print(3)case 3: # 匹配且命中print(str 3)case default: # 匹配但未命中因为前面case已经命中print(default default) n None match n:case 0: # 不匹配print(0)case : # 不匹配print()case False: # 不匹配print(False)case None: # 匹配且命中print(None)case default: # 匹配当未命中因为前面case已经命中print(default str(default)) 布尔值(Boolean)比较特殊True会匹配True和数字1False会匹配False和数字0 b True match b:case : # 不匹配print()case 0: # 不匹配print(0)case 11: # 不匹配print(11)case 1: # 匹配且命中print(1)case True: # 匹配但未命中因为前面case已经命中print(True)case False: # 不匹配print(False)case default: # 匹配但未命中因为前面case已经命中print(default str(default)) b False match b:case : # 不匹配print()case 0: # 匹配且命中print(0)case 11: # 不匹配print(11)case 1: # 不匹配print(1)case True: # 不匹配print(True)case False: # 匹配但未命中因为前面case已经命中print(False)case default: # 匹配但未命中因为前面case已经命中print(default str(default)) 字典(dictionary)当condition是个字典时case后面只要是字典且case后面字典的键值对在condition中都能找到则该case命中键值对无顺序要求有一个比较特殊情况假如case后面跟的是空字典那么不管condition字典内容是什么该case必然命中 a {ab:3, 5:5} match a:case 1: # 不匹配print(1)case {ab:2}: # 不匹配print(ab2)case {ab:1}: # 不匹配print(ab1)case {c:3}: # 不匹配print(c3)case {5:5, ab:3}: # 匹配且命中print(5:5 ab:3)case {ab:3, t:3}: # 不匹配print(ab3 t3)case {ab:3, 5:4}: # 不匹配print(ab3 5:4)case {ab:3, 5:5, t:2}: # 不匹配print(ab3 5:5 t2)case {ab:3, 5:5}: # 匹配但未命中因为前面case已经命中print(ab3 5:5)case {ab:3}: # 匹配但未命中因为前面case已经命中print(ab3)case {}: # 匹配但未命中因为前面case已经命中print({})case _b: # 匹配但未命中因为前面case已经命中print(_______ str(_b)) 列表 (list) 元组(tuple)当condition是个列表或元组时在做case比对时不分列表和元组只要元素数量相同且每个索引位置值相同即可匹配成功 l [2,3,4,5] match l:case 2: # 未匹配print(2)case 2,3: # 未匹配print(2,3)case 2,3,4,5,6: # 未匹配print(2,3,4,5,6)case [2,4,3,5]: # 未匹配print([2,4,3,5])case (2,4,3,5): # 未匹配print((2,4,3,5))case (2,3,4,5): # 匹配且命中print((2,3,4,5))case [2,3,4,5]: # 匹配但未命中因为已经命中了前面的caseprint([2,3,4,5])case default: # 匹配但未命中因为已经命中了前面的caseprint(default str(type(default)) str(default)) 集合(set)目前似乎还不支持集合数据类型的匹配不确定如有错误之处望留言指正 类(Class)首先判断是否属于同一个class然后判断calss各属性值是否相等 class Point:def __init__(self, x, y):self.x xself.y y class Point2:def __init__(self, x, y):self.x xself.y yobj Point(1,2) match obj:case Point(x3, y4): # 不匹配属性值不相等print(Point,3,4)case Point2(x1, y2): # 不匹配class类型不一致print(Point2,1,2)case {x:1, y:2}: # 不匹配Class类型不一致print({x,y})case Point(x1, y2): # 匹配且命中print(Point,1,2)case default:print(default str(default)) 3.组合case 在C语言中可以多个case对应一个执行过程如下所示 switch(condition) {case 1do_something_1();break;case 2:case 3:do_something_2_3();break;case 4:case 5:do_something_4_5();break;default:do_default(); } 当condition等于2或3时执行do_sometion_2_3()函数当condition等于4或5时执行do_something_4_5()函数 在Python中也有类似写法叫作组合(OR)模式如下所示 c 5 match c:case 1: # 不匹配print(1)case 1 | 2: # 不匹配print(1 | 2)case 3 | 4: # 不匹配print(3 | 4)case 5 | 6 | 7: # 匹配且命中print(5 | 6 | 7)case 5: # 匹配但未命中因为前面case已经命中print(5)case _: # 匹配但未命中因为前面case已经命中print(default str(_)) 4.通配符捕捉模式的扩展 当捕捉模式应用到列表和字典等复杂数据类型时情况会比较复杂我们通过几个例子来进行说明 d [1,2,3,4] match d:case a,b: # 不匹配元素数量不等print(a,b)print([a,b])case a,b,c: # 不匹配元素数量不等print(a,b,c)print([a,b,c,d])case 2,*b: # 不匹配索引位值不相等其中*b代表任意个元素print(2,*b)print(b)case 1,*b,3: # 不匹配索引位值不相等print(1,*b,3)print(b)case *b,2: # 不匹配索引位值不相等print(*b,2)print(b)case 1,2,3,*b,4: # 匹配且命中print(1,2,3,*b,4)print(b) // b []case 1,*b,4: # 匹配但未命中因为前面case已命中print(1,*b,4)print(b)case *b,4: # 匹配但未命中因为前面case已命中print(*b,4)print(b)case 1,*b: # 匹配但未命中因为前面case已命中print(1,*b)print(b)case *b,: # 匹配但未命中因为前面case已命中print(*b,)print(b)case [*b]: # 匹配但未命中因为前面case已命中print([*b])print(b)case 2,b,c,d: # 不匹配索引位值不相等print(2,b,c,d)print([2,b,c,d])case 1,2,c,d: # 匹配但未命中因为前面case已命中print(1,2,c,d)print([1,2,c,d])case 1,b,c,d: # 匹配但未命中因为前面case已命中print(1,b,c,d)print([1,b,c,d])case a,b,c,d: # 匹配但未命中因为前面case已命中print(a,b,c,d)print([a,b,c,d])case _: # 匹配但未命中因为前面case已命中print(_) 本例中的a,b,c,d为捕捉模式在列表中的应用而*b为通配符表示匹配任意个元素包括0个元素且一个case中只能有一个通配符变量 类似地捕捉模式和通配符还可以应用到字典数据类型如下 d {a:1, b:bb, c: [3,4], d: {dd:5}} match d:case {s: 1}: # 不匹配print(s:1)case {a:a}: # 匹配且命中print(a:a)print(a) # a1case {b:bbb}: # 匹配但未命中因为前面case已经命中print(b:bbb)print(bbb) # bbb bbcase {a:1, **p}: # 匹配但未命中因为前面case已经命中print(a:1:**p)print(p) # p {b:bb, c: [3,4], d: {dd:5}}case {**p}: # 匹配但未命中因为前面case已经命中print(**p)print(p) # p {a:1, b:bb, c: [3,4], d: {dd:5}}case {d:d, **p}: # 匹配但未命中因为前面case已经命中print(d:d:**p)print(p) # p {a:1, b:bb, c: [3,4]}case _: # 匹配但未命中因为前面case已经命中print(default str(default)) # default d {a:1, b:bb, c: [3,4], d: {dd:5}} 倘若要将捕捉模式和通配符用于自定义类需要给自定义类定义一个__match_args__数组如下 class Point:__match_args__ (x, y)def __init__(self, x, y):self.x xself.y y 或者使用标准库的dataclasses.dataclass装饰器它会提供__match_args__属性如下 from dataclasses import dataclassdataclass class Point2:x: inty: int 这样就可以使用捕捉模式如下 class Point:__match_args__ (x, y)def __init__(self, x, y):self.x xself.y yfrom dataclasses import dataclassdataclass class Point2:x: inty: intobj Point2(1,2) match obj:case Point(x, y): # 不匹配Class类型不一致print(fPoint({x},{y}))case Point2(x, y): # 匹配且命中print(fPoint2({x},{y}))case Point(x3, y4): # 不匹配Class类型不一致print(Point,3,4)case Point2(x1, y2): # 匹配但未命中因为前面case已经命中print(Point2,1,2)case {x:1, y:2}: # 不匹配Class类型不一致print({x,y})case Point(x1, y2): # 不匹配Class类型不一致print(Point,1,2)case default:# 匹配但未命中因为前面case已经命中print(default str(default)) 5.数据类型匹配 简单来说就是只根据数据类型来判断是否匹配如下 a {1,2,3} match a:# case object():# print(object)case int(): # 不匹配print(int)case str(): # 不匹配print(str)case list(): # 不匹配print(list)case tuple(): # 不匹配print(tuple)case dict(): # 不匹配print(dict)case set(): # 匹配命中print(set)case bool(): # 不匹配print(bool)case default:print(default str(type(default)) str(default)) 需要注意的是True和False会匹配int()和bool()所有值都会匹配object 6.AS语法 简单来说就是当匹配某个case时将匹配到的值存入用as语句声明的新变量中通常和数据类型匹配相结合使用如下 a [1,2,3,4] match a:case {b: bb} as v: # 不匹配print(b:bb:v)print(bb)print(v)case [1, *b, int() as v]: # 不匹配print([1, *b]:int,v)print(b)print(v)case [1, *b, str() as v]: # 匹配命中print([1, *b]:str,v)print(b) # b [2,3]print(v) # v 4case _:print(default str(type(default)) str(default)) 7.补充条件模式 可以在case后面使用if语句来添加匹配的判断条件如下 a [3, 4, 5, 6] match a:case [a, *b, c] if a10: # 不匹配a不大于10print(a10)print(c str(c))case [a, *b, c] if a5: # 不匹配print(10a5)print(c str(c))case [a, *b, c] if a0: # 匹配print(5a0)print(c str(c)) # c 6case [a, *b, c] if a0: # 不匹配print(a0)print(c str(c))case _:print(a0) 再比如 cmd [go, away] match cmd:case [go, dir] if dir in [east, west]: # 不匹配print(go- dir)case [go, dir] if dir north or dir south: # 不匹配print(stop)case [go, dir]: # 匹配命中print(unknown dir: dir)case _:print(default)
http://www.dnsts.com.cn/news/172292.html

相关文章:

  • 成都做网站建设公司梅州新农村建设网站
  • 去哪里找做网站广州网站建设服务公司
  • 网站实现隶书繁体西安seo和网络推广
  • wordpress网站可以显示中文和英文网上推广营销
  • 网站logo是指商品的销售网站总体设计
  • 网站 排版模板重庆网站建设服务公司
  • 看到网站的第一印象新乡营销型网站建设
  • 国外源码网站经销做网站都有什么好处
  • 做app护肤网站亚马逊电商运营新手入门
  • 网站的布局结构手机网站菜单
  • 佛山视频网站搭建公司seo诊断优化专家
  • 关于申请网站建设维护经费疯狂的大叔 wordpress
  • 南山做网站哪家好网络公司网站赏析
  • 网站开发的课程设置淄博网站制作服务优化
  • 汽车网站建设论坛襄阳网络营销是什么
  • 门户网站指的是什么设计一个手机网站平面多少钱
  • 1999年怎样建立企业网站我们一起做网站
  • wordpress建站解析做网站需要什么权限
  • ps怎么做网站分隔线中国企业网官方网站下载
  • 广电如何做视频网站品牌设计与vi设计的区别
  • 做网站Linux中国室内设计师网官网
  • 青岛做网站排名wordpress怎么跟vue
  • 宣传网站制作哪家质量好汕尾招聘网
  • 玉林做网站的公司wordpress邮箱验证失败
  • 网站建设的销售话术手机网站开发报价
  • 网站主机价格网站建设管理情况报告
  • 医院网站管理系统网站安全和信息化建设
  • 网站建设报班南昌地宝网首页
  • 珠宝网站源码免费下载建设电子商务网站所应用的技术
  • 搜索的网站后大拇指分享数量不见了网站不做icp备案