定义: 一有序的字符序列集合,常量。
# -*- coding: cp936 -*- # 字符串 # python 中常见的字符串表示方式是单引号 和双引号,效果一样 #内容带有单引号,就用双引号表示"It's good" #反之亦然 'You are a "BAD" man' #用print 输出一下字符串 #-------- It's good 用双引号区别字符串中的单引号 print " It's good " #-------- You are a "BAD" man 用单引号区分字符串中的双引号 print ' You are a "BAD" man ' #--------python中还有一种表示字符串的方法:三个引号(''')或者(""") #------- "What's your name?" I asked. #-------- "I'm Han Meimei." print ''' "What's your name?" I asked. "I'm Han Meimei." ''' #-------还有一种在字符串中表示引号的方法,就是用\,可以不受引号的限制 #-------\'表示单引号,\"表示双引号 #-------'I\'m a \"good\" teacher' print ' I \'m a \"good\" teacher ' #-------\被称作转译字符,除了用来表示引号,还有比如用 #-------\\表示字符串中的\ #-------\n表示字符串中的换行 #-------\还有个用处,就是用来在代码中换行,而不影响输出的结果: #-------"this is the\ #--------same line" #--------这个字符串仍然只有一行,和 #--------"this is the same line" 是一样的,只是在代码中换了行 #--------1.He said, "I'm yours!" print ''' He said, " I'm yours!" ''' #--------2.\\_v_// print "\\\_v_//" #-------3.Stay hungry, #---------stay foolish. #--------- --Steve Jobs print "Stay hungry,\n\ stay foolish.\n\ --Steve Jobs" print ''' stay hungry, stay foolish. -- steven '''
字符串格式化:
print "your age %d , sex %s , record %f" % (25,"Female" , 90)
每个%X 对应后面的一个值。
# -*- coding: cp936 -*- #-----字符串格式化 str1 = 'good' str2 = ' bye' print str1 + str2 print 'very ' + str1 print str1 + ' and ' + str2 num = 18 #-----error 的写法 #----print 'My age is ' + num #----因为字符和数字不能直接用+相加。 #------一种解决方法是,用str()把数字转换成字符串 print 'My age is '+ str(num) #----还有一种方法,就是用%对字符串进行格式化 print 'My age is %d' % num #-----%d只能用来替换整数。如果你想格式化的数值是小数,要用%f print 'Price is %f ' % 4.99 #----如果你想保留两位小数,需要在f前面加上条件:%.2f print 'Price is %.2f ' % 4.99 #---可以用%s来替换一段字符串 name = 'Crossin ' print '%s is a good teacher ' % name print 'Today is %s ' % 'Friday' print "your age %d , sex %s , record %f" % (25,"Female" , 90) #注意区分:有引号的表示一段字符,没有引号的就是一个变量, #这个变量可能是字符,也可能是数字,但一定要和%所表示的格式相一致。
# -*- coding: cp936 -*- #-----可以用%来构造一个字符串 print '%s is esay to learn' % 'Python' #有时候,仅仅代入一个值不能满足我们构造字符串的需要。 #假设你现在有一组学生成绩的数据,你要输出这些数据。 #在一行中,既要输出学生的姓名,又要输出他的成绩。例如 print " %s 's score is %d" %('Mike',87) name = 'Lily' score = 95 print "%s 's score is %d" % (name,score) #('Mike', 87)这种用()表示的一组数据在python中被称为元组(tuple), #是python的一种基本数据结构,以后我们还会用到。
字符串的应用例子:打开文件路径需要注意一些或许会出现转义字符
open('c:\temp\tex.t','a+') #raw字符串,关闭转义机制 \t 转义后是tab open(r'c:\temp\tex.t','a+') open('c:\\temp\\tex.t','a+')
字符串基础操作
# -*- coding: cp936 -*- s1 = 'print ' s2 = "times" i = 12 #字符串的链接用+号,但是数组和字符串不能连接 # s3 = s1 + i + s2 错误的写法 s3 = s1 + str(i) + " " + s2 print s3 # * 是重复 lis1 = [1]*5 print lis1 lis2 = [1,2,3]*3 print lis2 # * 号相当于 n 个 + 号 s = "a" s1 = s +s+s+s+s print " s1 = " + s1 s2 = s * 5 print "s2 = " +s2 #index s = "iamagoodboy" print s[3] #切片 范围:a<= x < b s = "hellohoware you" print s[5:11] #起点可以不写,表示重头开始 #终点不写,表示取到尾
关于
# -*- coding: cp936 -*- #------------------字符串的索引和切片---------- #字符串的一些与list相似的操作。 #字符串的操作 #------------------1. 遍历----------------- word = 'helloworld' for c in word: print c, print #----------------2. 索引访问------------- print word[0] print word[-2] # -1 表示倒数第一个,-2 表示倒数第二个 #与list不同的是,字符串不能通过索引访问去更改其中的字符。 #--error*******word[1] = 'a' print #----------------3. 切片---------------- #通过两个参数,截取一段子串,具体规则和list相同。 print word[5:7] print word[:-5] print word[:] #wo #hello #helloworld print #------------------------4. 连接字符-------------- neword = ','.join(word) print neword #h,e,l,l,o,w,o,r,l,d