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

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

相关文章
|
22天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的商城管理系统源码+运行步骤
基于Python+Vue开发的商城管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的网上商城管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
58 7
|
12天前
|
程序员 测试技术 开发工具
怎么开发Python第三方库?手把手教你参与开源项目!
大家好,我是程序员晚枫。本文将分享如何开发Python第三方库,并以我维护的开源项目 **popdf** 为例,指导参与开源贡献。Popdf是一个PDF操作库,支持PDF转Word、转图片、合并与加密等功能。文章涵盖从fork项目、本地开发、单元测试到提交PR的全流程,适合想了解开源贡献的开发者。欢迎访问[popdf](https://gitcode.com/python4office/popdf),一起交流学习!
75 21
怎么开发Python第三方库?手把手教你参与开源项目!
|
2月前
|
存储 算法 API
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
【01】整体试验思路,如何在有UID的情况下获得用户手机号信息,python开发之理论研究试验,如何通过抖音视频下方的用户的UID获得抖音用户的手机号-本系列文章仅供学习研究-禁止用于任何商业用途-仅供学习交流-优雅草卓伊凡
278 82
|
14天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的美容预约管理系统源码+运行
基于Python+Vue开发的美容预约管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的美容诊所预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
37 9
|
11天前
|
JavaScript 前端开发 关系型数据库
基于Python+Vue开发的体育场馆预约管理系统源码+运行
本项目为大学生课程设计作业,采用Python和Vue技术构建了一个体育场馆预约管理系统(实现前后端分离)。系统的主要目标在于帮助学生理解和掌握Python编程知识,同时培养其项目规划和开发能力。参与该项目的学习过程,学生能够在实际操作中锻炼技能,为未来的职业发展奠定良好的基础。
45 3
|
17天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的摄影网上预约管理系统源码+运行
基于Python+Vue开发的摄影网上预约管理系统(前后端分离),影楼婚纱摄影,这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的在线摄影预约管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
36 8
|
14天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的新闻管理系统源码+运行
基于Python+Vue开发的新闻管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的新闻管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
43 5
|
13天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的房产销售管理系统源码+运行
基于Python+Vue开发的房产销售管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的房产销售管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
32 2
|
18天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的民宿客房预订管理系统源码运行
基于Python+Vue开发的民宿客房预订管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的民宿客房预订管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
45 8
|
20天前
|
前端开发 JavaScript 关系型数据库
基于Python+Vue开发的反诈视频宣传管理系统源码+运行步骤
基于Python+Vue开发的反诈视频宣传管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的反诈宣传管理系统项目,大学生可以在实践中学习和提升自己的能力,为以后的职业发展打下坚实基础。
42 6