本文目錄一覽:
- 1、Python 正則表達式匹配兩個字元之間的字元
- 2、Python 基礎知識全篇-字元串(Strings)
- 3、【python】求兩個字元串的公共字串?
- 4、為什麼Python 可以使用 + 把兩個字元串連接成一個字元串
- 5、python 兩組字元串取不同 演算法
Python 正則表達式匹配兩個字元之間的字元
1、打開JUPYTER NOTEBOOK,新建一個空白的PY文檔。
2、import re首先必須要做的是引入regular expression。
3、a = re.compile(r’ ‘)a.sub(r’ ‘, ‘my name is Peter.’)可以定義兩個空格的情況下變成一個空格。
4、也可以定義多個重複單詞的時候,變成一個。
5、用+就可以代替一個或者多個的意思。
6、\s表示空格,可以定義兩個或者兩個以上就變成一個。
7、c = re.compile(r’\s{2,}’),c.sub(‘ ‘, ‘My name is Peter.’),後續只能直接輸入改成的字元。
Python 基礎知識全篇-字元串(Strings)
單引號和雙引號
字元串可以包含在單引號或雙引號中。
這種靈活的方式可以讓我們在字元串中包含引號。
當我們需要創建一個多行字元串的時候,可以用三個引號。如下所示:
改變大小寫
你可以很方便的改變字元串的大小寫。如下所示:
最常見的大小寫形式是全小寫(lower),首字母大寫(title)和全大寫(upper)。如下所示:
注意:初始字元串沒被改變。
你會經常見到這種用法。變數名後跟點和操作名稱,且後跟一組圓括弧。圓括弧里可能是空的,也可能包含一些數據。
variable_name.action()
在這個例子中, action 是一個 方法 的名字。 title , lower , upper 是內置在 Python 中的函數,可以作用於字元串的方法。
連接字元串
字元串連接示例如下所示:
加號連接兩個字元串。你可以使用任意個加號來連接字元串。
格式化字元串簡介
空白符
空白符通常指計算機能夠發現但不可見的字元。諸如空格,製表符,換行符等。
空格很容易創建,基本上在你擁有計算機的時候就會打出空格符。製表符和換行符是由特殊字元連接組成的。
“\t” 代表製表符,”\n” 代表換行符。你可以將它們添加進字元串的任意部分。
去除空白符
有時候我們想去除掉字元串開始或者結尾的空白符。Python 中有一些方法可以幫我們做到這點。如下所示:
lstrip 去除左側開端的空白符, rstrip 去除右端結尾的空白符, strip 去除兩端空白符。
看一個更清晰的例子,如下所示:
動手試一試
Someone Said
找一條自己喜歡的名言,存儲在變數。結合適當的介紹列印出來。例如:” Ken Thompson once said, ‘One of my most productive days was throwing away 1000 lines of code’ “。
First Name Cases
將你的姓存儲在一個變數中。
分別用 lowercase, Titlecase, UPPERCASE 三種方式列印姓。
Full Name
將你的名和姓存儲在不同的變數中,連接它們並列印。
Name Strip
將你的姓存儲在變數中。在姓的前後兩端至少各包含兩種空白符。
列印姓。
分別列印出去掉左側空白符,右側空白符,都去掉空白符的姓。
【python】求兩個字元串的公共字串?
題目:找出兩個字元串的最長公共字串,例如字元串「abccade」與字元串「dgcadde」的最長公共子串為「cad」。
分析:動態規劃法。通過把中間的比較結果記錄下來,從而可以避免字元的重複比較。:
首先定義二元函數(i,j):表示分別以s1[i],s2[j]結尾的公共子串的長度,顯然,f(0, j) = 0 (j = 0),f(i, 0) = 0(i = 0),那麼對於f(i +1, j + 1)而言,則有如下兩種取值:
(1) f(i + 1, j +1) = 0,當str1[i + 1] != str2[j + 1]時
(2)f(i + 1, j +1) = f(i, j) + 1,當str1[i + 1] == str2[j + 1]時
根據這個公式可以計算出f(i, j)(0= i=len(s1), 0 = j = len(s2),所有的值,從而可以找出最長的子串。
def getMaxSubStr(str1, str2):
len1 = len(str1)
len2 = len(str2)
sb = ”
maxs = 0 # 用來記錄最長公共子串的長度
maxI = 0 # 用來記錄最長公共字串最後一個字元的位置
# 申請新的空間來記錄公共字串長度信息
M = [([None] * (len1 + 1)) for i in range(len2 + 1)]
i = 0
while i len1 + 1:
M[i][0] = 0
i += 1
j = 0
while j len2 + 1:
M[0][j] = 0
j += 1
# 通過利用遞歸公式填寫新建得二維數組(公共字串得長度信息)
i = 1
while i len1 + 1:
j = 1
while j len2 + 1:
if list(str1)[i – 1] == list(str2)[j – 1]:
M[i][j] = M[i – 1][j – 1] + 1
if M[i][j] maxs:
maxs = M[i][j]
maxI = i
else:
M[i][j] = 0
j += 1
i += 1
i = maxI – maxs
while i maxI:
sb = sb + list(str1)[i]
i += 1
return sb
if __name__ == “__main__”:
str1 = ‘abccade’
str2 = ‘dgcadde’
print(getMaxSubStr(str1, str2))
程序運行結果:
cad
為什麼Python 可以使用 + 把兩個字元串連接成一個字元串
這是python中的字元串的功能。其實當使用加號運算符的時候會調用這個類的__add__()函數,這個函數是每個類都有的,對於自定義的類,不重寫這個方法,+這個運算符就沒作用。你也可以重寫這個運算符來得到不同的功能。以下是示例代碼。class vector: def __init__(self,x=0,y=0): self.x=x self.y=y def __add__(self, other):#重載__add__方法,可以實現+法運算 if isinstance(other,vector): return vector(self.x+other.x,self.y+other.y) else: raise TypeError(‘other parameter must be a vector’) va=vector(3,5)vb=vector(4,6)vc=va+vbprint(‘vc.x=%s;vc.y=%s’%(vc.x,vc.y))
python 兩組字元串取不同 演算法
演算法如下:
#!/usr/bin/python
import difflib
text1 = “””
text1:
This module provides classes and functions for comparing sequences.
including HTML and context and unified diffs.
difflib document v7.4
add string
“””
text1_lines = text1.splitlines()
text2 = “””
text2:
This module provides classes and functions for Comparing sequences.
including HTML and context and unified diffs.
difflib document v7.5″””
text2_lines = text2.splitlines()
d = difflib.Differ()
diff = d.compare(text1_lines, text2_lines)
print (‘\n’.join(list(diff)))
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/192827.html