精华内容
下载资源
问答
  • 更多相关内容
  • Python字符串使用详解

    千次阅读 多人点赞 2021-12-13 14:10:29
    除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出来。 字符串是一种数据结构,这让我们有机会学习索引和切片——用于从...

    除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显示出来。 字符串是一种数据结构,这让我们有机会学习索引和切片——用于从字符串中提取子串的方法。

    1 字符串索引

    在Python语法支持中,我们简单的阐述过字符串的使用,现在我们看看python程序在处理字符串时,如何对其进行索引,打印出其中的每个字符串。我们输入一个字符串:'你好,Lucky',Python使用方括号 [] 来对字符串进行索引,方括号内的数字 0~n 表示将要获取的字符串,如图1-1所示,sting[0~7]分别对应不同的值,最小的字符换索引为0,最大的字符串索引比字符串长度小1

     如果 string 指向一个长度为 n 的字符串, 则 string[0] 为第一个字符,string[1] 为第二个字符, string[2] 为第三个字符,依此类推。string[n-1] 为最后一个字符。

    当然,在上面的示例中,string[8]索引超出了字符串的末尾,导致的错误提示,这点需要注意。Python索引为何从0开始?我们这样理解便可: 索引值用于测量与字符串第一个字符相隔的距离, 就像一把尺子(其刻度也是从零开始)。这 让有些索引计算更简单,也与函数 %(求余) 一致。% 经常用于索引计算,自然也可能返回 0。

    实际应用中,往往不会只用到正向索引(本文理解从左向右),当你需要访问字符串的最后一个字符时,也可以使用正向表达式,但字符串过长时明显不便,所以Python提供了一种方面的索引方式:从右向左(负数索引)来表示。如下:字符串的最后一个字符为 string[-1],其索引过程即可按照图1-1进行修改,此处不做阐述。

    1.1 循环索引字符

    假如需要依次访问字符串的每个字符,需要计算出所给字符串的编码总和,对比两种代码方法,如下图实现及结果,第一种codesum1()函数: 使用 for 循环时,在循环的每次迭代开头,都会将循环变量 c 设置为 s 中的 下一个字符。使用索引访问 s 中字符的工作由 for 循环自动处理。

    第二种codesum2()函数使用了常规访问s中字符的方法,对比codesum1()函数可以发现,虽然二者计算结果一致,但第二种函数的代码明显较为复杂,理解程度上稍微差一些。当然,这是多数人的理解,有些人可能觉得第二种实现更好一些。

    def codesum1(s):
        total = 0
        for c in s:
            total = total + ord(c)
        return total
    
    def codesum2(s):
        total = 0
        for i in range(len(s)):
            total = total + ord(s[i])
        return total

    2 字符使用

    在所有编程语言中,字符串都是由字符所组成,而所有字符都有对应的字符编码与之相对应。在Python中,我们可以使用ord()函数来学习。ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数,它以一个字符(长度为1的字符串)作为参数,返回对应的 ASCII 数值,或者 Unicode 数值,如果所给的 Unicode 字符超出了你的 Python 定义范围,则会引发一个 TypeError 的异常。

    关于Unicode做一个简单的背景介绍: Unicode 提供了一个大得多的字符编码集。出于方便考虑,Unicode 的前 256 个 字母为 ASCII 码,因此如果你只处理英文字符,几乎不用考虑 Unicode 的细节。

    >>> ord('a')
    97
    >>> ord('b')
    98
    >>> ord('c')
    99
    

     给定字符编码,可使用函数 chr 来获悉对应的字符:

    >>> chr(99)
    'c'
    >>> chr(98)
    'b'
    >>> chr(97)
    'a'
    

    字符编码是根据Unicode分配的,而Unicode是一个庞杂的编码标准,涵盖了全球各种语言中的符号和字符,使用十分广泛 。并非所有字符都有可视的标准符号。例如,换行字符、回车字符和制表符都是不可见的,虽然它们带来的效果可见。这些字符属于空白字符——在印刷页面上显示为空白。 如下表:

    转义字符

    描述

    \(在行尾时)

    续行符

    \\

    反斜杠符号

    \'

    单引号

    \"

    双引号

    \a

    响铃

    \b

    退格(Backspace)

    \e

    转义

    \000

    \n

    换行

    \v

    纵向制表符

    \t

    横向制表符

    \r

    回车

    \f

    换页

    \oyy

    八进制数,y 代表 0~7 的字符,例如:\012 代表换行。

    \xyy

    十六进制数,以 \x 开头,yy代表的字符,例如:\x0a代表换行

    \other

    其它的字符以普通格式输出

    举两个个简单的常用示例:

    1. 在 Python 中,表示换行的标准方式是使用字符 \n:

    2. 在字符串中包含反斜杠、单引号和双引号,通常需要使用对应的转义字符:

    转义字符是单个字符, 为让 Python 知道下一个字符是特殊字符, 必须使用 \,但在计算字符串的长度时,并不将 \ 视为额外的字符。例如:

    在使用转义字符时,还有一点需要特别注意的是:在表示文本行末尾方面,不同操作系统遵循的标准是不同的。Windows 使 用 \r\n 表示行尾,OS X 和 Linux 使用 \n, 而 OS X 之前的 Mac 操作系统使用 \r。

    2.1 字符串运算

    数字有其标准的运算方式,字符串同样也有着一定的运算。下面来看下字符串的运算符。

    操作符

    描述

    +

    字符串连接

    *

    重复输出字符串

    []

    通过索引获取字符串中字符

    [ : ]

    截取字符串中的一部分

    in

    成员运算符 - 如果字符串中包含给定的字符返回 True

    not in

    成员运算符 - 如果字符串中不包含给定的字符返回 True

    r/R

    原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。

    示例 :

    1.x和y分别赋值字符串;

    >>> x = "I am coming"
    >>> y = "Python Language"

    3 字符串切片

    在 Python 中,可使用切片从字符串中提取子串。要对字符串执行切片操作,可指定两个索引:要提取的第一个字符的索引;要提取的最后一个字符的索引加 1。例如:

    用于切片的索引与用于访问各个字符的索引相同:第一个索引总是为零,而最后一个索引总是比字符串长度小 1。一般而言,string[begin:end]返回从索 引 begin 到 end-1 的子串。注意:如果 string 是一个字符串,则要访问索引 i 对应的字符,可使用 string[i] 或 string[i:i+1]。

    3.1 切片方法

    如果想要省略字符串的起始索引,Python将假定为0;如果需要省略字符串的终止索引,Python 会假设你要提取到字符串末尾。

    实用示例:取值文件名中的扩展名。

    def get_ext(fname):
        dot = fname.rfind('.')
        if dot == -1: # fname 中没有
            return ''
        else:
            return fname[dot + 1:]

    注意第一处标红需要加引号好,第二处输入的文件名没有扩展名,故没有返回值。该函数的实现过程:确定最右边的 '.' 的索引(因此使用 rfind 从右往左查 找);如果 fname 不包含 '.',则返回一个空字符串,否则返回 '.' 后面的所有字符。

    在索引字符串时所讲述的正向、负向索引同样可以应用于切片中。

    使用负数索引时,这样做通常会有所帮助:将字符串写到纸上,再标出每个字符的正索引和负索引,就像图 1-1 那样。虽然这样做确实需要多用一两分钟时间,但可以很好地避免常见的索引错误。

    4 字符串格式化

    Python 支持格式化字符串的输出 。这会用到一个较为复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

    >>> print("我最喜欢的食物是%s,它的热量是%d千焦" %('hot dog',3500))
    我最喜欢的食物是hot dog,它的热量是3500千焦

    我们将python字符串格式化符号整理如下:标红为字符串格式化中的辅助指令

    符 号

    描述

    %c

    格式化字符及其ASCII码

    %s

    格式化字符串

    %d

    格式化整数

    %u

    格式化无符号整型

    %o

    格式化无符号八进制数

    %x

    格式化无符号十六进制数

    %X

    格式化无符号十六进制数(大写)

    %f

    格式化浮点数字,可指定小数点后的精度

    %e

    用科学计数法格式化浮点数

    %E

    作用同%e,用科学计数法格式化浮点数

    %g

    %f和%e的简写

    %G

    %F 和 %E 的简写

    %p

    用十六进制数格式化变量的地址

    *

    定义宽度或者小数点精度

    -

    用做左对齐

    +

    在正数前面显示加号( + )

    <sp>

    在正数前面显示空格

    #

    在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

    0

    显示的数字前面填充'0'而不是默认的空格

    %

    '%%'输出一个单一的'%'

    (var)

    映射变量(字典参数)

    m.n.

    m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

    示例:

    对于Python字符串格式化的输出,可以通过上述几个例子体验一下字符串区别与基本使用。Python本身已经自带了许多很有用的函数模块,简化了字符串的使用,增强了其功能。后面,我们会对Python的字符串函数以及正则使用做较为详细的阐述。

    Python强大的语法支持_涤生手记大数据-CSDN博客

    流程控制之python_涤生手记大数据-CSDN博客

    Python的函数使用_涤生手记大数据-CSDN博客

    Python:变量、参数、模块_涤生手记大数据-CSDN博客

    展开全文
  • python字符串

    千次阅读 2020-12-20 13:41:13
    1、字符串是字符的序列,python字符串的表达方式有以下几种:(1)使用单引号(’)'Hello,lily'(2)使用双引号(")”Hello,lily“(3)使用三引号(''')'''Hello,lily'''三引号有一点区别上面两点的功能是:能标记多行字符...

    1、字符串是字符的序列,python中字符串的表达方式有以下几种:

    (1)使用单引号(’)

    'Hello,lily'

    (2)使用双引号(")

    ”Hello,lily“

    (3)使用三引号(''')

    '''Hello,lily'''

    三引号有一点区别上面两点的功能是:能标记多行字符串,比如:

    '''hello,

    my name is lucy,

    what's your name?

    '''

    2、字符串中的转义字符使用

    (1)如果一个字符串中含有单引号,还是用单引号来标记,那么字符串中的单引号必须用(\)来转义,否则Pyt hon会弄不明白这个字符串从何处开始,何处结束。

    ‘what\'s your name?’

    还有一种方法是可以用双引号标记,这样就不需要转义符:

    "what's your name?"

    (2)要在双引号字符串中使用双引号本身的时候,也可以借助于转义符。另外,你可以用转义符\\来指示反斜杠本身。

    (3)在一个字符串中,行末的单独一个反斜杠表示字符串在下一行继续,而不是开始一个新的行。例如:

    "This is the first sentence. \

    This is the second sentence. "

    4、unicode字符串

    Unicode是书写国际文本的标准方法。如果你想要用你的母语如北印度语或阿拉伯语写

    文本,那么你需要有一个支持Unicode的编辑器。类似地,Python允许你处理Unicode文

    本——你只需要在字符串前加上前缀u或U 。例如,u"This is a Unicode string. "。

    记住,在你处理文本文件的时候使用Unicode字符串,特别是当你知道这个文件含有用

    非英语的语言写的文本。

    5、字符串是不可变的。一旦你创造了一个字符串,你就不能再改变它了

    6、按字面意义级连字符串。

    如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,' What \' s'

    ' your name?' 会被自动转为"What 's your name?"。

    展开全文
  • 字符串本质上就是由多个字符组成的,Python 允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。Python 字符串直接在方括号([])中使用索引即可获取对应的字符,其基本语法格式为...

    字符串本质上就是由多个字符组成的,Python 允许通过索引来操作字符,比如获取指定索引处的字符,获取指定字符在字符串中的位置等。

    Python 字符串直接在方括号([])中使用索引即可获取对应的字符,其基本语法格式为:string[index]

    这里的 string 表示要截取的字符串,index 表示索引值。

    【例1】s = 'crazyit.org is very good'

    # 获取s中索引2处的字符

    print(s[2]) # 输出a

    # 获取s中从右边开始,索引4处的字符

    print(s[-4]) # 输出g

    Python 规定,字符串中第一个字符的索引为 0、第二个字符的索引为 1,后面各字符依此类推。此外,Python 也允许从后面开始计算索引,最后一个字符的索引为 -1,倒数第二个字符的索引为 -2,依此类推。

    除可获取单个字符之外,Python 也可以在方括号中使用范围来获取字符串的中间“一段”(被称为子串),其基本语法格式为:string[start : end : step]

    此格式中,各参数的含义如下:

    string:要截取的字符串;

    start:表示要截取的第一个字符所在的索引(截取时包含该字符)。如果不指定,默认为 0,也就是从字符串的开头截取;

    end:表示要截取的最后一个字符所在的索引(截取时不包含该字符)。如果不指定,默认为字符串的长度;

    step:指的是从 start 索引处的字符开始,每 step 个距离获取一个字符,直至 end 索引出的字符。step 默认值为 1,当省略该值时,最后一个冒号也可以省略。

    【例2】基本用法s = 'crazyit.org is very good'

    # 获取s中从索引3处到索引5处(不包含)的子串

    print(s[3: 5]) # 输出 zy

    # 获取s中从索引3处到倒数第5个字符的子串

    print(s[3: -5]) # 输出 zyit.org is very

    # 获取s中从倒数第6个字符到倒数第3个字符的子串

    print(s[-6: -3]) # 输出 y g

    #每隔 1 个,取一个字符

    print(s[::2]) # 输出 caytogi eygo

    【例 3】 start、end 以及 step 都可以省略。# 获取s中从索引5处到结束的子串

    print(s[5: ]) # 输出it.org is very good

    # 获取s中从倒数第6个字符到结束的子串

    print(s[-6: ]) # 输出y good

    # 获取s中从开始到索引5处的子串

    print(s[: 5]) # 输出crazy

    # 获取s中从开始到倒数第6个字符的子串

    print(s[: -6]) #输出crazyit.org is ver

    此外,Python 字符串还支持用 in 运算符判断是否包含某个子串。例如如下代码:# 判断s是否包含'very'子串

    print('very' in s) # True

    print('fkit' in s) # False

    还可使用全局内置的 min() 和 max() 函数获取字符串中最小字符和最大字符。例如如下代码:# 输出s字符串中最大的字符

    print(max(s)) # z

    # 输出s字符串中最大的字符

    print(min(s)) # 空格

    python的字符串截取案例str = ‘0123456789’

    print str[0:3] #截取第一位到第三位的字符

    print str[:] #截取字符串的全部字符

    print str[6:] #截取第七个字符到结尾

    print str[:-3] #截取从头开始到倒数第三个字符之前

    print str[2] #截取第三个字符

    print str[-1] #截取倒数第一个字符

    print str[::-1] #创造一个与原字符串顺序相反的字符串

    print str[-3:-1] #截取倒数第三位与倒数第一位之前的字符

    print str[-3:] #截取倒数第三位到结尾

    print str[:-5:-3] #逆序截取,具体啥意思没搞明白?

    对应的输出结果:012

    0123456789

    6789

    0123456

    2

    9

    9876543210

    78

    789

    96

    展开全文
  • python字符串追加字符Python string object is immutable. So every time we use + operator to concatenate two strings, a new string is created. Python字符串对象是不可变的。 因此,每次我们使用+运算符连接两...
  • python字符串替换

    千次阅读 2021-08-18 16:35:43
    返回字符串中的 old(旧字符串) 替换成 new(新字符串)后生成的新字符串,如果指定第三个参数max,则替换不超过 max 次。 示例 upcallbackfunstr = "\ char *func(char *oldpayload)\n\ {\n\ #define PAYLOAD_SIZE
  • Python字符串拼接

    千次阅读 2022-01-29 21:39:02
    1.使用加号"+"连接字符串 #示例1: id = "wwww." + "baidu." + "com" print(id) #运行结果: www.baidu.com 特别注意:不能用"+"连接字符串和数字,需要使用str()函数把数字转换成字符串,或者直接在数字两端加...
  • Python字符串 --Python3

    千次阅读 2021-02-09 20:02:22
    1、Python字符串的两种序号体系反向递减序号:…… -9 -8 -7 -6 -5 -4 -3 -2 -1正向递增序号:0 1 2 3 4 5 6 7 8 9……2、获取子串(切片)可以通过[N:M]格式获取字符串的字串(切片),获取字符串从N到M(不包含M)间连续...
  • python 字符串切片

    千次阅读 2022-03-31 11:05:08
    python 字符串切片
  • Python字符串检索

    千次阅读 2022-01-23 15:05:00
    用于检索指定字符串在另一个字符串中出现的次数。如果检索的字符串不存在,则返回0,否则返回出现的次数。 语法: str.count(sub[,start[,end]]) str:表示原字符串。 sub:表示要检索的字符串。 start:可选,...
  • python字符串赋值

    千次阅读 2021-01-13 09:00:27
    Python字符串是不可改变的对象(immutable... 示例代码如下: s = 'abcdefghijk' #原字符串l = list(s) #将字符串转换python如何把输出的字符串赋值给变量python 字符串 赋值给list怎么把字符串"['1.0','0.0','0....
  • Python字符串比较

    万次阅读 2020-09-15 23:43:13
    In this tutorial we are going to see different methods by which we can compare strings in Python. We will also see some tricky cases when the python string comparison can fail and golden rules to get ...
  • python字符串的查找

    千次阅读 2022-01-08 15:29:39
    python字符串的查找:
  • python字符串去掉空行There are various ways to remove spaces from a string in Python. This tutorial is aimed to provide a short example of various functions we can use to remove whitespaces from a ...
  • python字符串结束符

    千次阅读 2020-11-24 08:15:44
    python字符串结束符的更多内容_CSDN博客 2016-05-22 python 字符串末尾换行符处理 - qiqiaiairen的博客 - CSDN博... ...
  • 【python】python字符串中插入字符

    千次阅读 2021-12-24 13:55:45
    废话不多说,直接上demo。 s1 = "2021.12.2415:28:00" t1 = list(s1) t1.insert(1,'e') # 1的位置插入'e' s1_new = ''.join(t1) # 连接起来 print(s1_new) '2e021.12.2415:28:00' s2 = "2021.12.2415:28:00" ...
  • python字符串排序方法

    千次阅读 2022-02-24 08:08:21
    一般情况下,python中对一个字符串排序相当麻烦: 一、python中的字符串类型是不允许直接改变元素的。必须先把要排序的字符串放在容器里,如list。 二、python中的list容器的sort()函数没返回值。 所以在python中...
  • Python字符串转数字

    万次阅读 2022-04-06 10:00:24
    把二进制,八进制,十六进制转化为数字,python也提供了内置函数,非常方便,用法分别如下: num1 = int(binaryString,2) num2 = int(octonaryString,8) num3 = int(hexadecimalString,16) ...
  • Python字符串分割方法总结

    千次阅读 2021-01-14 23:06:15
    Python字符串分割的常用方法是直接调用字符串的str.split方法,但是其只能指定一种分隔符,如果想指定多个分隔符拆分字符串需要用到re.split方法(正则表达式的split方法)。str.split字符串的split方法函数原型如下...
  • python 字符串指定位置插入字符串

    千次阅读 2022-04-06 02:03:19
    python 字符串指定位置插入字符串
  • python字符串反转方法_用Python反转字符串的5种方法

    千次阅读 多人点赞 2020-09-14 14:51:43
    python字符串反转方法Hello everyone, in this tutorial we’ll see different ways to reverse string in Python. 大家好,在本教程中,我们将看到在Python中反转字符串的不同方法。 As we know, we can reverse ...
  • python字符串的比较

    千次阅读 2020-11-10 19:01:17
    关于其中字符串类型id引用驻留机制见python中的字符串的驻留机制 字符串的比较操作: 运算符:>,>=,<,<=,==,!= 比较规则:首先比较两个字符串中的第- -个字符,如果相等则继续比较下一个字符,依次...
  • python字符串相减

    万次阅读 2020-11-19 19:31:41
    我们都知道在Python中,两个字符串相加会自动拼接字符串,但遗憾的是两个字符串相减却抛出异常。现在定义一个Nstr类,支持字符串的相减操作:A-B,即从A中去除所有B的子字符串。请编写相应的程序。 思路 在Nstr类内...
  • 我们见过书写字符串的一种特殊方式,即直接将两个字符串紧挨着写在一起,这样的话Python就会自动拼接它们,比如说:s1="Hello,"'Charlie'print(s1)上面代码将会输出:Hello,Charlie其实,这种写法只是书写字符串的一...
  • python字符串大小写转换

    千次阅读 2022-04-25 15:28:07
    python中,为了方便字符串的大小写转换,为我们提供了三种方法: title() lower() upper() python title()方法 title()方法用于将字符串中的每个单词的首字母大写,其他字母全部转换成小写。如果没有需要被转换的...
  • Python字符串join()方法

    千次阅读 多人点赞 2020-07-11 01:14:52
    Python string join() method creates a string from an iterable. It joins all the iterable ... Python字符串join()方法从可迭代对象创建一个字符串。 它将所有可迭代的元素与字符串作为分隔符相连并返回它...
  • Python字符串拼接的四种方法

    千次阅读 2022-04-19 19:42:56
    下面介绍一下Python语言中四种字符串拼接的方式。 1. 算术运算符拼接 在Python中算术运算符一共有七种种,分别是+、-、*、/、//、**和%。其中+和*不仅可以用来进行算数计算,也可以用来字符串拼接。 (1)+算术...
  • python字符串转为列表

    万次阅读 2022-03-21 11:09:42
    python字符串转为列表int
  • python字符串去掉空行 如何在python中删除字符串中的空格 (How to remove whitespaces in a string in python) str.lstrip() str.lstrip() str.rstrip() str.rstrip() str.strip() str.strip() str.replace() str....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,036,232
精华内容 414,492
关键字:

python 字符串