`

python的字符串

阅读更多
虽然也算勉强接触过几天了,但对python的了解还是很少的,今天看了一个pythonchallenge的过关挑战,做起来很费劲,第0关是参考别人的方法过的,到了第一关,也花了一上午,但是只翻译了那密文成明文,根本就不知道有个str.maketrans这个方法,所以就不知道怎么做了,而且python虽然有个文档,但没有发现像JAVA一样的API,因此只得参考网上的实现,最后看了一下官方的实现,比较好:

import string
text="""g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr
amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q
ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.
lmu ynnjw ml rfc spj."""
table = str.maketrans(string.ascii_lowercase,
string.ascii_lowercase[2:]+string.ascii_lowercase[:2])
s=str.translate(text,table)
print(s)


这里有个maketrans(from,to),把from相应位置的字符替换成to相应位置的字符,因此这个两个字符串的个数要相等。translate则是将maketrans定义的规则用于具体的字符串中。"""三个引用表示多行文本。

新版3.1中,有个bytes.translate(table[, delete])与bytes.maketrans(from, to) 方法取代了str.translate(table[, delete])、str.maketrans(from, to),bytes拥有str的所有方法,其实bytes到底有多大用,目前还不清楚,有可能是为了国际化吧,上面的代码可以改成这样:

import string
text="""g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr
amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q
ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.
lmu ynnjw ml rfc spj."""
table=bytes.maketrans(bytes(string.ascii_lowercase,encoding="utf-8"),
bytes(string.ascii_lowercase[2:]+string.ascii_lowercase[:2],encoding="utf-8"))
s=bytes.translate(bytes(text,encoding="utf-8"),table)
print(s)

可以看出,出了多了个字节编码以外,没什么不同的。

还有一种方法也非常好:

s="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.  lmu ynnjw ml rfc spj."
o=""
for x in s:
	if ord(x)>=ord('a') and ord(x)<=ord('z'):
		o+=chr((ord(x)+2-ord('a'))%26+ord('a'))
	else:
		o+=x
print o


chr()方法作用是把相应的ascii码转换成字符,ord()表示将字符转换成相应的ascii。如果需要遍历索引可以这样for i,x in enumerate(s):...

关于str有些比较灵活的用法:
seq[start]
seq[start:end]
seq[start:end:step]
其实这种方式也适用于list,tuple(数组),如果省略了start,则默认为0,如果省略了end,则默认为len(s),因此s[:]与s[0:len(s)]是一样的,而step有点让人迷惑,如果要用上面的第三种方式,step的值是不能省略,表示跨度的意思,如s="abcdefg",则s[::2]='aceg',在,且step出可以为负数,如s[::-1]='gfedcba'。

值得注意的是,如果用ruby,代码更加简单:
text="g fmnc wms bgblr rpylqjyrc gr zw fylb. rfyrq ufyr
amknsrcpq ypc dmp. bmgle gr gl zw fylb gq glcddgagclr ylb rfyr'q
ufw rfgq rcvr gq qm jmle. sqgle qrpgle.kyicrpylq() gq pcamkkclbcb.
lmu ynnjw ml rfc spj."
text.tr('a-z','c-zab')



有空又看了一下第2关,这一关也是关于字符串的处理,就是把源代码中那些很多的散乱字符去掉就行了,直接把段字符复制放在一个文件sr.txt中,去掉相应的非法字符即可:

import string
text=open('e:/sc.txt').read()
bytes(text,encoding="utf-8").translate(None,bytes(string.punctuation+"\n",encoding="utf-8"))

这道题有很多中解法,有空再贴出来。

使用ruby也很简单:

s=open('e:/sc.txt').read()
p s.scan(/[a-z]/).join()

分享到:
评论

相关推荐

    C语言字符串转换为Python字符串的方法

    主要介绍了C语言字符串转换为Python字符串的方法,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以了解下

    python字符串处理实例.docx

    Python 字符串处理实例 Python 中的字符串处理是 Python 编程语言中非常重要的一部分。字符串是 Python 中最基本的数据类型之一,它可以表示文本、数字、符号等。 Python 提供了多种字符串处理方法,本文将对 ...

    python字符串str和字节数组相互转化方法

    实例如下: # bytes object b = bexample # str object s = example ...以上这篇python字符串str和字节数组相互转化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

    Python字符串操作常用函数

    Python字符串操作常用函数,包含了检索、统计、分割、替换、大小写转换、对齐,空格删除、字符串判断(头尾+组成)

    python字符串学习笔记.python字符串操作方法.doc

    python字符串学习笔记.python字符串操作方法

    python字符串操作.pdf

    python字符串操作.pdf

    python字符串笔记.md

    python字符串学习笔记

    python 字符串.zip

    大熊课堂,关于 python 字符串的课件

    Python字符串调用方法及实例

    Python字符串调用方法解释(部分),因为本人使用的是3.1版,很多旧版的调用方法新版不支持,所以只有些基础的调用和代码运行的截图,比较适合和我一样的菜鸟级的童鞋观摩。

    python字符串, 列表, 字典, 集合方法说明

    python字符串, 列表, 字典, 集合方法说明

    python实现字符串模糊匹配

    Python 实现字符串模糊匹配 Python 是一种流行的编程语言,具有强大的字符串处理能力。字符串模糊匹配是字符串处理中的一种重要技术,用于解决字符串之间的相似度计算问题。在本文中,我们将介绍 Python 实现字符串...

    python字符串基本操作.docx

    python字符串基本操作 Python字符串基本操作 Python是一种高级编程语言,它支持多种数据类型,其中字符串是最常用的数据类型之一。字符串是由一系列字符组成的,可以包含字母、数字、符号等。在Python中,字符串是不...

    python字符串的使用方法.docx

    python字符串的使用方法 Python字符串的使用方法 Python是一种高级编程语言,它支持多种数据类型,其中字符串是最常用的数据类型之一。字符串是由一系列字符组成的,可以包含字母、数字、符号等。在Python中,字符串...

    Python 字符串操作方法大全

    python字符串操作实方法大合集,包括了几乎所有常用的python字符串操作,如字符串的替换、删除、截取、复制、连接、比较、查找、分割等,需要的朋友可以参考下。

    Python字符串使用和基本操作公开课.docx

    Python 字符串使用和基本操作 Python 字符串类型是 Python 中一种基本的数据类型,用于表示文本数据。字符串可以是拉丁字母、数字、标点符号、特殊符号,以及各种语言文字字符。字符串类型是 str,表示字符串可以...

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

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

    python 字符串定义

    Python 中的字符串是一种基本的数据类型,字符串实际上是一个有序的字符序列,字符是字符串中最小的单元,字符串是不可变的。下面将详细介绍 Python 中字符串的定义、索引、切片、常见操作等知识点。 字符串的定义 ...

    Python 字符串str详解

    1、本文主要讲解了关于字符串str的知识点,包含创建字符串、访问字符串、字符串基础知识、以及字符串的内置函数和内置方法。 2、本文件是markdown文件,是本人辛辛苦苦整理出来的,一份耕耘一分收获。 3、不要盗用,...

    Python字符串常用方法汇总.docx

    Python字符串常用方法汇总.docxPython字符串常用方法汇总.docxPython字符串常用方法汇总.docxPython字符串常用方法汇总.docxPython字符串常用方法汇总.docxPython字符串常用方法汇总.docxPython字符串常用方法汇总....

    python字符串处理

    python第三章,字符串的简单处理及应用。以及数据类型

Global site tag (gtag.js) - Google Analytics