Python语法知识点三
1.多线程ping Ip地址
1 | ## 多线程ping |
1.Python 多线程
2.如何同时Ping 1000个IP地址,小技巧节约一整天?
3.shell 批量 ping 多个IP地址
3.python3 线程池实现批量ping某一网段,获得可用ip列表——futures模块
4.使用pyhton采用多线程方式ping IP
5.Python 编写多线程 Ping 主机IP的脚本
6.python线程join的正解
7.C++调用Python函数,获取Ping某网站的延迟时间与丢包率
2.Python3 字典dict判断是否包含键值–in 操作符
python3不支持 dick.has_key() 函数
1 | dict={"name":"alice","age":7} |
3.正则表达式
1 | mapobj=re.match(r'(?:trojan|ssr)(?<=trojan|ssr).*?(?=(trojan|ssr|$))',links,re.M|re.I) |
执行上面的代码时,出现了:look-behind requires fixed-width pattern 错误。
测试工具给出的代码为:
1 | import re |
这个无法完成,python的re模块并不支持变长的后发断言,只支持定长的后发断言。也就是说(?<=trojan|ssr)不能跟一个不确定的长度内容。
1 | ## 为了获取其中的hello world |
4.python查找字符串
Python index() 方法检测字符串中是否包含子字符串 str ,如果指定 beg(开始) 和 end(结束) 范围,则检查是否包含在指定范围内,该方法与 python find()方法一样,只不过如果str不在 string中会报一个异常。
我记得在某一种语言中,会有indexOf方法,可以支持或操作符,比如这样写:
1 | str.indexOf('a|b') |
通过这种方法,就是找到下一个a或者是b的位置。我又查询了javascript和java的indexOf用法,发现了,没有这个方法。难道是我记错了?
5.判断对象的类型
1 | ## type可以输出一个对象的类型 |
type主要用于获取未知变量的类型
isinstance主要用于判断A类是否继承于B类
6.switch
当我真的尝试用 switch 语句的时候,我发现竟然真的没有。
(1) 使用字典代替
1 | def switch_dict_example(case): |
(2) 使用match语句(3.10新增)
1 | match expression: |
【1】.Python中真的没有switch语句吗 if-elif-else 结构: 灵活,适用于较复杂的条件逻辑。字典模拟 Switch: 简洁,适用于将多个值映射到相应结果的简单情况。
【2】.为什么Python中没有switch或者case语句 可以很容易地通过一系列的 if… elif… elif… else. 或者字典dict来代替switch case 语句
【3】.Python3 条件控制 1.使用 if else 语句进行条件控制。2.使用match…case 的条件判断,不需要再使用一连串的 if-else 来判断了。
【4】.Python Switch 语句 模拟switch:1.使用函数和 elif 关键字;2.在 Python 3.10 中使用 match 和 case 关键字实现 Switch 语句。
【5】.Python match…case 语句 匹配方法:1.简单的值匹配;2.使用变量;3.类型匹配。