一、字符序列
Python字符型变量与其他语言有所不同,因为特殊的命名空间,使得字符串是不可直接更改的
如何指定显示字符串中特定位置的值?如下
>>> helloString = "Hello World" >>> helloString[0] 'H' >>> helloString[5] ' ' >>> helloString[-1] 'd' >>> helloString[-5] 'W'
由示例可知,方括号[]内的值表示特定位置自左向右 0,1,2....自右向左 -1,-2,-3....
二、索引和分片
Python采用的事半开区间,包含范围内的起始值,不包含结束值
1.普通的分片和索引
>>> helloString = "Hello World" >>helloString[:] #默认值起始位置为0,结束位置为最后元素的后一位置 'Hello World' >>> helloString[2:5] 'llo' >>> helloString[2:-2] 'llo Wor' >>>helloString[-1] #只有一个参数则用作起始位置,结束位置为默认值 'd'
2.扩展分片
分片还可以加入第三个参数,指定分片的步长,就是从当前字符和下一字符相隔字符数,默认为1
,当步长为负数时,则表示从串尾部往前提取。示例如下:
>>> digits = "0123456789" >>> digits[::-1] #从尾部向前提取,在回文中使用较多 '9876543210' >>> digits[1::2] #得到奇数分片 '13579' >>> digits[0::2] #得到偶数分片 '02468' >>> digits[-2::-2] '86420' >>> digits[-1::-2] '97531'
3.复制分片
>>> nameOne = "openex" >>> nameTwo = nameOne[::-1] >>> id(nameOne),id(nameTwo) (5647840, 5648064) >>> nameOne,nameTwo ('openex', 'xenepo')
三、字符串操作
1.“+” 运算符可用作两字符串连接 “*” 运算符可用作字符串的复制
>>> A = "Hello" >>> B = "World" >>> A+B 'HelloWorld' >>> A*2+(" "+B)*3 'HelloHello World World World'
2.in运算符
可用于检测一字符串中是否包含一个字符串
>>>'ab' in 'xxxxxabcc' True
3.字符串函数和方法
函数的使用与C差别不大,方法类似于C++的方法概念如helloString.upper().find("A",1,8)
四、字符串的格式化输出
>>>import math >>> print ("%-10s,%10s\n%-5d,%5d\n%-8.2f,%.4f"%("ABC","ABC",123,123,math.pi,math.pi)) ABC , ABC 123 , 123 3.14 ,3.1416
#类似C语言的printf格式化输出, %[符号][宽度][.精度]code
五、一个回文测试示例:
不区分大小写
无视特殊符号,只比较数字和字母
import string TestString = input("Please input the string for test: ") TestString = TestString.lower() #将字符串中字母变为小写 junk = string.punctuation+string.whitespace #利用预定义字符串,生成特殊符号集合 for char in junk: if(char in TestString): TestString = TestString.replace(char, "") #字符串替换方法,将char换成"" if(TestString == TestString[::-1]): print("%s\n%s"%(TestString,TestString[::-1])) else: print("IT's not a palindrome\nONE1:%s\nONE2:%s"%(TestString,TestString[::-1]))