您的位置:

python字符串两个字符,python2 字符串

本文目录一览:

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)))