`

python字符串使用总结

阅读更多

1.python 字符串通常有单引号('...')、双引号("...")、三引号("""...""")或('''...''')包围,三引号包含的字符串可由多行组成,一般可表示大段的叙述性字符串。在使用时基本没有差别,但双引号和三引号("""...""")中可以包含单引号,三引号 ('''...''')可以包含双引号,而不需要转义。


2.用(\)对特殊字符转义,如(\)、(')、(")。

3.常用字符串函数
1)str.count() //返回该字符串中某个子串出现的次数
2)str.find()   //返回某个子串出现在该字符串的起始位置
3)str.lower() //将该字符串全部转化为小写
4)str.upper() //转为大写
5)str.split() //分割字符串,返回字串串列表,默认以空格分割
6)len(str)     //返回字符串长度
例如:
>>> str = 'Hello, world'
>>> str.count('o')
>>> 2
>>> str.find('lo')
>>> 3
>>> str.lower()
>>> 'hello, world'
>>> str.upper()
>>> 'HELLO, WORLD'
>>> str.split()
>>> ['Hello,', 'world']
>>> str.split(',')
>>> ['Hello', ' world']
>>> len(str)
>>> 13
>>> str
>>> 'Hello, world'
以上所有操作都不会改变字符串本身!
4.字符串与数字相互转换
import string
string.atoi(str[,base]) //base为可选参数,表示将字符转换成的进制类型
数字转换成字符串可简单了,直接用str()
5.字符与ASCII转换
char->ascii ord()
   ascii->char chr()

======================================================================
#Python字符串操作
'''1.复制字符串'''
#strcpy(sStr1,sStr2)
sStr1 = 'strcpy'
sStr2 = sStr1
sStr1 = 'strcpy2'
print sStr2
'''2.连接字符串'''
#strcat(sStr1,sStr2)
sStr1 = 'strcat'
sStr2 = 'append'
sStr1 += sStr2
print sStr1
'''3.查找字符'''
#strchr(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'r'
nPos = sStr1.index(sStr2)
print nPos
'''4.比较字符串'''
#strcmp(sStr1,sStr2)
sStr1 = 'strchr'
sStr2 = 'strch'
print cmp(sStr1,sStr2)
'''5.扫描字符串是否包含指定的字符'''
#strspn(sStr1,sStr2)
sStr1 = '12345678'
sStr2 = '456'
#sStr1 and chars both in sStr1 and sStr2
print len(sStr1 and sStr2)
'''6.字符串长度'''
#strlen(sStr1)
sStr1 = 'strlen'
print len(sStr1)
'''7.将字符串中的小写字符转换为大写字符'''
#strlwr(sStr1)
sStr1 = 'JCstrlwr'
sStr1 = sStr1.upper()
print sStr1
'''8.追加指定长度的字符串'''
#strncat(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = 'abcdef'
= 3
sStr1 += sStr2[0:n]
print sStr1
'''9.字符串指定长度比较'''
#strncmp(sStr1,sStr2,n)
sStr1 = '12345'
sStr2 = '123bc'
= 3
print cmp(sStr1[0:n],sStr2[0:n])
'''10.复制指定长度的字符'''
#strncpy(sStr1,sStr2,n)
sStr1 = ''
sStr2 = '12345'
= 3
sStr1 = sStr2[0:n]
print sStr1
'''11.字符串比较,不区分大小写'''
#stricmp(sStr1,sStr2)
sStr1 = 'abcefg'
sStr2 = 'ABCEFG'
print cmp(sStr1.upper(),sStr2.upper())
'''12.将字符串前n个字符替换为指定的字符'''
#strnset(sStr1,ch,n)
sStr1 = '12345'
ch = 'r'
= 3
sStr1 = n * ch + sStr1[3:]
print sStr1
'''13.扫描字符串'''
#strpbrk(sStr1,sStr2)
sStr1 = 'cekjgdklab'
sStr2 = 'gka'
nPos = -1
for c in sStr1:
    if c in sStr2:
         nPos = sStr1.index(c)
        break
print nPos

'''14.翻转字符串'''
#strrev(sStr1)
sStr1 = 'abcdefg'
sStr1 = sStr1[::-1]
print sStr1
'''15.查找字符串'''
#strstr(sStr1,sStr2)
sStr1 = 'abcdefg'
sStr2 = 'cde'
print sStr1.find(sStr2)
'''16.分割字符串'''
#strtok(sStr1,sStr2)
sStr1 = 'ab,cde,fgh,ijk'
sStr2 = ','
sStr1 = sStr1[sStr1.find(sStr2) + 1:]
print sStr1

 

 

 

 

 

首先要搞清楚,字符串在Python内部的表示是unicode编码.

因此,在做编码转换时,通常需要以unicode作为中间编码,即先将其他编码的字符串解码(decode)成unicode,再从unicode编码(encode)成另一种编码。

 

decode的作用是将其他编码的字符串转换成unicode编码,

如str1.decode('gb2312'),表示将gb2312编码的字符串转换成unicode编码。

 

encode的作用是将unicode编码转换成其他编码的字符串,

如str2.encode('gb2312'),表示将unicode编码的字符串转换成gb2312编码。

 

在某些IDE中,字符串的输出总是出现乱码,甚至错误,其实是由于IDE的结果输出控制台自身不能显示字符串的编码,而不是程序本身的问题。

 

如在UliPad中运行如下代码:

s=u"中文"

print s

会提示:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-1: ordinal not in range(128)。

这是因为UliPad在英文WindowsXP上的控制台信息输出窗口是按照ascii编码输出的(英文系统的默认编码是ascii),而上面代码中的字符串是Unicode编码的,所以输出时产生了错误。

 

将最后一句改为:print s.encode('gb2312') 则能正确输出“中文”两个字。

 

若最后一句改为:print s.encode('utf8') 则输出:\xe4\xb8\xad\xe6\x96\x87,

这是控制台信息输出窗口按照ascii编码输出utf8编码的字符串的结果。

 

另外,代码中字符串的默认编码与代码文件本身的编码一致,

如: s='中文' 如果是在utf8的文件中,该字符串就是utf8编码,如果是在gb2312的文件中,则其编码为gb2312。这种情况下,要进行编码转换,都需要先用decode方法将其转换成unicode编码,再使用encode方法将其转换成其他编码。

 

通常,在没有指定特定的编码方式时,都是使用的系统默认编码创建的代码文件,在这篇文章中可以看到如何获得系统的默认编码。

 

如果字符串是这样定义: s=u'中文' 则该字符串的编码就被指定为unicode了,即python的内部编码,而与代码文件本身的编码无关。

 

因此,对于这种情况做编码转换,只需要直接使用encode方法将其转换成指定编码即可。

如果一个字符串已经是unicode了,再进行解码则将出错,

 

因此通常要对其编码方式是否为unicode进行判断:

isinstance(s, unicode) #用来判断是否为unicode

 

 

分享到:
评论
1 楼 pako 2010-01-20  
蛮详细的,定个

相关推荐

    Python 字符串深度总结_Python 字符串深度总结

    本文将对Python字符串进行深入探讨,涵盖其基本概念、操作方法以及高级特性。 一、字符串定义与创建 在Python中,字符串是由单引号或双引号括起来的字符序列。例如: ```python str1 = 'Hello, World!' str2 = ...

    python中字符串比较使用is、==和cmp()总结

    在 Python 中比较字符串最好是使用简单逻辑操作符。 例如,确定一个字符串是否和另外一个字符串匹配。正确的,你可以使用 is equal 或 == 操作符。你也可以使用例如 >= 或 < 来确定几个字符串的排列顺序。 从...

    python字符串处理实例总结.pdf

    Python 字符串处理实例总结 Python 中的字符串处理是指对字符串进行各种操作和处理的过程。字符串是 Python 中最基本的数据类型之一,字符串可以是用单引号或双引号括起来的任何文本。在 Python 中,字符串可以使用...

    python字符串的使用方法.docx

    下面我们将深入探讨Python字符串的使用方法。 **创建字符串** 创建字符串的方式有很多种。可以用单引号(' ')、双引号(" ")或三引号(""" """)括起字符。例如: ```python str1 = 'Hello, World!' str2 = "Hello, ...

    python正则表达式匹配不包含某几个字符的字符串方法

    最后,我们来总结一下使用Python正则表达式匹配不包含某几个字符的字符串需要注意的几个关键点: 1. 理解正则表达式的基本组成,包括元字符、量词、分组等; 2. 熟悉如何通过使用否定字符集`[^...]`来排除不想匹配的...

    python3字符串

    本文详细介绍了Python3中字符串的基本概念、访问方式、更新方法、转义字符的使用、运算符的运用以及字符串格式化的技巧。通过这些知识点的学习,读者能够更加熟练地掌握Python中的字符串处理技巧,并能应用于实际...

    模块7Python字符串与正则表达式.pptx

    Python 字符串与正则表达式知识点总结 Python 字符串是 Python 编程语言中最基本的数据类型之一, Plays 一个重要的角色。字符串是用来表示文本信息的,可以是英文、中文、数字、符号等。在 Python 中,字符串可以...

    Python字符串切片操作知识详解

    ### Python字符串切片操作知识详解 #### 一、基本概念 在Python中,字符串切片是一种非常实用且强大的工具,用于从字符串中提取特定部分的数据。字符串是不可变的序列类型,这意味着一旦创建了一个字符串,就不能...

    Python123之字符串压缩#134865

    总结,Python提供了丰富的压缩库,使得在处理字符串和文件时可以轻松实现数据压缩,从而节约存储空间。了解并熟练掌握这些库的使用,将有助于在实际项目中优化数据存储和传输效率。在实践过程中,应根据实际需求权衡...

    03-python-数组属性方法总结-数组与字符串的转换-生成数组的函数-矩阵

    以上是关于Python数组属性和方法、数组与字符串转换、生成数组的函数以及矩阵的基本知识总结。通过理解和掌握这些内容,可以更高效地处理和分析数据,为编程实践打下坚实基础。在实际操作中,可以参考提供的IPython ...

    Python3倒序输出字符串的N种方法(含代码和介绍)

    ### Python3倒序输出字符串的多种方法 在Python编程中,倒序输出字符串是一个常见的需求。本文将详细介绍几种实现字符串倒序的方法,并提供相应的代码示例。这些方法不仅能够帮助初学者快速掌握如何操作字符串,...

    Python用递归实现字符串反转

    ### Python用递归实现字符串反转 #### 知识点概览 1. **递归的基本概念** 2. **Python中的递归函数实现** 3. **字符串处理与操作** 4. **递归在字符串反转中的应用** 5. **递归调用的深度限制问题** #### 递归的...

    python字符串处理实例.docx

    ### Python字符串处理技巧详解 #### 一、Python中的清屏指令 在Python中,可以通过调用`os`模块中的`system`方法来实现控制台的清屏操作。 ```python import os os.system('cls') # 在Windows操作系统中 ``` 此命令...

    在字符串中找出连续最长的数字串+

    总结,找出字符串中连续最长的数字串并输出其长度,是字符串处理中的一个基础问题,它涉及到字符串遍历、条件判断和动态规划等编程技巧。通过学习和实践这类问题,可以提高对字符串操作的理解和编程能力。

    Python字符串的全排列算法实例详解

    ### Python字符串的全排列算法实例详解 #### 一、引言 在计算机科学中,全排列问题是一个常见的问题,尤其在解决密码学、组合优化等领域时尤为重要。全排列指的是从给定的一些元素中取出全部元素进行排列的方式。...

    python字符串的拼接方法总结

    这篇文章主要介绍了python字符串的拼接方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 加号连接 1.通过+号连接起来 逗号连接 2.通过都好连接起来 ...

    Python3字符串学习教程

    通过本教程的学习,你应该能够理解 Python3 中字符串的基本概念和使用方法,掌握了字符串的创建、连接、操作以及与之相关的内置函数和模块。这些技能对于编写高效且可维护的 Python 代码至关重要。未来的学习中,你...

    python源码字符串处理技术

    在这个过程中,了解Python字符串处理技术的深入应用对于实现功能至关重要。掌握这些技能不仅对于进行字符串的日常处理有帮助,而且在数据处理、网络编程、文件操作等多个领域也都是不可或缺的。 总结起来,Python...

    Python字符串对象实现原理详解

    总结起来,Python字符串对象的实现原理涉及到内存管理策略、对象结构优化以及性能上的考虑。通过对字符串的高效管理和内存分配,Python能够在保持动态语言灵活性的同时,提供对字符串的高效处理。

    python 将list转成字符串,中间用符号分隔的方法

    总结一下,在Python中将list转换为字符串并在元素之间插入分隔符的方法主要依赖于字符串的`join()`方法。这是一种简单、高效且灵活的方式。在使用时,需要确保所有列表元素均被转换为字符串类型,同时注意编码设置以...

Global site tag (gtag.js) - Google Analytics