Python开发基础总结(一)套接字+字符串+正则表达式

简介: Python开发基础总结(一)套接字+字符串+正则表达式

一、套接字编程:


  1. 函数的功能基本和c类似,唯一不同的地方在于当发生错误时,它不是通过返回值来告知的,而是通过触发异常,所以udp中的bind, recvfrom, sendto必须要进行捕捉异常。
  2. 套接字在垃圾收集的时候也会关闭。
  3. 获取网卡的IP:  
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0X8915, struct.pack('256s', ethname[:15]))[20:24])
复制代码

二、字符串的使用


  1. Python的字符串是不可以改变的。但是你可以操作字符串以形成新的字符串。
  2. 字符串中删除一个字串。没有直接提供这个方法,但是replace可以实现:
"abc def".replace(" ", "")
复制代码

同样的功能还有一个方法:translate。它的原有作用是将字符串中的某个字符替换为另外一个字符,注意,不是字符串。它的第一个参数是一个转换表。第二个参数是要删除的字符串。我们可以利用第二个参数del,实现这个功能。同时,第一个参数设置为None。

translate可能更高效一点。另外,它的第二个参数可以使一个字符串,含有多个字符,这样就会删除多个。

注意: translate方法不会对这个字符串操作,而是返回一个新的字符串。

  1. strip方法:去除字符串两侧的空格,返回新的字符串。这个功能非常有用。
  2. str中有一个函数,format,非常强大,有时间一定要看一下。
  3. endswitch:检查字符串是否已某字符串结尾。startswith:检查是否已某字符串开头。
  4. partition:它将字符串按指定的字符串分为三个部分,返回一个元组。第一个是指定字符串前面内容,第二个是指定字符串,第三个是指定字符串后面的内容。用于字符串解析非常好用。
  5. split:将字符串按照某指定字符串分割成多个子字符串,返回一个分割后的列表。
  6. join:将一个字符串列表中的各个字符串连接起来,中间插入指定的字符串。
  7. find的返回值不是false和true,所以不可以直接用于if判断。需要判断if s.find(‘’) >= 0:
  8. 基于字典的格式化:
  1. sh = '''
  2. python -m compileall -fl ../src;
  3. python -m compileall -fl ../src/micbase;
  4. mkdir %(packname)s;
  5. mdkir %(packname)s;
  6. ''' % { 'packname' :sys.argv[1], }
  7. print(sh)

内建函数:

string.capitalize()  把字符串的第一个字符大写
string.center(width)  返回一个原字符串居中,并使用空格填充至长度 width 的新串
string.count(str, beg=0, end=len(string))  返回 str 在 string 里面出现的次数,如果 beg 或者 end 指返回指定范围内 str 出现的次数
string.decode(encoding='UTF-8', errors='strict')    以 encoding 指定的编码格式解码 string,如果出错默认报ValueError 的异常,除非 errors 指定的是'ignore'或'replace'
string.encode(encoding='UTF-8', errors='strict')   以 encoding 指定的编码格式编码 string,如果出错默认报ValueError的异常, 除非errors指定的是'ignore'或者'repl
string.endswith(obj, beg=0, end=len(string)) 检查字符串是否以 obj 结束,如果 beg 或者 end 指定则检定的范围内是否以 obj 结束, 如果是, 返回True,否则返回Fa
string.expandtabs(tabsize=8) 把字符串 string 中的 tab 符号转为空格, 默认格数 tabsize 是 8.
string.find(str, beg=0, end=len(string))    检测 str 是否包含在 string 中,如果 beg 和 end 指定范则检查是否包含在指定范围内,如果是返回开始的索引值,返回-1
string.index(str, beg=0, end=len(string))     跟find()方法一样, 只不过如果str不在string中会报一个异
string.isalnum() a, b, c  R如果string至少有一个字符并且所有字符都是字母或数字回 True,否则返回 False
string.isalpha() a, b, c  如果string至少有一个字符并且所有字符都是字母则返回T否则返回 False
string.isdecimal() b, c, d 如果 string 只包含十进制数字则返回 True 否则返回 False.
string.isdigit() b, c 如果 string 只包含数字则返回 True 否则返回 False.
string.islower() b, c 如果 string 中包含至少一个区分大小写的字符,并且所有这些(大小写的)字符都是小写,则返回 True,否则返回 False
string.isnumeric() b, c, d 如果 string 中只包含数字字符,则返回 True,否则返回 False
string.isspace() b, c 如果 string 中只包含空格,则返回 True,否则返回 False.
string.istitle() b, c 如果 string 是标题化的(见 title())则返回 True,否则返回 False
string.isupper() b, c 如果 string 中包含至少一个区分大小写的字符, 并且所有这些(区分大小写的)字符都是大写,则返回 True,否则返回 False
string.join(seq)  Merges (concatenates)以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
string.ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
string.lower()  转换 string 中所有大写字符为小写.   
string.lstrip()   截掉 string 左边的空格
string.partition(str) e 有点像 find()和 split()的结合体,从 str 出现的第一个位置起,把 字 符 串 string 分 成 一 个 3 元 素 的 元 组 (string_pre_str,str,string_post_str),如果 string 中不包含str 则 string_pre_str == string.
string.replace(str1, str2,  num=string.count(str1)) 把 string 中的 str1 替换成 str2,如果 num 指定,        则替换不超过 num 次.
string.rfind(str, beg=0,end=len(string)) 类似于 find()函数,不过是从右边开始查找.
string.rindex( str, beg=0,end=len(string))     类似于 index(), 不过是从右边开始.
string.rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
string.rpartition(str) e  类似于 partition()函数,不过是从右边开始查找.
string.rstrip()   删除 string 字符串末尾的空格.
string.split(str="", num=string.count(str))   以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
string.splitlines(num=string.count('\n')) b, c按照行分隔, 返回一个包含各行作为元素的列表, 如果 num 指定则仅切片 num 个行.
string.startswith(obj, beg=0,end=len(string)) b, e检查字符串是否是以 obj 开头,是则返回 True,否则返回 False。如果beg 和 end 指定值,则在指定范围内检查.
string.strip([obj])   在 string 上执行 lstrip()和 rstrip()
string.swapcase()   翻转 string 中的大小写
string.title() b, c   返回"标题化"的 string,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())
string.translate(str, del="")   根据str给出的表(包含256个字符)转换string的字符,要过滤掉的字符放到 del 参数中
string.upper()  转换 string 中的小写字母为大写
string.zfill(width)   返回长度为 width 的字符串,原字符串 string 右对齐,前面填充0

三、正则表达式


  1. 为什么要学习正则:主要是为了处理字符串更加方便,特别是为后面进行代码生成做储备。
  2. match是匹配字符串的开头是否匹配,而search是查看字符串任意起始位置是否满足。
  3. sub可以对字符串中模式匹配的部分进行替换
  4. split:可以对字符串进行分割,这里是根据模式分割。


作者:zhulin1028

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章
|
1天前
|
前端开发 搜索推荐 编译器
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
【01】python开发之实例开发讲解-如何获取影视网站中经过保护后的视频-用python如何下载无法下载的视频资源含m3u8-python插件之dlp-举例几种-详解优雅草央千澈
|
2月前
|
Python
在 Python 中,如何将日期时间类型转换为字符串?
在 Python 中,如何将日期时间类型转换为字符串?
128 64
|
13天前
|
IDE 测试技术 开发工具
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
在Python开发中,调试是提升效率的关键技能。本文总结了10个实用的调试方法,涵盖内置调试器pdb、breakpoint()函数、断言机制、logging模块、列表推导式优化、IPython调试、警告机制、IDE调试工具、inspect模块和单元测试框架的应用。通过这些技巧,开发者可以更高效地定位和解决问题,提高代码质量。
106 8
10个必备Python调试技巧:从pdb到单元测试的开发效率提升指南
|
6天前
|
JavaScript API
鸿蒙开发:了解正则表达式
从给出的文本中,按照既定的相关规则,匹配出符合的数据,其中的规则就是正则表达式,使用正则表达式,可以使得我们用简洁的代码就能实现一定复杂的逻辑,比如判断一个邮箱账号是否符合正常的邮箱账号,再比如判断一个手机号是否正常的手机号,等等,正因为有了正则,得以让文本处理起来更加的简单。
|
1天前
|
人工智能 编译器 Python
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
python已经安装有其他用途如何用hbuilerx配置环境-附带实例demo-python开发入门之hbuilderx编译器如何配置python环境—hbuilderx配置python环境优雅草央千澈
|
26天前
|
存储 API 数据库
使用Python开发获取商品销量详情API接口
本文介绍了使用Python开发获取商品销量详情的API接口方法,涵盖API接口概述、技术选型(Flask与FastAPI)、环境准备、API接口创建及调用淘宝开放平台API等内容。通过示例代码,详细说明了如何构建和调用API,以及开发过程中需要注意的事项,如数据库连接、API权限、错误处理、安全性和性能优化等。
87 5
|
29天前
|
存储 测试技术 Python
Python 中别再用 ‘+‘ 拼接字符串了!
通过选择合适的字符串拼接方法,可以显著提升 Python 代码的效率和可读性。在实际开发中,根据具体需求和场景选择最佳的方法,避免不必要的性能损失。
44 5
|
1月前
|
Python
使用Python计算字符串的SHA-256散列值
使用Python计算字符串的SHA-256散列值
40 7
|
2月前
|
机器学习/深度学习 人工智能 关系型数据库
Python开发
Python开发
42 7
|
2月前
|
Python
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
在 Python 中,如何将字符串中的日期格式转换为日期时间类型?
41 6