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

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

相关文章
|
3月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
354 100
|
3月前
|
开发者 Python
Python中的f-string:高效字符串格式化的利器
Python中的f-string:高效字符串格式化的利器
476 99
|
3月前
|
Python
Python中的f-string:更优雅的字符串格式化
Python中的f-string:更优雅的字符串格式化
|
3月前
|
开发者 Python
Python f-strings:更优雅的字符串格式化技巧
Python f-strings:更优雅的字符串格式化技巧
|
3月前
|
开发者 Python
Python f-string:高效字符串格式化的艺术
Python f-string:高效字符串格式化的艺术
|
3月前
|
Python
使用Python f-strings实现更优雅的字符串格式化
使用Python f-strings实现更优雅的字符串格式化
|
4月前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
319 92
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
185 4
|
3月前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
538 7

推荐镜像

更多